TB303 Rack (Beta release)
Overview
The TB303 is a rack of monophonic synths, performing a direct
modelling of the classid Roland 303 Bassline. Each synth is
associated with its own crude monophonic sequencer, and seperately
sends and receives MIDI note and control data. Presently,
the sequencers are limited to 16 notes: 4 beats of sixteenths.
In other words, this is a snappy little techno groove generator.
Usage
The first 303 to be run creates the main control page, and
opens the midi in/out ports (presently this is hard-coded to
"midi1", the top pair of ports).
Subsequent launches of the 303, up to the hard limit, create
a status/control region on the main window
specific to the new synth/sequencer pair.
The screen is divided into four areas:
-
The top line displays the name of the "top" 303, the one which is
currently being controlled by the sliders and screen knobs. This
are will be used for other pices of general usage in later releases.
-
The next three lines give sequencer controls.
-
The "start" button
starts and stops the sequencer.
-
The "rand"
button generates a random 16 note C-major sequence in the current
sequence.
-
The "seqi" buttons load (on a left mouse click)
and store (on a right click) sequence data into common storage.
This data also includes the tempo, start, and end point settings.
-
The slider controls sequencer tempo.
-
The "trans" text field transposes the current sequence by a given
amount (see Bugs below).
-
The start and end points are integer indexes into the sequence.
-
The next 10 or so lines are controls for the synth itself. The sliders
are almost self explanatory, and are best understood by playing with
them. They roughly correspond to controls on a 303. The "slideri"
buttons store (right click) and load (left click)
synth settings to and from an area common to the 303 rack.
-
The last region contains controls specific to individual
running 303s.
-
The first button sets the selected 303 to be "top" (i.e. under control
of the screen sliders and buttons).
-
The "mute" button is not currently operational, but will be so in
the next release (you've just got to stop adding features sometime)_.
-
The next two lines give sequencer status ("Active/Paused") and an
indication of which area the 303's sequence was loaded from.
-
The next line gives the midi receive channel. Currently understood is
noteon, noteoff, and keypress messages, and control data, which is
sent to the sliders.
-
The next line gives the midi transmit channel. Currently, only control
messages are sent from the sliders. This however can be damned useful.
The relationship between midi control change messages and sliders is:
- B_PAN controls the pan.
- B_MODULATION controls filter resonance.
- B_BREATH_CTRL controls the filter envmod.
- B_GENERAL_CTRL_1 controls the cutoff frequency.
- B_GENERAL_CTRL_2 controls the feedback.
- B_GENERAL_CTRL_3 controls the tempo.
- B_GENERAL_CTRL_4 controls the amplitude slider.
- controller 0x0c controls the delay factor.
- controller 0x0d controls the decay parameter.
These work both on midi in and out, but it would be ace if they were
user configurable.
Slated for future releases
Many of the glaring omissions in the present release will be overhauled
soon: a more useable, more realistic sequencer; LFOs for VCO and VCF;
control over the waveform; the ability to save settings.
Known Bugs and Limitations
-
There is a bit of lag in the keyboard/external sequencer response. It's
not measurable, but more of a feel thing, and probably no worse than that
in a lot of old analog gear anyway. This
seems to do with the fact that the audio subscriber (as I understand it)
doesn't like buffer sizes less than 4k. This is quite a whack of pre-
calculation, and I share your concern. (Be: please prove me wrong).
-
The default sequence gets very annoying.
-
Control change information occasionally gets mangled. This happens
somewhere between my keyboard and the BMidi interface, and might not
be a problem on other setups.
-
The transposition textcontrol does not send a message if the text
is not changed. This is a problem with the BControl itself. Changing
the field with a space will get around this problem (eck!).
-
More than 7 running at once will bring a dual-66 to its knees,
requiring a 2 finger reset to alleviate the problem. This is not a
problem on the dual-133, but the limitation is presently
hard-coded.
Authors
-
David Karla (dak@cs.latrobe.edu.au)
-
Alistair Riddell (amr@farben.latrobe.edu.au)
-
Ross Bencina
Correspondence (feedback and bug reports) will be graciously
accepted. Post any queries to dak@cs.latrobe.edu.au.