Friday, October 23, 2015

Alesis 3630 Compressor Mod

I have been a bit quiet lately due to travels and too many things going on. Being back home and having some projects in a publishable state, here is the next part of my 19" rack series...

While searching for an affordable all-purpose hardware compressor, I naturally came accross the Alesis 3630. Naturally, since, according to Alesis, this "has become the most popular dynamic processor ever made". Similarly, according to Daft Punk, this little box gave the signature sound to their Homework and Discovery albums. After continueing to read about it, it quickly became clear that, together with its price, these are almost the only positive things that can be found about this compressor. Most people seem to agree that it's best usage is as a doorstop, and even the one Daft Punk used repeatedly was not the original, but a modified version. So let's modify it...

The modifications implemented here summarise the ones suggested on Icarus' post on Sound on Sound and Smallbutfine on groupdiy, which seem to replicate the original Buta mods, but also include the opinions and suggestions of several other people. Thanks to all of you!


Location of all relevant components on a Rev. D board (Click to enlarge)


Opening the Alesis 3630 is straight forward, and although the potentiometer knobs sit tightly on their shafts, they can be removed with a bit of gently controlled pressure. After disassembling the unit, the two pcbs unfold and can be separate for easier handling. Since the component's labels are printed underneath them on the one-sided boards, I made a visual overview of all changes on my Rev. D board. If your board has a different revision number, just slightly bend the components and try too peak underneath to identify the labels. Good light helps a lot on this!

Among the first things suggested for upgrading, is beefing up the components of the power supply section to give the unit a bit more headroom power-whise. For this, we replace the four big capacitors with better components and swap the four diodes with fast switching alternatives:



- Power -


Quantity New component Position Old component
2 220µF/35V Electrolytic cap C2, C3 ?
2 2200µF/25V Electrolytic cap C4, C5 ?
2 10 µF Audio grade electrolytic cap C6, C7 10 µF
4 UF4001 Diode D1, D2, D3, D4 1N400x



Next, we turn our attention to the op-amps and VCAs (Voltage Controlled Amplifier) that are responsible for the compressor's gain and thus play an important role Alesis' sound character. Several OP-Amps work equally fine in technical terms, but make a significant difference from an audible point of view. Judging which one is best depends on personal taste and the purpose of your compressor and trying to solve that question by simply reading about the different sound characteristics gets you very quickly into highly subjective, sometimes esoteric, terrain. However, for my trials I got a pair of MC33079P, which are supposed to sound very surgically clean, as well as some LME49740, which have a more musical character. Other OP-Amps that work well, but I have not tried myself, include the LT1359 (not sure about the sound), TL074 or TL084 (supposed to be darker, grittier), OPA4227 (smooth and musical) and OPA404 (very clean and quiet).


- Input -


Quantity New component Position Old component
2 MC33079P DIP-14 Quad OP-Amp U2, U6 TL084 or LF347
2 100 kOhm metal film resistor R12, R54 100 kOhm
2 1.69 kOhm metal film resistor R14, R56 1 kOhm
2 2.2 kOhm metal film resistor R13, R55 2.2 kOhm
2 6.2 kOhm metal film resistor R15, R57 6.2 kOhm
2 150 pF silver mica C12, C30 150 pF



All changes to the VCA (voltage controlled amplifier), level and knee sections consist of replacing passive parts only, so here we go:


- VCA -


Quantity New component Position Old component
2 2180BL08-U VCA IC U3, U7 2150
2 2.2 kOhm metal film resistor R42, R72 2.2 kOhm
2 6.2 kOhm metal film resistor R41, R73 6.2 kOhm
4 240 kOhm metal film resistor R27, R69, R208, R211 150 kOhm
4 20 kOhm metal film resistor R22, R23, R64 ,R65 22 kOhm
2 470 Ohm metal film resistor R26, R68 470 Ohm
2 100 Ohm metal film resistor R29, R71 100 Ohm
4 33 Ohm metal film resistor R79, R102, R209, R212 33 Ohm
2 5.1 kOhm metal film resistor R25, R67 5.1 kOhm
2 10 µF audio grade elko C43, C55 10 µF
2 22 pF metal film capacitor C15, C32 50 pF
Remove - resistor R28, R70 ?


