Joined: 08 May 2009
|Posted: Fri Jul 20, 2012 4:39 pm Post subject: Making a simple, passive monitor controller
|This is going to be a rather lengthy post. My apologies if this is too basic; I'm pretty new to electronics, myself, and thought that some people might find it useful if I wrote a very simple, detailed account of this project. If I've made any mistakes or if anything is unclear, please do point it out, and I'd love to hear if there's a better way to do anything.
Until a week ago, I'd been using a Presonus HP4 as my headphone amp and monitor controller–basically, just a volume knob and a mute button. The volume control broke, and so I decided to take this as an opportunity to build my own monitor controller. I wasn't very happy with how the HP4 sounded, and the gain structure was not at all right for my setup.
My monitoring setup is this: Echo Audiofire 8 -> Adcom GFA535 -> PMC LB1. The Adcom doesn't have a volume knob, and the Audiofire is controlled in software. With no attenuation, this is way too loud. I don't like controlling the volume in software; it's not as intuitive to me to open a program and move a virtual slider as it is to have a physical control to turn, and I also get nervous that I'll accidentally click something and fry my monitors.
The first thing to do was decide what's needed. My monitoring chain is run unbalanced, as the Adcom has unbalanced inputs. There are only a few feet of cables, anyway, so this is fine. I need a mute switch, and I decided to also add a dim switch–it's less than $1 of parts, and it might be useful. Since Reaper has a mono button, I don't need that. For now, I only use the one set of speakers, and so I don't need multiple inputs or outputs. Any of these features (balanced, mono, speaker switching) would be easy to add.
Next, I went on ebay and found a 2 pole, 24 throw rotary switch from China. Switched resistors are superior to a potentiometer as the basis for an attenuator in this case: even compared with expensive pots, resistors give much better tracking between channels, the amount of attenuation can be controlled more precisely, and the taper can be whatever the designer wants. The switch I found cost $7. It seems to be well-made, and it turns nicely. We'll see how it holds up.
Since I knew I had 24 different settings, I figured out the taper I wanted. Most of the time when I'm working, I need between 20 and 40dB of attenuation. When I'm listening to cds (extreme metal, mostly), I generally want it between 40 and 50dB down. I don't ever need full volume, and I don't need more than 60dB of attenuation. So, I settled on the following for my 24 positions: -6dB, from -10dB to -50dB in 2dB steps, -54dB, -60dB.
Next, I decided to use a straight-forward voltage divider topology. This is also called an L pad.
There are a bunch of different topologies one could pick, but for my situation (transformerless, solid state equipment) this made the most sense.
The idea is simple: instead of two resistors, there are a bunch in series from the input to ground. By switching the output between the various nodes, I can get varying amounts of attenuation. So, by choosing the right resistor values, I can get any taper I want.
Next, I chose a impedance of 5kΩ. This is high enough that it shouldn't load the DAC's output, and low enough that it won't load the Adcom's input. At this point, I decided that the dim switch would be a simple 10kΩ/1kΩ voltage divider, for a bit more than 20dB of attenuation.
Calculating the resistor values is easy once you've decided on your overall impedance and the attenuation values you want. Here's how to do it:
1. Convert your dB values into the voltage divider ratio you need for each value. The difference between two voltages V1 and V2 in dB is 20 * log(V1/V2). So, the ratio for a -60dB difference is 10^(-60/20) = 0.001.
2. Looking back up at the voltage divider equation, the denominator R1 + R2 is simply the overall impedance, or 5kΩ. So, for 60dB of attenuation, 0.001 = R/5kΩ, where R is the resistance between the output node and ground. R = 5Ω, and so then we know that the last position of the switch needs to be connected to ground through a 5 ohm resistor.
3. Move on to the next value, -54dB. We need a resistance between the output node and ground of 10^(-54/20) * 5kΩ, which comes out to be 9.976Ω. However, we already have a 5Ω resistor, so we need the resistor between the last and the next to last positions of the switch to be 4.976Ω.
4. Continue like this until all the values are calculated. The -50dB step needs 15.811Ω between the output and ground, so the resistor needs to be 15.811 - 9.976 = 5.835Ω. And, so on.
Obviously (?), we're not going to find a 4.976Ω resistor. So, at this point it's necessary to decide how close is good enough. I went with 1% resistors, and rounded everything to common values. The steps are still pretty close to what I wanted, and the difference doesn't matter–as long as the left and right channels are attenuated by the same amount (or very close), I don't care if it's 54.3dB instead of 54dB. In a mastering context, or if one really likes spending money, it might make sense to be more picky.
Once you're done, go back and make sure the error is something you can live with.
Here is what I came up with:
There's a mistake here. The 5kΩ resistor for the dim switch should be 10kΩ.
Since we have two channels of audio, we need two of these sharing the same switches.
Great! Now, to build it.
Here are the parts. Some of the parts were lying around, and I got everything else except the switch from Mouser.
Figure out how everything should fit:
Mark the holes with a center punch:
Drill pilot holes, and then expand them:
Figure out where the stops are in the switch, and mark which way it should turn to avoid sloppy mistakes:
Solder the resistors to the switch:
Test with a multimeter to make sure everything's wired correctly:
I find it easier to connect everything if it's in the box:
Connect everything, using heat shrink when necessary. I use red wire for the signal and black wire for ground, so I don't get mixed up:
Test and make sure everything works (could just use some cheap speakers for this, but I used the oscilloscope):
Total cost was around $30, took a few hours to design & build. It sounds good and seems to work as planned.