A ready-made rack of instruments and effects behind one object, built for playing live rather than for designing sounds — and the bridge between Phausto and Coypu.

1. What it is for

Everything else in this manual is about building a sound. TurboPhausto assumes the sounds already exist and asks a different question: how do you play twelve of them at once, change your mind mid-bar, and not have a silence while you rebuild a DSP?

The answer is a rack — a single large DSP holding many instruments and effects, compiled once and then driven entirely by parameter changes. Nothing is rebuilt during a performance, so nothing ever stops.

The trade You give up the freedom to patch arbitrarily and get back reliability and immediacy. For sound design, work with UGens directly. For a set, use the rack.

2. Starting an engine

Two steps: load the rack, then instantiate an engine.

TurboPhausto start.

tp := TurboPhausto new.
tp bpm: 140.
tp play.

tp stop.

start is a class-side message that loads instruments, samplers, effects and filters into the rack. It takes a moment — the whole rack is compiled — and only needs doing once per image.

Class-side messageEffect
startLoad and compile the rack
rackThe rack itself
loadRackLoad the rack contents
loadAllSynthsLoad the synth voices
loadAllSamplersLoad the samplers
loadEffectsLoad the effects
loadFiltersLoad the global filters
tpDspThe underlying DSP
tpPerfThe performance object

2.1 The samples folder

The samplers need audio files. TurboPhausto looks for a TurboSamples folder, which ships in the Phausto repository alongside MoofLodSamples and phDemoSamples.

MessageReturns
TurboPhausto samplesFolderExistsWhether the folder was found
TurboPhausto turboSamplesFolderWhere it is looking
TurboPhausto listOfSamplesFolderThe sub-folders, one per instrument
TurboPhausto listOfSamplesEvery sample found
Check this first TurboPhausto samplesFolderExists answering false explains most "the drums are silent" problems before you go looking anywhere else.

3. The engines

PhaustoEngine is the abstract superclass — "an abstract superclass for TurboPhausto engines to be used with Coypu for live coding". Several concrete engines differ in how much they load:

ClassRole
PhaustoEngineAbstract superclass; defines the performance protocol
TurboPhaustoThe full rack — every instrument and effect
CustomPhaustoA rack you configure yourself
EcoPhaustoA lighter rack — fewer voices, lower CPU
MooPhaustoAn alternative rack configuration
Start with EcoPhausto on older machines The full rack compiles a great deal of DSP. If TurboPhausto start takes an uncomfortable amount of time or the audio stutters, EcoPhausto gives the same interface with a smaller footprint.

4. What is in the rack

4.1 TpSynth and its subclasses

The rack's voices are TpSynth subclasses — instruments designed to be parameter-driven rather than repatched:

ClassVoice
AcidTB-303 style acid bass
TpReeseReese bass — detuned, phasing low end
TpHooverHoover — the rave supersaw
TpKick99Kick drum
ChordyChordal pad
Fm2OpTwo-operator FM voice
PsgPlusChiptune-style PSG voice
TpKarplusKarplus–Strong plucked string
TpSamplerMultisample player
TpSamplerReverbSampler with built-in reverb
PhLoopLoop player, sample-rate aware
GreyHoleDWGreyhole reverb with dry/wet control

4.2 TpSampler

TpSampler is useful well beyond the rack and is documented in full in Sequencing & Sampling §4. In short: point it at a folder, select with tpSamplerIndex, fire with tpSamplerTrigger, and play it chromatically with playNote:prefix:dur: where MIDI note 60 is the file's original speed.

Always mono TpSampler outputs mono even when the files are stereo. Send it stereo if you want two channels.

4.3 Listing what is loaded

MessageReturns
TurboPhausto listAllInstrumentsPrint every instrument in the rack
TurboPhausto listOfInstrumentsThe instruments as a collection
TurboPhausto listOfSynthsJust the synth voices
PhaustoEngine allInstrumentsEvery instrument
PhaustoEngine allSynthsEvery synth
PhaustoEngine allSamplersEvery sampler
PhaustoEngine allEffectsEvery effect
tp traceAllSamplesPrint the loaded samples
tp traceAllParamsPrint every rack parameter