- Level -


Quantity New component Position Old component
2 2.2 mOhm metal film resistor R10, R52 1 mOhm
2 10 kOhm metal film resistor R8, R50 10 kOhm
2 22 µF audio grade elko C11, C29 22 µF
2 10 µF audio grade elko C16, C33 0.22 µF
Remove - capacitor C42, C56 ?


- Knee -


Quantity New component Position Old component
2 5.6 kOhm metal film resistor R83, R106 1 kOhm
2 6.8 kOhm metal film resistor R17, R59 3 kOhm


Many people complain about how the mere presents of the gate circuits negatively affect the 3630's sound. The easy solution is to disconnect the gate by cutting the bridges marked in the picture with yellow circles. However, in general, I am not a friend of ultimate loss-of-function approaches, so I decided to replace the bridges with switches. Since I the front plate of the compressor is rather populated, and its rear is little accessible in a rack, I opted to replace the threshold potentiometers with switchable ones. Measuring the original potentiometers, they are 10k with their taper range somewhere between a linear and a log scale. Seeing it as an advantage to have finer control on the lower end of the scale, I ended up opting for logarithmic potentiometers as replacements. The integrated switch makes their body larger and I had to desolder and bend two capacitors on the LED board (marked with a pink circle) to gain the necessary space in the re-assembled box. Also, the pins of my replacement ones did not fit into the pcb holes, so I had to used small wires as adapters.

As a last upgrade, it is suggested to connect all input/output grounds with heavy gauge copper wire. These (thick, brown), as well as some of the wires used to connect the switchable potentiometers (thinner, orange), are well visible on my finished unit:




So how does it sound now? While it would be nice to have an original model at hand to compare it to, the 3630 has a nice musical character now. My first impression is very good and the mods seem very worth doing...



PS:
Some people also suggest to replace the side chain op-amp. I did not implement this, since I am fine with the side chain as it is. However, if anybody has experience with this modification please say a few words in the comment section about your experience and which replacement op-amp you have used.


- Side chain -


QuantityNew componentPurposePosition
1?Quad OP-AmpSide chainUx





Tuesday, August 4, 2015

LackRack - A Cheap Living Room 19" Rack

I needed space so I decided to expand my desk. While I was entertaining several ideas about how to best do that, I also happened to measure some of my existing furniture. My first discovery was that some compartments in my old Ikea bookshelf have dimensions that are suitable (more or less) for 19" equipment. My second discovery was that the very same is true for the Ikea LACK tables. And my third, and quickest, discovery was to find out that I am not the first person to discover that: Like for most things on the internet, there already exists a community around the use of LACK tables as 19" racks, and the official name for this purpose is ( - wait for it - ) LackRack. Apparently first seen on an IT related event, LackRack quickly gathered a small fanbase in the DIY server/network and music scenes, due to is cheap price, availability and flexibility.

However, for my LackRack  I pictured several features that differed from the standard solutions yone finds on the net: a total height of about 90cm would very well fit to my desk space, wheels could add spontaneous flexibility in my gear arrangements, the 19" part also should be as flexible as possible, a part (besides the 19" section) dedicated for storing cables would be a nice bonus. On these grounds, I decided for a two story solution: The upper part would be comprised of the already mentioned LACK table (7,99 Eur), the base would be a LACK side table on castors which I found in mint condition for almost half the price (15,- Euro) on classifieds.






Slight inconvenience with the LACK tables, but I guess that with the cheap price, is that the legs are mainly built from cardboard and hence are hollow except the top and bottom 5 cm. Since I wanted to fill my rack top to bottom and therefore the screws will need to be able to support some weight, screwing the modules directly into the table's legs consequently was not an option. However, I did not like that idea in the first place, since it also decreases any later possibilities to rearrange modules (at least I assum that the screw holes wear off over time). Instead, I opted for continuous rack rails which can be fastened in the solid sections of the table's legs, and which allow me to freely manoeuvre my gear around at a later time. Adam Hall had some in his portfolio (10,- Eur), that perfectly matched my needs, are used with standard M6 screws, and were quickly sawn to an appropriate length of 38 cm:







