Monday 31 August 2009

Create your own plugins!


SonicBirth is a free, open source application that allows you to design your own Audio Units and VST plugins on your Mac. It's been around a little while, but it's very powerful, and great fun.....

You need SonicBirth installed on your Mac to run any of the plugins, as well as to create your own (well, you need the Framework at least). Start by downloading it here.
It can be a bit intimidating if you've never used anything like this before, so I've written a walkthrough to create a delay plugin.
1) We'll start by opening an audio file in our Sound Server window. This will be used for testing our circuit. Just click on the Open button, and navigate to something suitable. I'm using a beep, followed by 4 seconds of silence (this is long enough to loop, and gives me time to hear long delay feedbacks).

2) Next, let's set up the Dry signal path. Insert an Addition, a Slider and a Multiplication element in the Circuit window (the slightly orange one). You'll find all these under the Common category.

3) Clicking in the boxes at the sides of the elements allows you to patch them together using "wires". Connect the elements as shown in the diagram below (clicking on the wire allows you to create extra points, so you can keep your patching neat and clear). I've also named the slider "Dry" in the Settings window.
(Multiplication elements allow us to control signal levels - multiply the sample value by a number less than 1, and you turn down the level).
Turn up the Dry pot, and press the spacebar. You'll now hear your test signal.
4) Let's now add our Delay element, and our Wet level control. Insert Delay, Slider and Multiplication elements, and connect them as shown below:

Turn up the Delay and Wet pots, and press the spacebar. You now have a very simple delay plugin, that gives you a single repeat.
5) For multiple repeats, we will need a feedback loop. SonicBirth only allows these when you use a Feedback element. This adds 10 milliseconds latency to any signal passing though it, so we need to be careful where we place it.
Insert Feedback, Mulitplication, Slider and Addition elements, and patch together as shown below:
6) You now have a fully working delay, but before we continue, let's make a couple of modifications: Select the Delay slider element, and tick the Show Value box in the Settings window. I've also changed the Type to milliseconds. It will now be possible to see the delay value on your plugin.

7) Unfortunately, this value will be wrong, as the Feedback element adds 10 milliseconds extra delay. To compensate for this, I've added a Constant Substraction (I assume it's a spelling mistake) element of 0.01 seconds between the slider and Delay elements



8) Click anywhere in the background of the Circuit window, and fill in the Settings window.

We could export this plugin straight away, but it will look very ugly. Let's add a GUI. (Ideally you'll have some kind of graphics application such as Adobe Illustrator or Inkscape). I've designed a simple background and pots that you're welcome to use (just drag the images to your desktop):

9) Click anywhere on the background of the Circuit window. You can now scroll to the bottom of the Settings window, and click on the Custom Gui box. You can now switch between Circuit Design, Gui design and Runtime (try out your plugin). While in Custom Gui, click on [Load], and navigate to your background picture. Arrange the pots in roughly the right places, and move any parameters you don't need below the picure.

Now press [Take Size], and the plugin will shrink to the size of the background pic. All we need to do now is add the pots. Select the pots one at a time, and drag the pot image to the Front box in the Settings window.

Tidy things up a little, and change to Runtime. Give the plugin one last test before we export it as an Audio Unit.
10) It's now time to install your plugin. Go to File > Export as AU. Navigate to Macintosh HD > Library > Audio > Plug-Ins > Components, and press the Open button. You should nw get a little message telling you that export was successful. All that's left to do is open your host application (I'll be using Logic), and try out your own delay plugin.


So, that's got you started. It's time to play around and see what you can do yourselves. Have fun, and let me know if you create anything cool!

No comments:

Post a Comment