2010
06.21

MVerb is now available for Linux in VST and LADPSA formats thanks to ccern and lubomir.ivanov, who have kindly ported it using axonlib.

Download for Windows

Download for OSX

Download for Linux

Download Source Code

2010
06.01

MVerb Updated

Another little update for MVerb :)

This time I have added a GUI using graphics kindly provided by Eric at Novaflash.

MVerb GUI

I have also inverted MVerb’s damping parameter so that increasing the control increases the damping and so reduce the frequency content of the echoes as this seems a more natural way of doing things. Watch out though as this may change the sound very slightly in saved projects.

Download for Windows

Download for OSX

Download Source Code

2010
05.29

MVerb for OS X

Blurk has very kindly ported MVerb to OS X :)

There are a couple of different OS X versions: a VST version (universal, for Tiger and higher) and an AU version (universal, Leopard and higher) using Magnus Lidström’s Symbiosis library.

Download for Windows

Download for OSX

Thanks Blurk!

2010
05.10

Digital reverb has always been something of a dark art as there is very little information publicly available and most of the big companies releasing reverbs are very vague about the techniques they use. The only real example is Freeverb so I though I would share some code for a reverb that sounds pretty nice and is very low on CPU usage. It is based on the figure-of-eight reverb structure suggested by Dattarro, which uses a bank of allpass filters to smear the phase followed by a loop of multi tap delay lines that feedback into themselves to create echoes. I have also added another delay and a mutitap delay to act as predelay and early reflections. The early reflections still need a bit of tweaking but they do the job for the moment.

The code is written in C++ and is available under the GPL license. It is really simple to use as it is all contained in one header file and should be cross-platform. There is also an example showing how to use it in a VST plugin.

Let me know if you find any bugs :)

Windows VST

Source Code

2010
04.12

For those of you wondering what happened to Duet, my automatic double-tracking/harmonizer effect, it is now available exclusively with Computer Music Magazine with the current issue (151).

By independently pitch-shifting the left and right inputs, Duet allows audio pitch to be manipulated in real-time, while still maintaining the time duration. By also delaying the re-pitched audio and altering its pan position, Duet can accurately create the illusion of multiple voices and add a luscious texture to your music.

This allows you to enhance vocals and instruments, such as guitars, by thickening the sound and adding a rich glossy sheen to your music. Happy harmonizing :)

Duet Screenshot

2010
03.23

A few people have contacted me recently asking how I actually use Nasir live and it’s all done with Plogue Bidule. All my MIDI is generated in Nasir and then routed to Bidule via MIDI Yoke where it gets sent to different groups I have set up for drums, bass, lead and pads etc.

Bidule Workspace

Each group filters the MIDI so that it only receives information on specific channels and then passes it to a MIDI switcher with multiple VSTs attached. For example, in the drum group below I have eight instances of Microtonic attached to the switcher, which each have different presets loaded. I can then control which instance is being used by sending MIDI program change messages on the appropriate channel from Nasir to flick the MIDI switcher’s output to the different copies of Microtonic. The MIDI switcher can also be set up to control the bypass mode of each VST attached so only the copy receiving the MIDI actually does any processing so I can hook up as many VSTs as I want without wasting any CPU.

Drum Group

The audio out from each group then passes to its own effects group that contains a number of separate effect chains. Different effect chains are again selected by sending MIDI program change messages from Nasir to an audio switcher. As with the MIDI switcher, only the audio switcher’s outputs that are selected are being processed, everything else is automatically bypassed to save CPU. This allows me to have lots of complicated effect chains set up and flip between them live. Bidule can also use fade windows to smooth the transition from one effect chain to another. The first output of every audio switcher is always the dry output so when things start getting wild I can easily flip the effects back off.

Drum Send

All the individual effects groups then feed into one master group that again contains a audio switcher with lots of effects chains connected to it for applying to all the different instruments simultaneously. This all then goes into a brickwall limiter to prevent any clipping occuring and also to protect whatever speakers or P.A system Bidule is connected to. Since everything is created live and uses lots of effects and randomization anything could happen and I wouldn’t want to deafen anybody or blow speakers up!!

So after trial and error with pretty much every host going I am really pleased with Bidule for live use. Once Nasir is up and running I don’t have to flick back to Bidule at all, I can switch between VSTs and effect chains all by sending MIDI messages from Nasir. Also, by using the switchers to bypass unused VSTs I can keep CPU usage right down where the audio will never glitch when playing live with my laptop.

Bidule and Nasir make the perfect live combination!

2010
02.23

Compiler race

I thought I would have a quick look at how good a few different C++ compilers were at optimising my code and it turns out Microsoft are better than I gave them credit for. I compiled the same VST plugin using as many optimisations as possible and monitored the CPU usage in Plogue Bidule. I then averaged the number of cycles used of ten measurements in Christian Budde’s VST analyzer.

MinGW using G++ 3.4 = 11.53% (77517 cycles)
MINGW using G++ 4.40 = 11.90% (79222 cycles)
Visual C++ 2008 Express = 6.65% (38521 cycles)

Admittedly it’s nothing too scientific but Microsoft certainly know what they are doing with compilers, its just a shame that that the Visual Studio IDE is getting slower with each version. I was surprised how slow G++ was in Windows in comparison and also that there was no performance gain going from version 3.4 to 4.4 However, G++ has the big advantage that it’s also cross-platform so although the code itself may be slightly slower, using G++ makes it a lot faster to get the code up and running on Windows, Linux and OSX.

2010
02.16

A while back I ported Muxer’s Instant Sampler to Windows VST. Instant Sampler is an effect that can record its audio input live and then play it back via MIDI like an instrument. You then have complete control of how the audio is played back allowing you to reverse the playback, pitchshift it, glitch it or cause some cool stutter effects.

Instant Sampler is available free for Windows VST and Mac AU from Muxer

Instant Sampler GUI

2010
02.13

Another demo of Nasir, this time using the dna function to create music from genetic sequences. Nasir maps the codons within the gene chromatically from MIDI note 36 upwards by default. You can also pass an array of notes into the function defining specific notes to use or even just name a scale and Nasir will automatically constrain the gene to play within the scale :)

The demo below uses the human cytochrome P450 3A4 gene, which is included in the Nasir download as cyp3a4.txt as an example to show you the format used. A great source of gene sequences is Genbank.


View on Vimeo.
2010
02.12

Doh, so Ralph kindly pointed out that a tiny little typo had sneaked in at the last minute meaning Nasir couldn’t find the Cellular.rb file. Anyway, it’s its all sorted out now and I’ve updated the download