For optical reasons, I painted the rail's inner sides black, and then put all parts together:





A very flexible, 90,5 cm high, two compartment 19" rack for 30,- Eur, that might not be suitable to be carried from live act to live act, but does not need to hide in the living room.


Continue reading on how a central power supply with lights complemented the new rack.


LackRack - Power and Lights with a modded T.Racks VM-100





This time it will be all about adding a power strip and lights to the LackRack.



A quick word in the beginning:
This blog post is not intended as a tutorial, I wrote it for pure documentation purposes only. 
Do not try this if you do not posses the required technical knowledge and skills. 
The voltages we are dealing with are life-threatening, and improper handling/assembly can further cause heavy damage to property including the risk of fire.



Having said that, I wanted the power supply for my rack to serve as a power strip and to provide a single on/off switch for all the gear. Rack-mountabilitiy would be considered a big plus, and optional light would just be the icing on the cake.


While there are several commercial products that satisfy these needs, constructing a rack out of cheap parts, and then spending a fortune on a reference power conditioner just felt wrong. Furthermore, electricity is absolutely stable where I live, so a simple 19" power distribution strip would do the job without the necessity of a true power conditioner.


Roaming on classifieds again, I found a T.Racks VM-100 that fulfilled my requirements and met the price range I had in mind. The T.Racks VM-100 is basically exactly what I have described above: it is a 19" power strip that bears eight IEC power connectors on its back, has two dimmable lights that can be extended/retracted, has a central power switch with a 10A fuse, plus it sports an additional fancy looking LED volt meter. While I can imagine that the voltmeter can be quite handy in on-the-road conditions, in my home it really just looks fancy. Unfortunately it looks fancy all the time, because it displays the available voltage even when the power switch is turned off. Again, this might be great for gigs, but turned out to be an annoyance in my living room.


Opening the VM-100 quickly revealed the reason for this behaviour:




T.Racks VM-100


As seen in the zoomed picture, the white and black cables (which are the ones that drive the voltmeter) are connected pre-switch:


Pre-switch voltmeter


However, a quick rewiring connected the voltmeter post-switch and post-fuse, and readily solved that issue: the device is now pitch-black when turned off, and only unfolds its full fanciness when being switched on.




Post-switch voltmeter


Not being sure if 10A will be enough to drive all equipment (at the time being they are sufficient), it would be great to transform the volt meter into an ampere-meter, but that is a mod for another time.

Anyway, since a lot of my stuff has wall adapters, I also changed a standard power strip to an IEC version and connected it to the T.Racks:



Schuko version
IEC version




And here is the LackRack in its full glory now:


Hint: a glimpse of one of my next projects is already seen underneath the VM-100 :)


Thursday, July 23, 2015

Rhythm Wolf - Individual Drums Outs


I got asked by a friend if I could help him modifying his Akai Rhythm Wolf for individual outputs. After opening the little box, it became quickly clear that Akai was nice enough to label five resistors with "Individual Outputs Available Here". Not knowing about the signal levels, etc, it seemed worth to just give it a try and to simply wire them to mini jacks.

For this, I solderd five (red) cables to the upper part of the resistors.




The respective resistors are located left of the TSR jacks, suggesting that the levels get mixed here afterwards.



Quickly measuring the voltages passing through those connections, it became clear that none of them is ground. However, ground can be picked up almost everywhere on the board, and I soldered it to the sleeves of a all (mono) mini jacks. Similarly, the red wires got soldered to the tips.
Initial trials indicated that the signal level was very much sufficient for my friends amplifier/mixer, and also that the corresponding sounds did not get ablated in the main mix. So after drilling small holes into the backside of the case and attaching the jacks there the mod was done :)


Wednesday, July 22, 2015

Home Automation - Farewell Old Friend

