8 loop looper for ambient jamming with compact gestural graphical interface
jambient Jammer is a Reaktor instrument in the jambient series. It is designed for live jamming with samples, and is geared to ambient-style sound making and nonrythmical audio collage. It’s meant to be played mainly inside the Reaktor interface but can also be controlled with a midi controller that can send midi CC’s. jambientRkt is an outgrowth of ideas first developed in Jambient (www.jambient.com), a VB program.
The basic playing style for jambient Jammer is this: drop loops in, play them, change their pitches, pan, direction, fade up sets of loops and fade down others, and also: drop new loops in continuously. Most samplers, etc., are geared to letting you change the pitch and rhythm of a fixed set of samples; the idea here is to play/make music by continously changing samples, timbre, content. jambientBrowser3 is a browser I have specially written to facilitate making music this way; use it as a source for dragging samples into your mix. (It’s available in the library, PC only.)
This instrument has been sitting on my computer since last summer, waiting for me to put finishing touches and add more stuff to it, but that isn’t going to happen for a while, I’m just too swamped with my real work. So I am releasing it now, even though it’s not yet what I want it to be, so that those who might want to use it can, and also because there are some interesting programming techniques in it.
The interface is simple enough. It is designed to be graphically clean and clear: you control eight loops, with columns of controls governing parameters for each loop. Left to right there are play buttons, then volume bars, gain knobs, forward/reverse toggles, pitch bars, pan bars, and then gap knobs (which set a time gap between loop playings). I’ve used changing colour to add more information so that relations between overall settings of pitch, pan and volume can be read chromatically as well as spatially.
Two ‘cool’ things:
The interface to the samples is in the volume bar area; the volume bars are transparent with the samples showing through below. To load samples, just drop them onto volume bars, using either Reaktor’s browser or an external browser. The idea here is to save screen space; you need the horizontal space for sample names anyway, why not use it by having the volume control sit on top of it.
Because of the way I’ve programmed it, you can draw volume, pitch and pan curves through multiple loops at once. Drag your mouse diagonally, say, in the pitch area to see what I mean: multiple pitches are set with one gesture. You can also use this technique on the play and direction buttons to stop or reverse a set of loops. Gain knobs and gap knobs are adjusted individually. Also, right clicking or dragging in the controls sets the control in question to an appropriate default value. Right clicking in the volume bars ‘switch fades’: loops that have volume fade down to mute, loops that are muted fade up to full volume; right dragging across a set of bars, some of which are mute will give dissolve effects.
Volume, pitch, and pan controls have fade and damping effects on them, so that volume, etc., can be set to slowly fade up to the values you set in the interface; adjust these settings with the knobs at the bottom.
Panning of a loop is based on the difference between the pan bar for a loop, and the position of the listener, which is controlled by dragging the little head below the pan bars. Moving the listener changes the pan of all the loops at once, so you can use this to play with spatial position and make that part of your music. In B view there are also some settings for the ‘physics’ of the panning algorithm.
In B view, below each column, you can set knobs that specify how the controls in that column are to be controlled by CCs. E.g., if the CC Root below the pitch bars is 81 and the CC Span is 8, then CCs 81-88 will control the pitch bars; when you change controls, MIDI CC is sent as feedback to your control, works nicely on Behringer’s BCR. Set CC Root to 0 for no midi control.
There are some exciting programming techniques in here. You’ll notice that the number of voices for the instrument is 8. If you change this, you’ll see that the number of controls in each column changes accordingly. This is because each of the control columns is in fact really a mouse area sitting on top of a polyphonic multi-object display, either displaying filled bars, or using a multi-picture graphic (for the knobs). This technique obviously allows you to increase the number of controls without duplicating modules or macros; the control circuitry for N controls is encapsulated in one polyphonic macro. I have designed this macro in a modular fashion, so that things like changing the spacing between knobs, the relation between colour and value in filled bars, what happens when the user right clicks, etc., are all in nicely labelled sub macros. If you wanted to change this to a 16 row looper, you’d just have to change the size of the mouse areas and polyphonic multi displays, and make adjustments to the spacing between controls. You’d also have to duplicate the sample macros in the sample rack. The latter is a monophonic macro that takes input from the polyphonic controllers, roots it to separate samples, and then combines the audio outputs pack to poly. In general, I think we can simplify our instruments greatly if, where there are series of related values, we can program them in poly. The idea here is to implement something akin to control arrays in Visual Basic.
Things I wanted to do:
A 3d sound positioning portion to replace the panning, based on a HRTF algorithm and jambient Radr, with improvements to the latter using the graphics capacities of R5.
Master controls to adjust a set of loops at once.
Auto reset controls, that would set pitch to normal when a loop is loaded, etc.