Beatrix - the organ software synthesizer

Beatrix is a MIDI-controlled, software synthesizer designed to imitate the sound and properties of the electromechanical organs and sound modification devices that brought world-wide fame to the names and products of Laurens Hammond and Don Leslie.

Disclaimer: beatrix is free (as in beer) - and redistribution if of the software is not permitted. the official license reads:

YOU MAY FREELY DOWNLOAD AND INSTALL A COPY OF THE SOFTWARE FOR YOUR PERSONAL USE. YOU MAY NOT BUNDLE, RENAME, SELL,
REDISTRIBUTE, REPACKAGE OR IN ANY OTHER WAY ALTER WHOLE OR PART OF THE SOFTWARE AND ITS DISTRIBUTION WITHOUT PRIOR,
EXPRESS AND WRITTEN PERMISSION FROM THE AUTHOR.

The information on this page could be used in license-contradicting ways, however the following instructions are complying to the license and do not contain any of beatrix' source-code.

About this

While https://sourceforge.net/projects/bristol would be the FLOSS synth of choise, beatrix implemets a great Hammond sound that is worth to pursue coding on. However the last official release v041 of beatrix from November 2004 lacks some essential features for professional use (eg. JACK-audio-interface and MIDI-seqencer).

Jackification

It would not to complicated to wrap beatrix into a jack-audio and alsa-sequencer application without changing any of beatrix' original source!

You would need to add jack-audio client code and wrap the midi-I/O into alsa much like beatrix-v041-jack7g.diff - I also suggest to compile beatrix with the -O3 option (in Makefile) and replace the usage documentation to include the [-R <sample-rate>] optional command line argument (in main.c).

After this small exercise, one would find that some internal buffer-sizes and hardcoded optimizations in beatrix yield to unwanted audio-effects when running at samplerates other than 22050. There are two proposed workarounds: re-sample or change pitch!

With jack at 22050Hz and multiples thereof (eg. 44.1kHz) there are no problems. Running at 48k SPS would need either of those fixes:

./beatrix osc.tuning=404.249986  # internal seq at 22050, tune corrected.
 # 404.25 = 440 Hz / 24000 * 22050
 # internal pitch corrected from 22050 to 24k (*2 to JACK - 48kHz)
./beatrix -R 24001 osc.tuning=440.018333 # internal seq upsampled x2
 #(-R 24000 would be correct, but collides with beatrix internals)
./beatrix -R 48001 osc.tuning=440.009179 # natively synth at 48k
 # Beware: Beatrix ties the effects to sample-buffer size.
 # Using large sample-rates, it is possible to configure
 # long reverb and whirl-effect, which may cause internal buffer
 # overflows. 

Conclusion and Comments

Since many synth-internals are hardcoded in beatrix, a rewrite as DSSI/LDASPA/LV2 plugin would be better suited than trying to fix existing code which is not even FLOSS. The rewrite could however make use of existing code - given the author consents.

A good alternative Hammond sound can be played with: http://ll-plugins.nongnu.org/azr3/ a JACK port of the AZR3 VST plugin by Rumpelrausch Täips; GPL and everything.

There are also a few CSound instruments available: fi. RotorOrgan or DirectHammond.

 
wiki/beatrix.txt · Last modified: 13.05.2009 15:26 by rgareus
   |