shithub: orca

Download patch

ref: c9e8d97ff3135493df7478c374fa93514c3be75d
parent: af4ca8b389701bb64c5dc9b369697dd486c43def
parent: 3a92c8e3b3b75598ed762aee4aa34e689f1471a5
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sat May 9 20:08:09 EDT 2020

Merge remote-tracking branch 'r/master'

--- a/README.md
+++ b/README.md
@@ -1,3 +1,179 @@
 # ORCΛ
 
-The repository is now hosted [here](https://git.sr.ht/~rabbits/orca).
+<img src='https://100r.co/media/content/tools/orca/logo.jpg' width="600"/>
+
+[Orca](https://100r.co/site/orca.html) is an [esoteric programming language](https://en.wikipedia.org/wiki/Esoteric_programming_language) designed to quickly create procedural sequencers, in which every letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame. 
+
+This application **is not a synthesizer, but a flexible livecoding environment** capable of sending MIDI, OSC & UDP to your audio/visual interfaces, like Ableton, Renoise, VCV Rack or SuperCollider. 
+
+The livecoding environment for the C implementation runs in a terminal. It's designed to be power efficient. It can handle large files, even if your terminal is small. If you need <strong>help</strong>, visit the <a href="https://talk.lurk.org/channel/orca" target="_blank" rel="noreferrer" class="external ">chatroom</a> or the <a href="https://llllllll.co/t/orca-live-coding-tool/17689" target="_blank" rel="noreferrer" class="external ">forum</a>.
+
+<img src='https://100r.co/media/content/tools/orca/terminal.jpg' width='600'/>
+
+## Install & Run
+
+```sh
+sudo apt-get install git libncurses5-dev libncursesw5-dev libportmidi-dev
+git clone https://git.sr.ht/~rabbits/orca
+cd Orca-c
+make          # Compile orca
+build/orca    # Run orca
+```
+
+## Select Midi Device
+
+To choose your MIDI output device, press `F1` (or `Ctrl+D`) to open the main menu, and then select `MIDI Output...`
+
+```
+┌ ORCA ──────────────┐┌ PortMidi Device Selection ─────┐
+│   New              ││ > [*] #0 - Midi Through Port-0 │
+│   Open...          ││   [ ] #2 - ES1371              │
+│   Save             │└────────────────────────────────┘
+│   Save As...       │
+│                    │
+│   Set BPM...       │
+│   Set Grid Size... │
+│   Auto-fit Grid    │
+│                    │
+│ > MIDI Output...   │
+│                    │
+│   Controls...      │
+│   Operators...     │
+│   About...         │
+│                    │
+│   Quit             │
+└────────────────────┘
+```
+
+## Prerequisites
+
+Core library: A C99 compiler (no VLAs required), plus enough libc for `malloc`, `realloc`, `free`, `memcpy`, `memset`, and `memmove`. (Also, `#pragma once` must be supported.)
+
+Command-line interpreter: The above, plus POSIX, and enough libc for the common string operations (`strlen`, `strcmp`, etc.)
+
+Livecoding terminal UI: The above, plus ncurses (or compatible curses library), and floating point support (for timing.) Optionally, PortMidi can be used to enable direct MIDI output.
+
+## Build
+
+The build script, called simply `tool`, is written in `bash`. It should work with `gcc` (including the `musl-gcc` wrapper), `tcc`, and `clang`, and will automatically detect your compiler. You can manually specify a compiler with the `-c` option.
+
+Currently known to build on macOS (`gcc`, `clang`, `tcc`) and Linux (`gcc`, `musl-gcc`, `tcc`, and `clang`, optionally with `LLD`), and Windows via cygwin or WSL (`gcc` or `clang`, `tcc` untested).
+
+There is a fire-and-forget `make` wrapper around the build script.
+
+PortMidi is an optional dependency. It can be enabled by adding the option `--portmidi` when running the `tool` build script.
+
+Mouse awareness can be disabled by adding the `--no-mouse` option.
+
+### Build using the `tool` build script
+
+Run `./tool help` to see usage info. Examples:
+
+```sh
+./tool build -c clang-7 --portmidi orca
+    # Build the livecoding environment with a compiler
+    # named clang-7, with optimizations enabled, and
+    # with PortMidi enabled for MIDI output.
+    # Binary placed at build/orca
+
+./tool build -d orca
+    # Debug build of the livecoding environment.
+    # Binary placed at build/debug/orca
+
+./tool build -d cli
+    # Debug build of the headless CLI interpreter.
+    # Binary placed at build/debug/cli
+
+./tool clean
+    # Same as make clean. Removes build/
+```
+
+### Build using the `make` wrapper
+
+```sh
+make release    # optimized build, binary placed at build/orca
+make debug      # debugging build, binary placed at build/debug/orca
+make clean      # removes build/
+```
+
+The `make` wrapper will enable `--portmidi` by default. If you run the `tool` build script on its own, `--portmidi` is not enabled by default.
+
+## `orca` Livecoding Environment Usage
+
+```
+Usage: orca [options] [file]
+
+General options:
+    --undo-limit <number>  Set the maximum number of undo steps.
+                           If you plan to work with large files,
+                           set this to a low number.
+                           Default: 100
+    --initial-size <nxn>   When creating a new grid file, use these
+                           starting dimensions.
+    --bpm <number>         Set the tempo (beats per minute).
+                           Default: 120
+    --seed <number>        Set the seed for the random function.
+                           Default: 1
+    -h or --help           Print this message and exit.
+
+OSC/MIDI options:
+    --strict-timing
+        Reduce the timing jitter of outgoing MIDI and OSC messages.
+        Uses more CPU time.
+
+    --osc-midi-bidule <path>
+        Set MIDI to be sent via OSC formatted for Plogue Bidule.
+        The path argument is the path of the Plogue OSC MIDI device.
+        Example: /OSC_MIDI_0/MIDI
+```
+
+### Example: build and run `orca` liveocding environment with MIDI output
+
+```sh
+$ ./tool build --portmidi orca           # compile orca using build script
+$ build/orca                             # run orca
+```
+
+### `orca` Livecoding Environment Controls
+
+```
+┌ Controls ───────────────────────────────────────────┐
+│           Ctrl+Q  Quit                              │
+│       Arrow Keys  Move Cursor                       │
+│     Ctrl+D or F1  Open Main Menu                    │
+│   0-9, A-Z, a-z,  Insert Character                  │
+│    ! : % / = # *                                    │
+│         Spacebar  Play/Pause                        │
+│ Ctrl+Z or Ctrl+U  Undo                              │
+│           Ctrl+X  Cut                               │
+│           Ctrl+C  Copy                              │
+│           Ctrl+V  Paste                             │
+│           Ctrl+S  Save                              │
+│           Ctrl+F  Frame Step Forward                │
+│ Ctrl+I or Insert  Append/Overwrite Mode             │
+│        ' (quote)  Rectangle Selection Mode          │
+│ Shift+Arrow Keys  Adjust Rectangle Selection        │
+│   Alt+Arrow Keys  Slide Selection                   │
+│   ` (grave) or ~  Slide Selection Mode              │
+│           Escape  Return to Normal Mode or Deselect │
+│          ( and )  Resize Grid (Horizontal)          │
+│          _ and +  Resize Grid (Vertical)            │
+│          [ and ]  Adjust Grid Rulers (Horizontal)   │
+│          { and }  Adjust Grid Rulers (Vertical)     │
+│          < and >  Adjust BPM                        │
+│                ?  Controls (this message)           │
+└─────────────────────────────────────────────────────┘
+```
+
+## `cli` command-line interface interpreter
+
+The CLI (`cli` binary) reads from a file and runs the orca simulation for 1 timestep (default) or a specified number (`-t` option) and writes the resulting state of the grid to stdout.
+
+```sh
+cli [-t timesteps] infile
+```
+
+You can also make `cli` read from stdin:
+```sh
+echo -e "...\na34\n..." | cli /dev/stdin
+```
\ No newline at end of file
--- a/examples/_midi.orca
+++ /dev/null
@@ -1,13 +1,0 @@
-.........................................
-.#.MIDI.#................................
-.........................................
-................################.........
-................#..............#.........
-.....4C4........#..Channel..1..#.........
-...4D104TCDFE...#..Octave...4..#.........
-.....:04C85.....#..Notes.CDFE..#.........
-................#..............#.........
-................################.........
-.........................................
-.........................................
-.........................................
--- a/examples/_udp.orca
+++ /dev/null
@@ -1,13 +1,0 @@
-.........................................
-.#.UDP.#.................................
-.........................................
-.........................................
-.........Cf..............Cf..............
-........Fe0.............Fe2..............
-.......B.H.............B.H...............
-........xS..............xS...............
-.........................................
-.........................................
-.......5;HELLO.........4;ORCA............
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/add.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.ADD.#.................................
-.........................................
-.#.CHANGE.VALUES.#.aV3.bV4...............
-.........................................
-.........................................
-.........................................
-..............Va.Vb......................
-..............3Y34.......................
-................JJ.......................
-...............A34.......................
-...............7.........................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/bang.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.BANG.#................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-..............8D.H.......................
-................xE.......................
-..................E.....0................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/_midi.orca
@@ -1,0 +1,18 @@
+..........................................
+.#.MIDI.#.................................
+..........................................
+...wC4....................................
+.gD204TCAFE..################.............
+...:02C.g....#..............#.............
+.............#..Channel..1..#.............
+...8C4.......#..Octave.234..#.............
+.4D234TCAFE..#..Notes.CAFE..#.............
+...:13E.4....#..............#.............
+.............################.............
+...4C4....................................
+.1D424TCAFE...............................
+...%24F.2.................................
+..........................................
+..........................................
+..........................................
+..........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/_osc.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.OSC.#.................................
+.........................................
+.#.VALUES.#..............................
+.........................................
+.D8......................................
+..=a123..................................
+.........................................
+.#.EMPTY.#...............................
+.........................................
+.D6......................................
+..=b.....................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/_udp.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.UDP.#.................................
+.........................................
+.........................................
+....Cf......Cf...........................
+..0F6.....2F6............................
+..B.H.....B.H............................
+...xS......xS............................
+.........................................
+.........................................
+..5;HELLO.4;ORCA.........................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/a.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.ADD.#.................................
+.........................................
+.#.ADD.TWO.NUMBERS.TOGETHER.#............
+.........................................
+.1A2.....................................
+..3......................................
+.........................................
+.#.ADD.THREE.NUMBERS.TOGETHER.#..........
+.........................................
+.1A2A3...................................
+..3A5....................................
+...8.....................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/b.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.BOUNCE.....#..........................
+.........................................
+................#.OUTPUTS.DIFFERENCE.#...
+..Cg............#.OF.INPUTS..........#...
+..5B8....................................
+...3.X*............5B3...aB4...7B3.......
+........*...........2.....6.....4........
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/c.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.CLOCK.#...............................
+.........................................
+.#.COUNT.TO.8.#..........................
+.........................................
+..C8.....................................
+..5......................................
+.........................................
+.#.COUNT.TO.8.SLOWLY.#...................
+.........................................
+.2C8.....................................
+..2......................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/d.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.DELAY.#...............................
+.........................................
+Cg.D3...............Cg.D4................
+b.X*................b.X..................
+.#..*..*..*..**..*.#.#*...*...*...*...#..
+Cg2D3...............Cg2D4................
+b.X.................b.X..................
+.#..*.....*...*....#.#*.......*.......#..
+Cg3D3...............Cg3D4................
+b.X.................b.X..................
+.#........*......*.#.#........*...*...#..
+Cg4D3...............Cg4D4................
+b.X.................b.X..................
+.#........*...*....#.#*...............#..
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/f.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.IF.#..................................
+.........................................
+.#.COMPARE.2.VALUES.#....................
+.........................................
+.aFb.aFa.1F0.1F1.........................
+......*.......*..........................
+.........................................
+.#.INVERT.BANGS.#........................
+.........................................
+.....D4..................................
+......F..................................
+......*..................................
+.........................................
+.........................................
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/g.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.GENERATOR.#...........................
+.........................................
+...C.3C2.................................
+...68P0..................................
+.....00011101............................
+..C..JJJJJJJJ............................
+.168G00011101............................
+.....01000111............................
+.....00000111............................
+.....00000111............................
+.....00010111............................
+.....00011111............................
+.....00011111............................
+.....00011101............................
+.....11000111............................
+.........................................
--- /dev/null
+++ b/examples/basics/h.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.HALT.#................................
+.........................................
+.........................................
+..............gC2.....8C2.....4C2........
+.2D............0F0.....1F0.....0F0.......
+...H............*...............*........
+..xE............h.......h.......h........
+..........E..............E...........E...
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/i.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.INCREMENT.#...........................
+.........................................
+.#.INCREMENT.TO.16.#.....................
+.........................................
+.1Ig.....................................
+..0......................................
+.........................................
+.#.DECREMENT.TO.16.WITH.CAPITALS.#.......
+.........................................
+.fIG.....................................
+..0gT....................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/j.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.JUMPER.#..............................
+.........................................
+.2bO2bO2bO2bO2bO2bO2bO2bO2bO2bO2bO..D....
+............*.......................*....
+...J..J..J..J..J..J..J..J..J..J..J..J....
+............*.......................*....
+...J..J..J..J..J..J..J..J..J..J..J..J....
+............*.......................*....
+...J..J..J..J..J..J..J..J..J..J..J..J....
+............*.......................*....
+...J..J..J..J..J..J..J..J..J..J..J..J....
+............*.......................*....
+...J..J..J..J..J..J..J..J..J..J..J..J....
+............*.......................*....
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/k.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.KONKAT.#..............................
+.........................................
+.#.ASSIGN.VARIABLES.#....................
+.........................................
+.aV1.bV2.cV3.dV4.eV5.fV5.................
+.........................................
+.........................................
+.#.COMBINE.THEM.TOGETHER.#...............
+.........................................
+.7Kabc.def...............................
+...123.455...............................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/l.orca
@@ -1,0 +1,9 @@
+.........................
+.#.LESS...#..............
+.........................
+...5L3...aL4...7L3.......
+....3.....4.....3........
+.........................
+.........................
+.........................
+.........................
--- /dev/null
+++ b/examples/basics/u.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.UCLID.#...............................
+.........................................
+.Cg.U8..............Cg5U8................
+.4.X................4.X*.................
+..#*.......*.......#.#*.*.**.**.*.**.*#..
+.Cg.U8..............Cg6U8................
+.4.X................4.X*.................
+..#*.......*.......#.#*.***.***.***.**#..
+.Cg.U8..............Cg7U8................
+.4.X................4.X*.................
+..#*.......*.......#.#*.*******.******#..
+.Cg.U8..............Cg8U8................
+.4.X................4.X*.................
+..#*.......*.......#.#****************#..
+.........................................
+.........................................
--- /dev/null
+++ b/examples/basics/v.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.VARIABLE.#............................
+.........................................
+.#.WRITE.A.VARIABLE.#....................
+.........................................
+.aV3.....................................
+.........................................
+.........................................
+.#.READ.A.VARIABLE.#.....................
+.........................................
+..Va.....................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/basics/z.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.LERP.#................................
+.........................................
+...R8....R5........D....D................
+.xV7...yV0...............................
+...................vx...vy...............
+..................Z5...Z1................
+................xV5..yV1.................
+...2Kxy..................................
+.....51X.................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
--- a/examples/benchmark.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.BENCHMARK.#...........................
-.........................................
-....................Vb...Vb..............
-.4C4......C4........0....0...............
-..34T02S..24T02S..VaJ..VaJ...............
-..aV......bV2......C0...D0...............
-...................0....*................
-.........................................
-.Va.Vb.Va.Vb.Va.Vb.Va.Vb.Va.Vb...........
-..Y.0...Y.0...Y.0...Y.0...Y.0............
-...JJ....JJ....JJ....JJ....JJ............
-..A.0...F.0...I.0...M.0...R.0............
-..0...........0.....0.....0..............
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/cardinals.orca
@@ -1,0 +1,18 @@
+..........................................
+.#.CLOCKWISE.#...#.COUNTER.#..............
+..........................................
+...2D4.....D4......2D4....D4..............
+.32X.............32X......................
+.......H...............H..................
+.......E...H...........S..................
+.......j...S...........j..................
+...........j................0.............
+..........................................
+..........................H...............
+...........S..........H...Ny..............
+............H.........Ey..E.0.............
+...........xW.............................
+.......0..................................
+..........................................
+..........................................
+..........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/families.orca
@@ -1,0 +1,25 @@
+.................................................
+.#.READING.OUTPUT.#....#.READERS.#...............
+.................................................
+...I....Z....H....F......O....G....T.............
+...4....0.........*..............................
+.................................................
+.#.CLOCKS.#............#.WRITERS..#..............
+.................................................
+...D....U....C....R......X....Q....P.............
+.............7....g..............................
+.................................................
+.#.MATHS.#.............#.VARIABLES.#.............
+.................................................
+...A....B....L....M......V....K..................
+...0....0.........0..............................
+.................................................
+.#.JUMPERS.#...........#.CARDINAL.#..............
+.................................................
+...J....Y..............#.NESW.#..................
+.................................................
+.................................................
+.................................................
+.................................................
+.................................................
+.................................................
--- /dev/null
+++ b/examples/benchmarks/io.orca
@@ -1,0 +1,20 @@
+.............................................
+.#.TEST.IO.#.................................
+.............................................
+.C9..........2C9...........3C9...............
+.29T01aAgGZz..59T01aAgGZz...39T01aAgGZz......
+.aVa..........bVG...........cVA..............
+.............................................
+.#.TEST.#....................................
+.............................................
+.#.MIDI..#..#.CC..#..#.UDP.#..#.OSC.#........
+.............................................
+.H.3Kabc....H.3Kabc..H.3Kabc..H.3Kabc........
+.*Y*:aGA....*Y*!aGA..*Y*;aGA..*Y*=aGA........
+.............................................
+............H.3Kabc..........................
+............*Y*?aGA..........................
+.............................................
+............H....4Kabca......................
+............*Y*$pg:aGAa......................
+.............................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/logic.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.BENCHMARK.#...........................
+.........................................
+.8C8.............C8......................
+..78T012AGag.....68T012AGag..............
+..aV.............bVg.....................
+.........................................
+.3Ka.b.3Ka.b.3Ka.b.3Ka.b.3Ka.b.3Ka.b.....
+....Ag....Bg....Cg....Rg....Mg....Vg.....
+....g.....e.....e.....5.....0............
+.........................................
+.3Ka.b.3Ka.b.3Ka.b.3Ka.b.......3K..a.....
+....Ig....Dg....Fg....Lg..........V......
+....5.................*..................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/notes.orca
@@ -1,0 +1,20 @@
+.........................................................
+.2Cq.....................................................
+..dqTAaBbCcDdEeFfGgHhIiJjKkLlMm..........................
+..0Vg....................................................
+.........................................................
+.2Cq.....................................................
+..dqTNnOoPpQqRrSsTtUuVvWwXxYyZz..........................
+..1Vt....................................................
+.........................................................
+.2Cq.....................................................
+..dqTABCDEFGHIJKLMNOPQRSTUVWXYZ..........................
+..2VN....................................................
+.........................................................
+.2Cq.....................................................
+..dqTabcdefghijklmnopqrstuvwxyz..........................
+..3Vn....................................................
+.........................................................
+..D2..V2.................................................
+...:01N..................................................
+.........................................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/rw.orca
@@ -1,0 +1,17 @@
+..................................2C4.....
+.#.READ.#........................2M1......
+................................lV2.......
+.C8...........Cg...........Vl.............
+.30O01234567..b8T01234567..202Q01234567...
+...3............3............23...........
+..........................................
+.#.WRITE.#................................
+..........................................
+.C8.C8........Cg.C8........Vl.............
+.30X3.........b8P3.........202G01.........
+...01234567.....01234567......0101.101....
+..........................................
+..........................................
+..........................................
+..........................................
+..........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/benchmarks/tables.orca
@@ -1,0 +1,25 @@
+.................................................................................
+...Cf..fCf.......................................................................
+.xV9..yV5........................................................................
+.................................................................................
+...3Kx.y..............3Kx.y..............3Kx.y..............3Kx.y................
+.2Kxy9M5............2Kxy9L5............2Kxy9B5............2Kxy9A5................
+...95X9...............95X5...............95X4...............95Xe.................
+.....000000000000000....000000000000000....0123456789abcde....0123456789abcde....
+.....0123456789abcde....011111111111111....10123456789abcd....123456789abcdef....
+.....02468acegikmoqs....012222222222222....210123456789abc....23456789abcdefg....
+.....0369cfilorux036....012333333333333....3210123456789ab....3456789abcdefgh....
+.....048cgkosw048cgk....012344444444444....43210123456789a....456789abcdefghi....
+.....05afkpuz49ejoty....012345555555555....543210123456789....56789abcdefghij....
+.....06ciou06ciou06c....012345666666666....654321012345678....6789abcdefghijk....
+.....07elsz6dkry5cjq....012345677777777....765432101234567....789abcdefghijkl....
+.....08gow4cks08gow4....012345678888888....876543210123456....89abcdefghijklm....
+.....09ir09ir09ir09i....012345678999999....987654321012345....9abcdefghijklmn....
+.....0aku4eoy8is2cmw....0123456789aaaaa....a98765432101234....abcdefghijklmno....
+.....0bmx8ju5gr2doza....0123456789abbbb....ba9876543210123....bcdefghijklmnop....
+.....0co0co0co0co0co....0123456789abccc....cba987654321012....cdefghijklmnopq....
+.....0dq3gt6jw9mzcp2....0123456789abcdd....dcba98765432101....defghijklmnopqr....
+.....0es6kycq4iwao2g....0123456789abcde....edcba9876543210....efghijklmnopqrs....
+.................................................................................
+.................................................................................
+.................................................................................
\ No newline at end of file
--- a/examples/boolean.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-..#.BOOLEAN.#............................
-.........................................
-..#.OR.#.............#.AND.#..#.XOR.#....
-.........................................
-..A11..................6C2.......R01.....
-..23T011..............1X1......1X1.......
-....1..................4C2......4C2......
-......................A10......A10.......
-......................13T001...13T010....
-..#.NOT.#..#.OR.#.......0......F11.......
-...............................*.........
-..4C2.........R01........................
-...02T10....A01..........................
-.....1......13T100.......................
-..............0..........................
-.........................................
\ No newline at end of file
--- a/examples/cycle.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.CYCLE.#...............................
-.........................................
-.........................................
-.........................................
-......................U..................
-...............U.........................
-................N........................
-.........................................
-.........................................
-.......................U.................
-................U........................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/delay.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.DELAY.#...............................
-.........................................
-.........................................
-.........................................
-.........................................
-........C4.....4C4.....4C4.....4C8.......
-........1.......1.......1.......5........
-.........................................
-.........................................
-........D2......D4.....4D4.....4D8.......
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/dotgrid.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.DOTGRID.#.............................
-.........................................
-.#.CLEAR.#...#.LINE.#..#.DRAW.#..........
-.........................................
-..D2........D4...........................
-.............Y...........................
-.6;1........J6;1ca4ga....................
-.............Y...........................
-............J6;1cgaag....................
-.............Y...........................
-............J6;1cag4a...D2...............
-.............Y...........................
-.............6;1c4aa4..6;1*0055..........
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/filter.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.FILTER.#..............................
-.........................................
-.........................................
-.........................................
-.........................................
-.......................3D................
-..............8D.H.......................
-................xE......u................
-.......................E.......E.......E.
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/if+else.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.IF.ELSE.#.............................
-.........................................
-.........................................
-.........................................
-.........................................
-.................4C42C8..................
-..................1Y12...................
-....................JJ...................
-...................F12...................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/arpeggio.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.ARPEGGIO.#............................
+.........................................
+.gC4......4C4............................
+..14T1324..14TCDEF.......................
+..aV3......bVD...........................
+.........................................
+.#.NOTE.STEP.#...........................
+.........................................
+..04O.D4.................................
+.31XG....................................
+..Va..vb.................................
+.H3Y3AG..................................
+.*:02J...................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/bang.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.BANG.#................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+..............2D.H.......................
+................xE.......................
+.....................E..#.BANG.#.........
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/chord.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.CHORD.#...............................
+.........................................
+......8C8................................
+..2D4..68TCEGACEFB.......................
+.bV....2VF...............................
+.........................................
+.#.DISTANCE.#............................
+.........................................
+.3V2.4V4.5V6.6V8.........................
+.........................................
+.#.PLAY.HAND.#...........................
+.........................................
+..3K2.3...3K2.4...3K2.5...3K2.6..........
+.Vb.FA2..Vb.FA4..Vb.FA6..Vb.FA8..........
+..:03H88..:03J88..:03L88..:03N88.........
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/chromatic.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.CHROMATIC.#...........................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+..4Cc....................................
+.D46cTCcDdEFfGgAaB.......................
+.*:03f84.................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/colors.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.COLORS.#..............................
+.........................................
+...Bg.2Bg.4Bg............................
+.rV2.gV1.cVf.............................
+.........................................
+.C3......................................
+.23T048..................................
+...8.....................................
+...J.3Krgb...............................
+.D18.3G213...............................
+.*$co:003;103;213........................
+.........................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/echoes.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.ECHOES.#..............................
+.........................................
+.22O.....................................
+.aV.22O..................................
+.......22O...............................
+..........22O............................
+.............22O.........................
+................22O......................
+...................22O...................
+......................22O................
+.........................22O.............
+............................22O..........
+.................................Va......
+.................................1.......
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/gates.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.LOGIC.GATES.#.........................
+.........................................
+.2C4.......2C4...........................
+..04T.*.*...04T..**......................
+..aV........bV...........................
+.........................................
+...and......xor.....or...................
+.........................................
+..3Ka.b...3Ka.b...Va..Vb.................
+.....L.......F.....F.F...................
+......F0....F*.....*L*...................
+....................0F...................
+.........................................
+.........................................
+.........................................
+.........................................
--- /dev/null
+++ b/examples/misc/if+else.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.IF.ELSE.#.............................
+.........................................
+..4C4..2C4...............................
+.aV1..bV2..cV0.#.ASSIGN.#................
+.........................................
+.3Ka.b...................................
+...1F2...................................
+...............#.IF.#....................
+...cv1...................................
+.........................................
+....Vc...................................
+..0F0..........#.ELSE.#..................
+...*.....................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/kombine.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.KOMBINE.#.............................
+.........................................
+.4C4.#OCTA#.2C4.#NOTE#..1C4.#VELO#.......
+..34T3454....24TCDEF.....04T0123.........
+..oV5........nVD.........vV3.............
+.........................................
+.........................................
+.#.KONKAT.#..............................
+.........................................
+.3Konv...................................
+...5D3...................................
+.........................................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/multiplication.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.MULTIPLICATION.#......................
+.........................................
+.aV4.bV3.................................
+.........................................
+.2Kab....................................
+...43O...................................
+.....c#123456#...........................
+......#2468ac#...........................
+......#369cfi#...........................
+......#48cgko#...........................
+......#5afkpu#...........................
+......#6ciou.#...........................
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/popcorn.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.POPCORN.#.............................
+.........................................
+..2C8.........gC4........................
+.2H38T13579bdf.16T2345...................
+...xV7.........yV3.......................
+.........................................
+..2Kxy...................................
+.D2.732Q.................................
+..Y.:04G.................................
+........#5C4a5C4G4d4G4C..#...............
+........#5C4a5C4G4d4G4C..#...............
+........#5C5D5d5D5d5C5D5C#...............
+........#5D4a5C4a5C4g5C..#...............
+.........................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/recursion.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.RECURSION.#...........................
+.........................................
+.#.BY.1.#.......#.BY.3.#.................
+.........................................
+..03O............03O.....................
+.30XG...........30XV.....................
+....1AG............3AV...................
+.....H..............Y....................
+.........................................
+.#.BY.2.#.......#.BY.4.#.................
+.........................................
+..03O............03O.....................
+.30XU...........30X4.....................
+....2AU............4A4...................
+.....W..............8....................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/timing.orca
@@ -1,0 +1,16 @@
+.........................................
+.#.TIMING.#..............................
+.........................................
+.C8.C2...............C8.D2...............
+.3.X1................3.X*................
+..#10101010#..........#*.*.*.*.#.........
+.C9.C3...............C9.D3...............
+.6.X0................6.X.................
+..#120120120#.........#*..*..*..#........
+.Cc.C4...............Cc.D4...............
+.3.X3................3.X.................
+..#123012301230#......#*...*...*...#.....
+.Cf.C5...............Cf.D5...............
+.0.X0................0.X.................
+..#123401234012340#...#*....*....*....#..
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/tower.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.TOWER.#...............................
+.........................................
+...................C.....................
+..................C1C....................
+.................C0A1C...................
+................C3A1A1C..................
+...............C2A4A2A1C.................
+..............C1A6A6A3A1C................
+..............0A7AcA9A4A1................
+...............7AjAlAdA5.................
+................qA4AyAi..................
+.................uA2Ag...................
+..................wAi....................
+...................e.....................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/udp+loop.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.UDP.LOOP.#............................
+.........................................
+.#.SET.UDP.TO.49160.#....................
+.#.SEND.WRITE.CMD.VIA.UDP.#..............
+.........................................
+.#.TARGET:.#.2...........................
+.........................................
+.D4.4C...................................
+..;w:313;6...............................
+.........................................
+.#.SET.COLOR.#...........................
+.........................................
+.D2....R.g...............................
+.*;c:8f3.................................
+.........................................
+.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/misc/wave.orca
@@ -1,0 +1,17 @@
+.........................................
+.#.WAVE.#...8C6...C5.....................
+...........aV5..bV1......................
+3Ka.b....................................
+..5A1....................................
+...6XE...................................
+....E...........................:04E.....
+................................:04D.....
+..............................E.:04C.....
+....................E....E...E.*:03B.....
+...............E...E....E...E...:03A.....
+.....E....E...E........E...E...*:03G.....
+....E....E...E....E...E........E:03F.....
+........E...E....E...E....E.....:03E.....
+.......E...E....E...............:03D.....
+......E.........................:03C.....
+.........................................
\ No newline at end of file
--- a/examples/octave.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.OCTAVE.#..............................
-.........................................
-.........................................
-.........................................
-.........................................
-.............4Cc.........................
-.............34cTCcDdEFfGgAaB............
-..............aVE........................
-.........................................
-..............D4..Va.....................
-...............:03E......................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/pendulum.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.PENDULUM.#............................
-.........................................
-.........................................
-.........................................
-............U........W.....U.............
-....................J....................
-...................B.H...................
-....................xS...................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/popcorn.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.POPCORN.#.............................
-.........................................
-...C8.........8C4........................
-.2H18T13579bdf.16T2345...................
-...xV1.........yV3.......................
-.........................................
-..Vx.Vy..................................
-..fYf2...................................
-....JJ...................................
-...Hf22Q.................................
-...*:04C.................................
-........#5C4a5C4G4d4G4C..#...............
-........#5C4a5C4G4d4G4C..#...............
-........#5C5D5d5D5d5C5D5C#...............
-........#5D4a5C4a5C4g5C..#...............
-.........................................
\ No newline at end of file
--- a/examples/read+write.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.READ.WRITE.#..........................
-.........................................
-.........................................
-.........................................
-......C4.........C2..........C4..........
-......10O1230...014Q1234.....14T1230.....
-........1.......12345678.......1.........
-.........................................
-.........................................
-......C4.C4......C2..........C4.C4.......
-......10X1......014G1234.....14P1........
-........1230.......1234........1230......
-...................1234..................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- /dev/null
+++ b/examples/setups/knobs.orca
@@ -1,0 +1,17 @@
+.........................................
+.............20eQ..03..00..00..0i........
+...03..00..00..0i..0f..09..36..6i........
+...JJ..JJ..JJ..JJ..44..25..0f..fi........
+.0V032V004V006V0i..ff..09..36..69........
+....J...J...J...J..f4..15..gf..fl........
+..1V3.3V0.5V0.7Vi..ff..09..36..6i........
+.........................................
+.........................................
+.......V0.......V1.......V2.......V3.....
+..D1..Z0...D1..Z3...D1..Z0...D1..Z0......
+..*!010....*!023....*!030....*!040.......
+.........................................
+.......V4.......V5.......V6.......V7.....
+..D1..Z0...D1..Z0...D1..Z0...D1..Zi......
+..*!050....*!060....*!070....*!08i.......
+.........................................
--- /dev/null
+++ b/examples/setups/sequencer.orca
@@ -1,0 +1,25 @@
+..........................................
+.#.SEQUENCER.#....................Cw...Cw.
+................................4Aa..1Aa..
+...............................aVe..bVb...
+..........................................
+.Va.Vb..0.......1.......2.......3.........
+.e1ObxT#..................................
+.2V.1V.#................................#.
+.Va.Vb..0.................................
+.e1ObxT#..................................
+.4V.3V.#................................#.
+.Va.Vb..0.................................
+.e1ObxT#..................................
+.6V.5V.#................................#.
+.Va.Vb..0.................................
+.e1ObxT#..................................
+.8V.7V.#................................#.
+.Va.Vb..0.................................
+.e1ObxT#..................................
+.aV.9V.#................................#.
+..........................................
+.H...V1..H...V3..H...V5..H...V7..H...V9...
+.*:03....*:23....*:43....*:63....*:83.....
+.H...V2..H...V4..H...V6..H...V8..H...Va...
+.*:13....*:33....*:53....*:73....*:a3.....
\ No newline at end of file
--- /dev/null
+++ b/examples/setups/tracker.orca
@@ -1,0 +1,24 @@
+..............................................
+.#.TRACKER.#.......Cg..................Cg.....
+..............Cg.5Ae..............Cg.5Ae......
+.........Cg.4Ae.H.j2Q........Cg.4Ae.H.j2Q.....
+....Cg.3Ae.H.i2Q*:3.....Cg.3Ae.H.i2Q*:7.......
+..2Ae.H.h2Q*:2........2Ae.H.h2Q*:6............
+.H.g2Q*:1............H.g2Q*:5.................
+.*:0..................:4......................
+.....#..#.#3C#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
+.....#..#.#..#.#..#.#..#.#..#.#..#.#..#.#..#..
\ No newline at end of file
--- a/examples/subtraction.orca
+++ /dev/null
@@ -1,16 +1,0 @@
-.........................................
-.#.SUBTRACTION.#.........................
-.........................................
-.13X9.#.A.#..............................
-.01X4.#.B.#..............................
-.........................................
-...4zT0zyxwvutsrqponmlkjihgfedcba98765432
-...A9w...................................
-.rV5.....................................
-............Vr...........................
-.#.RESULT.#.5............................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/variable.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.VARIABLES.#...........................
-.........................................
-.#.WRITE.#...............................
-.........................................
-.aV1.bV2.cV3.............................
-.........................................
-.#.READ.#................................
-.........................................
-..Va..Vb..Vc.............................
-..1...2...3..............................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
-.........................................
\ No newline at end of file
--- a/examples/wave.orca
+++ /dev/null
@@ -1,17 +1,0 @@
-.........................................
-.#.WAVE.#......Va........................
-...............6XE.......................
-.........................................
-.8C8............................:04F.....
-..2..C6.........................:04E.....
-..J..56T123432..................:04D.....
-..2Y2Y23........................:04C.....
-......JJ........................:03B.....
-.....A23........................:03A.....
-...aV5..........................:03G.....
-................................:03F.....
-................................:03E.....
-................................:03D.....
-................................:03C.....
-.........................................
-.........................................
\ No newline at end of file