Please refer to original docs for general Orca operation.
Keyboard shortcuts
⇥ Tab - Toggles info bar visibility
⎋ Esc - Removes selection focus
Space - Toggles play state, stop kills all notes.
⌥ Cmd / ^ Ctrl + → - Increments BPM + 10.
⌥ Cmd / ^ Ctrl + ← - Decrements BPM - 10.
Key / Encoder controls
0 – z
A – G
Operators
A - add(a b): Outputs sum of inputs.B - subtract(a b): Outputs difference of inputs.C - clock(rate mod): Outputs modulo of frame.D - delay(rate mod): Bangs on modulo of frame.E - east: Moves eastward, or bangs.F - if(a b): Bangs if inputs are equal.G - generator(x y len): Writes operands with offset.H - halt: Halts southward operand.I - increment(step mod): Increments southward operand.J - jumper(val): Outputs northward operand.K - konkat(len): Reads multiple variables.L - less(a b): Outputs smallest of inputs.M - multiply(a b): Outputs product of inputs.N - north: Moves Northward, or bangs.O - read(x y read): Reads operand with offset.P - push(len key val): Writes eastward operand.Q - query(x y len): Reads operands with offset.R - random(min max): Outputs random value.S - south: Moves southward, or bangs.T - track(key len val): Reads eastward operand.U - uclid(step max): Bangs on Euclidean rhythm.V - variable(write read): Reads and writes variable.W - west: Moves westward, or bangs.X - write(x y val): Writes operand with offset.Y - jymper(val): Outputs westward operand.Z - lerp(rate target): Transitions operand to input.* - bang: Bangs neighboring operands.# - comment: Halts a line.
Norns Operators
$ - r.note(scale-mode note): Outputs random note within scale.? - levels(param value): Sets selected volume level on bang./ - softcut(playhead rec play level rate position).\ - softcut param(playhead param value): Sets softcut param on bang.| - synth(octave note): Plays a note with the synth engine.- - synth param(param value): Sets synth param on bang.- - - midi(channel octave note velocity length): Sends a MIDI note.% - mono(channel octave note velocity length): Sends monophonic MIDI note.! - cc(channel knob value): Sends MIDI control change.& - midi in(channel): Outputs received midi note.^ - cc in(cc): Outputs received midi cc value.~ - crow cv(channel octave note attack release level):] - crow ii jf note(channel octave note level): Just Friends over i2c in voice mode.} - crow ii jf voice(octave note level): Just Friends over i2c in note mode.` - crow w/syn(octave note level):> - g.write(x y value): Sets Grid LED on bang.< - g.read(x y): Reads specific coordinates. If value > 6 outputs bang.( - a.read(enc): Reads Arc encoder value= - OSC (path;x;y..): Locks each consecutive eastwardly ports. ; is delimeter for values.
$ Random Note
The R.NOTE operator $ takes 2 inputs(scale-mode, note).
This operator generates a scale based on the given mode (default is Dorian) and note/key (default is C). For example to generate an F natural minor scale enter $2F. There are 35 different modes to choose from:
1 - Major2 - Natural Minor3 - Harmonic Minor4 - Melodic Minor5 - Dorian6 - Phrygian7 - Lydian8 - Mixolydian9 - Locriana - Gypsy Minorb - Whole Tonec - Major Pentatonicd - Minor Pentatonice - Major Bebopf - Altered Scaleg - Dorian Beboph - Mixolydian Bebopi - Blues Scalej - Diminished Whole Halfk - Diminished Half Wholel - Neapolitan Majorm - Hungarian Majorn - Harmonic Majoro - Hungarian Minorp - Lydian Minorq - Neapolitan Minorr - Major Locrians - Leading Whole Tonet - Six Tone Symmetricalu - Arabianv - Balinesew - Byzantinex - Hungarian Gypsyy - Persianz - East Indian Purvi
? Levels
The LEVELS operator ? takes 2 inputs(param, value).
There are 9 different params that can be modulated on the fly with this operator:
1 - level output channels2 - level engine master3 - level softcut master4 - level ADC input5 - reverb engine level6 - softcut reverb level7 - reverb DAC level8 - softcut ADC level9 - softcut engine level
In order to trigger parameter setting a bang * has to occure on the left side of operator. The value is simply the percentage to set the level 0 is 0% z is 100%. For example ?5z will set the engine reverb to 100%, or ?2h will set the engine volume level to 50%.
/ Softcut
The SOFTCUT operator / takes up to 6 inputs (playhead rec play level rate position).
This operator receives a MIDI note from a MIDI controller, based on the channel value (default is channel 1).
playhead0 - 6- softcut voice
rec0- disables recording/overdub;1–z- recording level and amount of overdub preserve
play0- disables play;1- enables play
level0- min,z- max
rate0- 2x speed (reverse)i- normal (default)z- 2x speed (forwards)
position0- beginning of buffer,z- length of buffer.
\ Softcut parameters
A subset of Softcut’s params are availabe with the SOFTCUT PARAMS operator \ (playhead param value). These 3 params are always required (along with a bang) to modulate a given parameter.
playhead0- beginning of buffer,z- end of buffer.1- Source0- 0 ADC level, 0 Softcut engine level;1- 1 ADC level, 0 Softcut engine level;2- 0 ADC level, 1 Softcut engine level;3- 1 ADC level, 1 Softcut engine level;2- Pan0- full left,1- centered,2- full right3- Rate slew time0- 0s,z- 35s4- Level slew time0- 0s,z- 35s
| Synth / Engine
The SYNTH operator | inputs vary based on selected engine, but (octave, note …) are always required (along with a bang) to produce sound.
There are 4 different engine supported by Orca FM7, Passersby, PolyPerc, and Timber. Within the params menu engines can be changed.
⚠️ Note: when changing engines you will have to reengage the clock by pressing K3.
FM7
A “Polyphonic Synthesizer for Norns With 6 Operator Frequency Modulation”. When this engine is selected, the SYNTH operator | takes up to 4 different inputs (octave, note, voice, amp). For example |4C.. will play a C at the 4th octave (Midi scale).
octave
values:0-7note
values:A–Gvoice
values:0- 0s,z- 1.5samp
values:0- 0.0,z- 1.0
Passersby
A “West Coast style mono synth”. When this engine is selected, the SYNTH operator | takes up to 6 different inputs (octave, note, velocity, timbre, pitchBend, pressure). For example |4Cz... will play a C at the 4th octave (Midi scale) with a velocity of 255.
octave
values:0-7note
values:A–Gvelocity
values:0- 0,z- 125timbre
values:0- 0.0,z- 1.0pitchBend
values:0- 0.0,z- 1.0pressure
values:0- 1.5,z- 3.0
PolyPerc
A “simple polyphonic filtered decaying square wave”. When this engine is selected, the SYNTH operaptor | takes up to 2 inputs (octave, note). For example |4C will play a C at the 4th octave (Midi scale).
octave
values:0-7note
values:A–G
Timber
A sample player engine and two scripts for norns. When this engine is selected, the SYNTH operator | takes up to 5 inputs (octave note sample level position). For example |4C1 will play the first sample and tune it a C at the 4th octave (Midi scale).
octave
values:0-7note
values:A–Gsample
values:0- 1,z- 36level
values:0- -48db,z- 16dbposition
values:0- start of samplez- end of sample
Note, in order for the position param to affect a clip, Timber only supports audio samples that are maximum: 10 seconds mono and 5 seconds stereo, as stated in the Timber source code. Longer clips (maximum 2 hours @ 44100 sample rate) can be played back, but position will have no effect.
Additional details
However, By reducing the sample rate you can use longer clips with the `position` param, because there's a direct relationship between mono/stereo, sample rate, and length of audio.Stereo
- Max 5 seconds stereo @ 44100 sample rate
- Max 10 seconds stereo @ 22050 sample rate
- Max 20 seconds stereo @ 11025 sample rate
- and so on…
Mono
- Max 10 seconds mono @ 44100 sample rate
- Max 20 seconds mono @ 22050 sample rate
- Max 40 seconds mono @ 11025 sample rate
- and so on…
- Synth / Engine Parameters
Each synth engine has numerous settings to modulate its sound profile. The SYNTH PARAM operator - are (param value) (except for FM7 see below) these 2 params are always required (along with a bang) to modulate a given parameter.
FM7
When this engine is selected the SYNTH PARAM operator - takes up to 3 inputs (param value voice). This particular engine allows for a complex combination of params. For example -5i1 sets the “Osc(illator) Amp(litude) Env(elope) Attack” to 5.14 seconds for voice 1. Load the included to fm7-demo.orca demo to see more params (be sure to select FM7 within the params menu first).
1 - Osc Frequency Multiplier (Hz)2 - Osc Phase (radians)3 - Osc Amplitude (decibels)4 - Carrier Amplitude (decibels)5 - Osc Amp Env Attack (seconds)6 - Osc Amp Env Decay (seconds)7 - Osc Amp Env Sustain (decibels)8 - Osc Amp Env Release (seconds)9 - Osc1 Phase Mod Osc (decibels)a - Osc2 Phase Mod Osc (decibels)b - Osc3 Phase Mod Osc (decibels)c - Osc4 Phase Mod Osc (decibels)d - Osc5 Phase Mod Osc (decibels)e - Osc6 Phase Mod Osc (decibels)
Passersby
When this engine is selected the SYNTH PARAM operator - takes up to 2 inputs (param value). For example -51 sets the “Envelope Type " to "LPG". Load the included to passersby-demo.orca demo to see more params (be sure to select Passersby within the params menu first).
1 - Amp2 - Attack (seconds)3 - Decay (seconds)4 - Drift5 - Envelope Type: 1 - LPG, 2 - Sustain6 - FM Low Amount7 - FM Low Ratio8 - FM High Amount9 - FM High Ratioa - Glide (seconds)b - LFO Frequency (Hz)c - LFO Shape: 1 - Triangle, 2 - Ramp, 3 - Square, 4 - Randomd - LFO > Attacke - LFO > Decayf - LFO > FM Lowg - LFO > FM Highh - LFO > Frequency (Hz)i - LFO > Peakj - LFO > Reverb Mixk - LFO > Wave Foldsl - LFO > Wave Shapem - Peak (Hz)n - Pitch Bend Allo - Pressure Allp - Reverb Mixq - Timbre Allr - Wave Foldss - Wave Shape
PolyPerc
When this engine is selected the SYNTH PARAM operator - takes up to 2 inputs (param value). For example -3z sets the “Release” to 3200ms. Load the included to polyperc-demo.orca demo to see more params (be sure to select PolyPerc within the params menu first).
1 - Pulse width (%)2 - Amp3 - Release (seconds)4 - Cutoff (Hz)5 - Gain6 - Pan: 0 - left, i - center, z - right
Timber
When this engine is seleted the SYNTH PARAM operator - takes up to 3 inputs (param value sample). For example -811 sets the filter type to “high pass” for sample 1.
1 - Amp env attack2 - Amp env decay3 - Amp env sustain4 - Amp env release5 - Detune cents6 - Stretch [percentage]7 - Filter freq8 - Filter resonance9 - Filter type: 0 - Low Pass, 1 - High Passa - Quality: 0 - Nasty, 1 - Low, 2 - Medium, 3 - Highb - Freq mod LFO 1c - Freq mod LFO 2d - Filter freq mod LFO 1e - Filter freq mod LFO 2f - Pan mod LFO 1g - Pan mod LFO 2h - Amp mod LFO 1i - Amp mod LFO 2j - Freq mod envelopek - Filter freq mod envelopel - Filter freq mod velocitym - Filter freq mod pressuren - Filter trackingo - Pan mod envelopep - Envelope attackq - Envelope decayr - Envelope sustains - Transposet - Stretch [length]u - Stretch [bars]: 0 - 1/64 - d - 1 barv - Pan: 0 - left, i - center, z - rightw - Ampx - Envelope releasey - Start framez - End frame
- Midi Out
The MIDI operator - takes up to 5 inputs (channel octave note velocity length).
% Midi Out Mono
The MONO operator % takes up to 5 inputs (channel octave note velocity length).
See Orca’s Midi Mono documentation
! Midi CC
The CC operator ! takes 3 inputs (channel knob value).
See Orca’s Midi CC documentation
& Midi Input
The MIDI IN operator & takes 1 input(channel).
This operator receives a MIDI note from a MIDI controller, based on the channel value (default is channel 1).
^ Midi Input CC
The CC IN operator ^ takes 1 input(channel).
This operator receives a MIDI CC message from a MIDI controller, based on the channel value (default is channel 1).
~ Crow CV
The CROW CV operator ~ takes up to 6 parameters (channel octave note attack release level).
channel- values:
0- crow out 1 is 1v/Oct CV and out 2 is an AR envelope;1- crow out 3 is 1v/Oct CV and out 2 is AR envelope.
- values:
octave- values:
0-7
- values:
note- values:
A–G
- values:
attack- values:
0- 0s,z- 1.5s
- values:
release- values:
0- 0s,z- 3s
- values:
level- values:
0- 0V,z- 10V
- values:
For example ~04Chhz sets channel to value 0, plays a C4 note with a 750ms attack, 750ms release, at 10V.
] Crow JF II Note
The CROW JF II NOTE operator ] takes up to 4 parameters (channel octave note level). For this operator, channel can be set 0-5 and sets which channel the voice is playing from.
} Crow JF II Voice
The CROW JF II VOICE operator ] takes up to 3 parameters (octave note level).
` Crow W/Syn
The CROW JF W/SYN operator ` takes up to 3 parameters (octave note level).
> Grid Write
The G.WRITE operator > takes up to 3 inputs (x y value) and activates Grid LED at given x, y coordinate.
< Grid Read
The G.READ operator < takes up to 3 inputs (x y value) and read Grid at given x, y coordinate.
( Arc Read
The A.READ operator ( takes 1 input(enc) and reads given Arc encoder value.
= OSC Send
The OSC operator = takes up to 1 input(path;x;y..) locking each consecutive eastwardly ports. ; is delimeter for sending OSC values.