The rack is large, so traceAllParams produces a great deal of output — but it remains the authoritative list of what can be changed.

5. Performing

5.1 Transport and tempo

MessageEffect
bpm:Set the tempo
playStart the performance
stopStop it
playFor: aNumberOfBarsPlay a fixed number of bars
playCyclicFor: aNumberOfBarsPlay a repeating cycle of that length
loop: anInteger / unloopLoop a section, and release it
rhythm:Set the global rhythm
trig: aStringFire a trigger directly
playNote:prefix:dur:Play a note on a rack instrument
TurboPhausto start.
tp := TurboPhausto new.
tp bpm: 140.
16 downbeats to: #snare.
tp playFor: 8 bars.

The 16 downbeats to: #snare and 8 bars constructions come from Coypu, which supplies the pattern vocabulary — see §6.

5.2 Mute, solo and levels

MessageEffect
mute: aSymbol / unmute:Silence one instrument, and restore it
muteAllSilence everything
solo: aSymbol / unsolo:Isolate one instrument, and release it
displayUIForLevelsOpen a mixer for the rack levels
displayUIOpen the full rack interface
setValue:parameter:Set any rack parameter
sweepToValue:parameter:in:Sweep one gradually

Mute and solo are the core performance gestures: because the whole rack is one running DSP, they take effect instantly and without a gap.

5.3 Global effects

The rack has a global filter and reverb section, addressable without touching individual instruments — the classic live-electronics filter sweep:

MessageEffect
lowPassFreq: / lowPassQ:Global low-pass cutoff and resonance
highPassFreq: / highPassQ:Global high-pass cutoff and resonance
lowPassSweep:Sweep the low pass — takes a frequency and a time
highPassSweep:Sweep the high pass
reverb: anAmountGlobal reverb amount
transpose: anIntegerTranspose the whole rack in semitones
size: aSizeRack size parameter
"Close the filter down over four seconds, then open it again"
tp lowPassSweep: #(200 4).
tp lowPassSweep: #(12000 2).

5.4 Saving and restoring

MessageEffect
temporarySaveSnapshot the current state
restoreReturn to the snapshot
destroy / destroyDspTear the rack down
stopDspStop the underlying DSP
Snapshot before you experiment temporarySave then restore is the safety net for live work: take a snapshot when a section sounds right, and you can always get back to it without remembering what you changed.

6. Coypu

TurboPhausto is designed to be driven by Coypu, the live-coding client from the same author. Coypu supplies the pattern language — rhythms, note sequences, Euclidean patterns — and TurboPhausto supplies the sound.

Coypu can also drive SuperCollider/SuperDirt, Kyma, Pure Data and MIDI hardware, so a rack is one of several available voices. The division is clean: Coypu decides when and what, Phausto decides how it sounds.

PackageRole
CoypuPatterns, sequencing, live-coding syntax
TurboPhaustoThe instrument rack Coypu plays
PhaustoThe synthesis underneath
Pharo-SoundMIDI in and out, for hardware

Coypu is documented separately — see the Coypu manual.

7. Where to go next

DocumentWhat it covers
Sequencing & SamplingTpSampler in detail, and sequencing without the rack.
Parameters & ControlThe parameter messages the rack is driven by.
Effects, Reverbs & DynamicsWhat the global effect section contains.
MIDI & Playing NotesPlaying rack instruments from a keyboard.

8. Troubleshooting

The samplers are silent but the synths work

The samples folder was not found. Check TurboPhausto samplesFolderExists and TurboPhausto turboSamplesFolder — §2.1.

TurboPhausto new fails or produces nothing

TurboPhausto start must run first to build the rack — §2.

Loading the rack takes a long time, or audio stutters

The full rack is a lot of DSP. Try EcoPhausto — §3.

An instrument will not unmute

Something else is soloed, which mutes everything else implicitly. Send unsolo: — §5.2.

The whole rack has gone quiet and I do not know why

Check for a global filter left in an extreme position — a low pass at 200 Hz removes almost everything. restore returns to your last snapshot — §5.3, §5.4.

Coypu patterns do not reach the rack

Coypu must be loaded and pointed at the Phausto engine. See the Coypu manual — §6.