Not much is known about the machine, but it seems to be reacting to our presence.
Each letter of the alphabet is an operation, lowercase letters typically operate on bang(*
), uppercase letters operate on each frame. Bangs can be generated by various operations, such as E
colliding with a 0
, see the bang.pico example.
Haste < Function > Input(s)
v
Output
- Haste port values are collected before runtime.
- Inputs are collected at runtime.
- Output is usually where the magic happens.
A
add(a, b): Outputs the sum of inputs.B
banger(val): Bangs if input is1
,N
,S
,W
orE
.C
clock(min, max): Outputs a constant value based on the runtime frame.D
unknown: --E
east: Moves eastward, or bangs.F
if(a, b): Outputs1
if inputs are equal, otherwise0
.G
generator(val): Outputs a value on bang.H
halt: Stops southward fn from operating.I
increment(min, max): Increments southward fn.J
jump(val): Outputs the northward fn.K
kill: Kills southward fn.L
loop('len): Loops a number of eastward fns.M
modulo(val, mod): Outputs the modulo of inputs.N
north: Moves Northward, or bangs.O
offset('x, 'y, val): Reads a distant fn with offset.P
push: Moves away on bang.Q
count('len): Counts the number of fns present eastwardly.R
random(min, max): Outputs a random value.S
south: Moves southward, or bangs.T
track('len, 'key, val): Outputs character at eastward position with offset.U
unknown: --V
beam: Bangs the nearest southward fn on bang.W
west: Moves westward, or bangs.X
teleport('x, 'y, val): Outputs value at offset.Y
type(a, b): Compares the type(num/alpha/special) of inputs, and return1
or0
.Z
unknown: --
.
null: empty*
bang: Bangs!:
midi(channel, octave, note): Sends Midi;
udp('len): Sends a string via UDP to localhost.#
comment: Block Comment
arrowKey
, move.ctrl/cmd+arrowKey
, leap move.shift+arrowKey
, resize cursor.escape
, reset cursor.enter
, toggle insert/write modes.
space
, toggle play/pause modes.<
/>
, change BPM(speed).[
/]
, resize horizontal grid.{
/}
, resize vertical grid.ctrl/cmd + c
, copy block.ctrl/cmd + x
, cut block.ctrl/cmd + v
, paste block.
The midi special function is :000
, it takes up to 4 inputs(channel, octave, note, velocity). For example, :25C
, is a C note, on the 5th octave, through the 3rd MIDI channel, :04c
, is a C# note, on the 4th octave, through the 1st MIDI channel.
Velocity is either from 0-9
(10 steps), or A-Z
(26 steps). For example, :34C8
, is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 112/127(88%), :34CT
, is a C note, on the 4th octave, through the 4th MIDI channel with a velocity of 96/127(75%).
To see it in action, see the midi.pico example.
The UDP special function is 3;MSG
, it has one haste input that gets a string length and locks the eastward ports. It sends the message on bang to the port 49160
. You can use the listener.js to test UDP messages.
To see it in action, see the udp.pico example.
cd desktop
npm install
npm start
- Implement OSC
- Implement U.
- Implement Z.
- This application supports the Ecosystem Theme.
- Support this project through Patreon.
- See the License file for license rights and limitations (MIT).
- Pull Requests are welcome!