Orca-Workshop/README.md
2023-04-07 21:45:59 +02:00

2.9 KiB

Orca-Workshop

Installation

Orca

There are many implementations of Orca.
The ones that work for this workshop are:

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.

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.

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 exist
  • NOTE - Note names where Upper-case are white keys and Lower-case are Black-keys
  • VOL - 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 - Write
  • E - East

Putting It All Together