Everything has to end at some point. Here and now, my very first project ends.
The one that made me familiar with µcontrollers.
The one that brought me to electronics.
The one that initiated me as a tinkerer.


HardWareHub





Actually, that is not true - it is the other way around. I started the project because I wanted to do something with µcontrollers and wanted to dive into the world of electronics. What I was missing at that point was a project; a purpose for my tries. That was HardWareHub.

While it is not strictly about sound creation, it is connected with the purpose of this blog in the wider sense and deserves a comment here: HardWareHub was a home automation system. When I started playing music in iTunes, I wanted my amplifier to automatically turn on, switch to the correct input source and to turn the bass down if it is late at night. Similarly, if I received a phone call, the volume faded out and iTunes went on pause. If the TV got turned on, the same actions happened, in case music was playing, but the amplifier switched to the TV source.

It worked quite well for a couple of years, but like many projects without a defined goal, it happened to be in a constant state of changes. At one point I got distracted by other projects and it happened to be left with some functionality temporarily turned off. Consequently, I happened to use it less and less lately and I want to officially focus on more current projects now. When I decluttered some cables in my living room yesterday, I removed the Arduino, the heart of HardWareHub, to give it a new purpose.



Some details for those of you interested in similar projects. HardWareHub consisted of three parts:
  • an Arduino managing the hardware side and communicating with my living rooms appliances by mimicking the IR commands of their remotes
  • an applescript continuously running as a demon on my computer (which never gets turned off anyway) communicating with the Arduino and assessing states of iTunes, Plex, router (Fritzbox), browser (yes, it also worked with youtube), brightness of my computer screen, etc.
  • two javascript widgets to serve as GUIs
last but not least, however I would not consider this a real "part", there was a USB controlled power outlet (Gembird SIS-PM) to switch lights and some devices on/off.



Implemented features included:
  • full control over a stereo amplifier through IR commands
  • full control over a projected using similar commands
  • responsive to their native remotes
  • responsive to my own IR commands
  • control over room lights through USB controllable outlets
  • auto mount of my NAS on startup
  • iTunes control through applescript
  • PLEX control through HTML commands
  • "knowing" if youtube is playing by measuring the performance burden of the web browser
  • responding to phone calls (ingoing and outgoing) though an api of the router (Fritzbox)
  • evaluating the time of the day and adjusting volume and bass/treble settings
  • action based GUI (e.g.. Movie mode turns on the stereo and the projector, switches to the correct input sources, starts PLEX, turns off iTunes, turns the lights off, ...
  • device based GUI for individual access to all features
Widget to control the individual devices


Good bye, it was fun and I have learned a lot thanks to you - now it is time to move on...


Thursday, July 2, 2015

Celebration

I am very happy to announce that my code to receive and send MIDI Time Code messages and a yet unpublished function to send Real Time messages was just added to the official Teensy core libraries.


Celebrating:



Monday, June 22, 2015

Receiving MIDI Time Codes over USB with the Teensy

Due to a request of a reader of my blog, I elaborated on my extensions for the Teensy 3.x usb_midi library by adding support for callback functions to receive MIDI Time Code (MTC) messages. To fully understand the code, I recommend also reading my post for generating the MTC.

Briefly, the library files where we need to add the missing functions are located (on Mac OS X) in Contents/Java/hardware/teensy/avr/cores/teensy3/. This folder can be found by right-clicking on your Arduino application and then selecting Show Package Contents from the drop down menu.

You can either download the modified files from my GitHub repository and copy them to above folder, or you can modify the files yourself by following the following simple instructions:

Open usb_midi.h and search for "#ifdef __cplusplus". Add the following code one line above that:

Now search for "private:" and add this code right before it:

You are almost done. Save and close the file, and open usb_midi.c instead. Search for "// Maximum number of transmit packets to ..." and add this line above:

As a last step, search for "return 0; } #endif // F_CPU" (they might be distributed over multiple lines) and add these lines of code before the "return 0;"

And voilá, you can now receive MTC messages over USB and evaluate them with callback functions.
Your callback function will receive the MTC as a word parameter. An example sketch showing how to do the decoding is included in the repository...