2.9 KiB
Orca-Workshop
Installation
Orca
There are many implementations of Orca.
The ones that work for this workshop are:
- JS/electron: https://github.com/hundredrabbits/Orca
- ANSI-C: https://github.com/hundredrabbits/Orca-c
Easy setup
The quickest way to get started on any platform is to just use the 'fancy' electron framework version. I recommend doing that for the workshop, to avoid the "install-party" effect.
- Binary release: https://hundredrabbits.itch.io/orca
Advanced Setup
My favourite setup though, is running the ANSI-C version in Cool-Retro-Term
Orca AND Cool-Retro-Term are available in many package manager, have a look in yours. Maybe you are lucky...
Pilot
Orca cant make any sounds, it can only generate MIDI, OSC or UDP output. Pilot is a 'companion' program (from hundredrabbits as well) that is a fun little synthesizer and is very easy to use with orca over UDP.
- Github/Docs: https://github.com/hundredrabbits/Pilot
- Binary release: https://hundredrabbits.itch.io/pilot
Language Quick Overview
- Esoteric Programming Language
- 'Frame-Oriented' language
- 26 operators
A
-Z
- Uppercase operators execute on every frame
- Lowercase operators execute on a 'Bang'
- Data is just Base36 numbers '0-9' and 'a-z'
- I/O: no I just O. MIDI/OSC/UDP
Tutorials
Tutorial: Bangs and Sounds
1. Bangs
Operators you learn in this chapter:
- 'D' - Delay, bang periodically
2. Sounds
Operators you learn in this chapter:
;
- UDP
for synthesizing the actual waves we are using 'Pilot', a soft-synth which we control with UDP packets. So, the commands we send using the UDP output operator are actually Pilot commands, not orca.
Pilot commands are 3-5 'bytes' long, where the first 3 are required.
The format is: CH
OCT
NOTE
[VOL
] [DECAY
]
Where:
CH
- Channels 1-f exist, they all sound different (and they are monophonic)OCT
- Around 8 octaves should definitely existNOTE
- Note names where Upper-case are white keys and Lower-case are Black-keysVOL
- The Volume 0-z (even though the doc says 0-f, but hey we love clipping dont we?)DECAY
- The 'length' of the note, 0-f (?)
Example:
;13C
- Pilot plays note 'C' of octave 3 (default volume and length)
Putting It All Together
Tutorial: Flying East Scope
1. Arithmetic
Operators you learn in this chapter:
C
- Count (speed / modulo)I
- Increment (increment / max)R
- Random (min / max)A
- Add (operand/operand)B
- Subtract (operand/operand)M
- Multiply (operand/operand)
2. Variables
Operators you learn in this chapter:
V
- Variable r/w single (Write: name / val | Read: - / name)K
- Kontakt read multiple (Read: count / names)
3. Flying East
Operators you learn in this chapter:
X
- WriteE
- East