19b8e42 May 6, 2019
2 contributors

### Users who have contributed to this file

209 lines (142 sloc) 3.78 KB

# Workshop

This workshop is designed to go over the most commonly used patterns in composition with Orca. If you are using Pilot as a sound source, remember to use the UDP operator `;` instead of the MIDI operator `:`.

We recommend to distribute a printed copy of the list of operators, so students can do their own experiments.

• Part 1: Basics `D`, `R`, `T`, `C`
• Part 2: Logic `I`, `A`, `F`, `B`
• Part 3: Projectors `E`, `H`, `X`, `O`,
• Part 4: Variables `V`, `K`, `J`, `Y`

## Basics

This section will teach the basics of playing a note and a sequence of notes.

### Send a midi note

• `D8`, will send a bang, every 8th frame.
• `:03C`, will send the `C` note, on the 3rd octave, to send `C#`, use the lowercase `c3`.
``````D8...
.:03C
``````

### Play a random note

• `aRG`, will output a random value between `A` & `G`, the rightside uppercase letter indicates an uppercase output.
``````D8.aRG.
.:03D..
``````

### Make a melody

• `04TCAFE`, will create a track of 4 notes, and output its first value.
``````D814TCAFE
.:03A....
``````

### Play the melody

• `8C4`, will count from `0` to `3`, at 1/8th speed.
``````.8C4.....
D804TCAFE
.:03C....
``````

## Logic

This section will teach the basics of automating logic decisions and changing the values of operators dynamically.

### Play every second note

• `2I6`, will increment to `6` at a rate of `2`.
``````.2I6.......
D846TCAFEDG
.:03D......
``````

### Play a note with an offset

• `1AC`, will add `1` to `C`, to output `D`. To get `D#`, use the lowercase `d`, like `1Ac`.
``````D8.1AC.
.:03D..
``````

### Play a sequence back and forth

• `2B8`, will count from `0` to `7`, and back down to `0`, at half speed.
• `5AC`, will increment the value so the sequence starts at the note `C`.
``````..2B8..
D2.5AC.
.:03H..
``````

### Play a note at a specific interval

• `.I4`, will increment to `4`, at a rate of `1`.
• `.F2`, will bang only if leftside input is equal to `2`.
``````I4.....
3F2.1AC
..:03D.
``````

## Projectors

This section will teach the basics of creating new operators procedurally.

### Send a bang

• `E`, will travel further eastward, every frame.

### Halt a moving operator

• `H`, will stop a `E` from moving.
``````..H
E..
``````

### Read an operator at position

• `22O`, will get the operator `E` at the offset `2,2`.
``````22O...
..E..H
.....E
``````

### Write an operator at position

• `22X`, will output the operator `E` at the offset `2,2`.
``````22XE.
.....
.....
....E
``````

### Animate a projector

• `B8`, will bounce between `0` and `8`.
``````B4..........
1XE.........
........:03C
........:03D
........:03E
........:03F
``````

## Variables

This section will teach the basics of storing accessing and combining that stored data.

### Write a variable

• `aV5`, will store `5` in the variable `a`.
``````aV5
``````

• `Va`, will output the value of the variable `a`. Notice how variables always have to be written above where they are read.
``````.....Va
.......
aV5..Va
.....5.
.......
aV6..Va
.....6.
``````

• `3Kion`, will output the values of `i`, `o` & `n`, side-by-side.
``````iV0.oV3.nVC
...........
3Kion......
.:03C......
``````

### Carry a value horizontally and vertically

• `Y`, will output the west input, eastward.
• `J`, will output the north input, southward.
``````3..
J..
3Y3
``````

### Carry a bang

• This method will allow you to bring bangs into tight spots.
``````D43Ka...
.Y.:03C...
``````

I hope this workshop has been enlightening, if you have questions or suggestions, please visit the forum, or the chatroom. Enjoy!

You can’t perform that action at this time.