A port of the Orca livecoding sequencer to the PicoCalc handheld.
- Full Orca VM - All 26 operators (A-Z) plus special operators
- Built-in Synthesizer - 4-voice polyphonic synth with 4 waveforms (inspired by Pilot)
- Original Orca Font - Authentic 8x16 bitmap font
- Flash Storage - Save/load grids to internal flash
- Undo History - 8-level undo
- Selection Tools - Copy, cut, paste, fill, slide
| Key | Action |
|---|---|
| Arrow keys | Move cursor |
| Shift + Arrows | Resize selection |
| Tab | Toggle append mode (cursor moves right after input) |
' (quote) |
Toggle selection resize mode |
` (grave) |
Toggle slide mode (move selection contents) |
| Esc | Reset selection / exit mode |
| Key | Action |
|---|---|
| Space | Play/Pause |
< / > |
Decrease/Increase BPM (±5) |
| Ctrl+F | Step single frame (when paused) |
| Ctrl+R | Reset tick counter |
| Key | Action |
|---|---|
| Ctrl+C | Copy selection |
| Ctrl+X | Cut selection |
| Ctrl+V | Paste |
| Ctrl+Z | Undo |
| Ctrl+A | Select all |
| Ctrl+N | New grid (clear all) |
| Backspace/Del | Clear cell(s) |
| Key | Action |
|---|---|
( / ) |
Decrease/Increase grid height |
[ / ] |
Decrease/Increase grid width |
| Key | Action |
|---|---|
{ / } |
Volume down/up |
| Key | Action |
|---|---|
| Ctrl+S | Save to flash |
| Ctrl+O | Load from flash |
The = operator plays notes on the built-in speaker, inspired by Pilot.
Format: =WAVEFORM OCTAVE NOTE VELOCITY DURATION
*=14Cff
│││││└─ Duration (1-g, longer)
││││└── Velocity (0-f, . = max)
│││└─── Note (C-B, lowercase = sharp)
││└──── Octave (0-9)
│└───── Waveform (0-3)
└────── Bang required (*)
| Value | Type |
|---|---|
| 0 | Sine (smooth) |
| 1 | Triangle (soft, default) |
| 2 | Square (8-bit/chiptune) |
| 3 | Sawtooth (bright/buzzy) |
D8.......... Simple beat with triangle wave
*=14Cff.....
D4.......... Chord with different waveforms
*=04Cff..... Sine bass
*=24Eff..... Square mid
*=34Gff..... Saw high
C8.......... Arpeggio using clock + track
.0CDEFGABc..
D8T.........
*=14.ff.....
The : operator is reserved for MIDI output over GPIO (not yet implemented).
Format: :CHANNEL OCTAVE NOTE VELOCITY DURATION
| Op | Name | Description |
|---|---|---|
: |
MIDI | Send MIDI note (GPIO) |
= |
Synth | Play note on speaker |
! |
CC | Send MIDI CC |
? |
PB | Send MIDI pitch bend |
; |
UDP | Send UDP message |
| Op | Name | Description |
|---|---|---|
A |
Add | Output sum of inputs |
B |
Subtract | Output difference |
C |
Clock | Output modulo of frame |
D |
Delay | Bang on modulo of frame |
F |
If | Bang if inputs are equal |
I |
Increment | Increment southward |
L |
Lesser | Output smallest input |
M |
Multiply | Output product |
R |
Random | Output random value |
U |
Uclid | Euclidean rhythm |
Z |
Lerp | Transition between values |
| Op | Name | Description |
|---|---|---|
E |
East | Move eastward or bang |
N |
North | Move northward or bang |
S |
South | Move southward or bang |
W |
West | Move westward or bang |
| Op | Name | Description |
|---|---|---|
H |
Halt | Halt southward operand |
J |
Jump | Output northward operand |
K |
Konkat | Read multiple variables |
O |
Offset | Read with offset |
P |
Push | Write eastward |
Q |
Query | Read with offset (multiple) |
T |
Track | Read eastward |
V |
Variable | Read/write variable |
X |
Teleport | Write with offset |
Y |
Yump | Output westward operand |
G |
Generator | Write multiple operands |
| Op | Name | Description |
|---|---|---|
* |
Bang | Trigger operators |
# |
Comment | Comment until line end |
- Raspberry Pi Pico SDK
- ARM GCC toolchain
- CMake
cd orca-picocalc
mkdir build && cd build
cmake ..
make -j4Copy orca-picocalc.uf2 to the PicoCalc in BOOTSEL mode.
- Orca by Hundred Rabbits - Original livecoding environment
- Pilot by Hundred Rabbits - Synth inspiration
- PicoCalc by ClockworkPi - Hardware platform
MIT License - See Orca-c for original license.
