Monday, June 28, 2010

Custom Recording Mixer: Part 2

I place my order to BatchPCB.com for channel strip boards about a month ago. They finally arrived last week and I can finally get to make some real progress on this project. I was pleasantly surprised to receive a double order of my pc boards at no extra cost (which is good because I ordered exactly half of what I needed). I was able to spend a fair amount of time putting things together and testing them out this week. I managed to get all the holes drilled in the case and began populating the boards (which look and sound great).

Thursday, May 20, 2010

Desktop Summing Mixer & Recording Mixer



For years I've used a Behringer 1204 small format mixer on my desktop for simple monitoring and routing while mixing and recording. For years I have been frustrated with the lack of features and I/O options. After a recent episode of frustration involving the dual function of the mute switches and Post-Fader axillary sends, it occurred to me, why not just build my own mixer? How hard can it be?

Well to those of you still reading and not rolling on the floor laughing at this previous statement, it requires a bit of thought and is by no means a simple, weekend project. There are many design topologies to consider and many variables to account for. One of my greatest resources (aside from the endlessly helpful book The Art of Electronics) was a project published by Rod Elliott (http://sound.westhost.com/project30.htm). His designs provided answers to many of my questions, such as how to implement a panning adjustment and peak level indicators. Of course his designs are very similar in functionality to the mixer I already have (though he does include insert sends and returns). What I want in my mixer are tape returns. I want an entirely separate signal path for the monitor return of each channel. Typically this feature is only available in high-end studio consoles. Well, I don't have that sort of money, so I want tape returns in a 10 channel format, plus direct outs.

I've included my first revision schematic bellow, after the board layout is complete I plan on getting a handful of boards printed commercially and doing a test run with the component values I've specified thus far.

Tuesday, April 20, 2010

DIY Audio Compressor: Part 2

After several revisions to the schematic and many iterations of the board layout, its all finally done. The whole package looks and sound great. I had the pleasure of using it to track some vocals some weeks ago and the compressor really imparted a warmer sound. I think I may have to work out a way to incorporate some sort of decibel or clipping meter to prevent over driving the 5532. That said, the overdrive isn't really distasteful. Check out the pics bellow, I've included the final schematic and pc layout.

Wednesday, March 3, 2010

DIY Audio Compressor: Part 1, the plan

After finding myself often wanting of an analog compressor in my rack of gear, I ran across the simple compressor design from the old Electronics Projects for Musicians(EPFM) book. It uses a couple op amps and a Vactrol (or LDR Optocoupler) to compress the audio signal. I was able to find a source for the vactrols through Allied Electronics.However, one of the op amps (RC4739) had fallen into obsolescence since the publication of these plans. After poking around the web a bit I found that the NE5532 seemed to work well as a general purpose audio op-amp, and had been used successfully in many of the EPFM plans. The caveat? The 5532 is an 8 pin DIP package, whereas the old 4739 was a 16 pin DIP, this single detail renders the PC board layouts provided in the book useless, and therefore in order to finish my project on a PC board, I would have to re-work the schematic and pcb layout to fit the new parts, I've since completed the schematic and hope to have the layout done and ready for etching (using a cupric chloride bath [Instructable]) soon. I've included the reworked schematic bellow for anyone else who may be interested to enjoy. Schematic and board done in KiCad

Saturday, January 2, 2010

Things I Do: Calling all Voices, a Pack the Park initiative

It was my pleasure to be on set helping with the production of Calling all Voices and the "Mother Earth" music video. This production was a great experience and a great opportunity to meet and work with some amazing people.

Wednesday, December 16, 2009

War of the Worlds: A Radio Re-enactment


In tribute to creative content being broadcast on the radio at large. I gathered together a group of friends to revisit the radio drama of ole'. The drama of choice? The classic "War of the Worlds" in abridged form. Our antics are included bellow in recorded mp3 form.

War of the Worlds [abridged]


Enjoy!

Saturday, October 3, 2009

Controlling Ardour and Jackd through OSC and Python


OSC, or Open Sound Control, is a flexible network messaging system intented to allow the control of various music and sound oriented software. There are several mature applications that currently support external control via OSC. These apps include Jamin, Ardour, and Jack. In this post, I'd like to concentrate on controlling Ardour and Jack through Python using OSC.

Ardour has a little known set of OSC messages that it can understand. Oddly enough, this set is vaugly documented in the Supercolider wiki. The messages currently implemented (As of this writing the latest stable version of ardour is 2.8.2) controll basic channel routing functions and simple transport operations (Mute/Solo/Rec Arm, Stop/Play/Punch In). So without the use of any external software we have a basic control of Ardour which can be extended to external interfaces (think midi controllers for Ardour!).

Thanks to a small python module called Simple OSC, it is possible to send, recieve and manipulate OSC messages within Python. We will use python to glue all this stuff together and actually do something interesting.

Unfortunately, Ardour only offers rudimentary control of its transport mechanism over OSC. Which means we mush use some other means to locate the playhead to specific locations and get current time line/meter/tempo information. This is where a little app called jack.clock (or jack.osc) which is a member of the jack-tools package.

The bellow python code is about as simple as it gets, this module will allow a user to play and stop ardour through osc, as well as enter timecode locations (in seconds)
import osc

osc.init() #Initialize the OSC module

def play():
#Send a play message to ardour, there is no additional information required for this
#Hence the empty list!
try:osc.sendMsg('/ardour/transport_play',[],'localhost',3819)
except: raise

def stop():
#Send a stop message to ardour, there is also no additional info for this message
#Hence the empty list!
try:osc.sendMsg('/ardour/transport_stop',[],'localhost',3819)
except: raise

def locate(loc):
#This message requires that there is a jack.clock instance running at port 9001
#jack.clock is a member of the jack-tools package and controls the jackd timeline
try:osc.sendMsg('/jck_rl',[loc],'localhost',9001)
except: raise