Orca
Lua port of @neauoire orca for monome norns
Install / Use
/learn @itsyourbedtime/OrcaREADME
Orca is a visual programming language, designed to create procedural sequencers on the fly.
............................
#.........█.................
#........█▒█......█.........
#.......█▒▒█.....█▒█........
#........██▒█....█▒█........
#.......██▒█▒█..█▒▒█........
#.......█▒▒██..█▒▒█.........
#........█▒██▒█▒▒█▒█........
#.........█▒▒▒▒████.........
#........█▒▒▒▒▒▒▒▒▒█........
#.......█▒▒▒▒█▒▒█▒▒▒█.......
#......█▒▒...▒▒▒▒..▒▒█......
#......█▒..█..▒▒..█..█......
#......█▒..█..▒▒..█..█......
#......█▒▒...▒██▒..▒▒█......
#.......█▒▒▒▒▒..▒▒▒▒█.......
#.........█▒▒▒▒▒▒▒▒█........
#........██▒..▒▒██..........
#.......██.█..▒██.██........
#..........█▒▒▒█............
#...........███.............
#.........░░█.█.............
#........░░░░▒█░............
#..........░░░░.............
............................
Requirements

Orca for Norns supports 4 different engines, but in order for them to work they must be installed.
Install
Orca for Norns is available for install within Maiden. Update the Community feed and then scroll down to Orca and Install.

If you're looking to contribute with code checkout the documentation for Contributing.
<tab>Info bar: Toggles info bar visibility<esc>Unfocus: Removes selection focus<space>Play/Stop: Toggles play state, stop kills all notes.cmd/ctrl + >Adjust BPM: Increments BPM + 10.cmd/ctrl + <Adjust BPM: Decrements BPM - 10.
Documentation
Please refer to original docs for general Orca operation.
Operators
Aadd(a b): Outputs sum of inputs.Bsubtract(a b): Outputs difference of inputs.Cclock(rate mod): Outputs modulo of frame.Ddelay(rate mod): Bangs on modulo of frame.Eeast: Moves eastward, or bangs.Fif(a b): Bangs if inputs are equal.Ggenerator(x y len): Writes operands with offset.Hhalt: Halts southward operand.Iincrement(step mod): Increments southward operand.Jjumper(val): Outputs northward operand.Kkonkat(len): Reads multiple variables.Lless(a b): Outputs smallest of inputs.Mmultiply(a b): Outputs product of inputs.Nnorth: Moves Northward, or bangs.Oread(x y read): Reads operand with offset.Ppush(len key val): Writes eastward operand.Qquery(x y len): Reads operands with offset.Rrandom(min max): Outputs random value.Ssouth: Moves southward, or bangs.Ttrack(key len val): Reads eastward operand.Uuclid(step max): Bangs on Euclidean rhythm.Vvariable(write read): Reads and writes variable.Wwest: Moves westward, or bangs.Xwrite(x y val): Writes operand with offset.Yjymper(val): Outputs westward operand.Zlerp(rate target): Transitions operand to input.*bang: Bangs neighboring operands.#comment: Halts a line.
IO / 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.
Keyboard Shortcuts
| Controller | Description | Values |
| -------------- | ----------------| --------- |
| <tab> | Info bar | Toggles info bar visibility |
| <esc> | Unfocus | Removes selection focus |
| <space> | Play/Stop | Toggles play state, stop kills all notes. |
| cmd/ctrl + > | Adjust BPM | Increments BPM + 10. |
| cmd/ctrl + < | Adjust BPM | Decrements BPM - 10. |
Key/Encoder
| Controller | Description | Values |
| ------------ | ----------------- | --------- |
| K1 + E1 | Select operator | A–Z, $, ?, /, \, |, -, :, %, !, &, ^, ~, ], }, `, >, <, =, *, # |
| K1 + E2 | Select value | 0–z |
| K1 + E3 | Select note | A–G |
| K2 | Clear character | |
| K2 | Toggle play/stop | |
$ R.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).
playhead- values:
0-6: target playhead number
- values:
rec- values:
0: disables recording/overdub;1–z: recording level and amount of overdub preserve
- values:
play- values:
0: disables play;1: enables play
- values:
level- values:
0: 0,z: 35
- values:
rate- values:
0: 2x speed (reverse),i: normal (default),z: 2x speed (forwards)
- values:
position- values:
0: beginning of buffer,z: length of buffer.
- values:
\ SOFTCUT PARAMS
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.
-
playhead- values:
0-6: target playhead number
- values:
-
1: Source- values:
0: 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;
- values:
-
2: Pan- values:
0: full left,1: centered,2: full right
- values:
-
3: Rate slew time- values:
0: 0s,z: 35s
- values:
-
4: Level slew time- values:
0: 0s,z: 35s
- values:
| 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 [Ti
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
