Language Features
Note: A musical note. 7 octaves are available.
Notelist: A list of notes. Together this list of notes forms a chord. (6 notes maximum).
A Notegroup is a group of notelists (or conceptually an array of notelists). Each notelist is separated by a vertical line.
Beat: A number of beats. A whole number followed by the character 'b'.
Duration: An expression that represents the amount of beats to play or hold for.
Playable: A note or a notelist, followed by a duration.
play: A command to play a note or notelist for a given duration. Play commands can also take a loop customization.
rest: A command to rest for a given duration.
save: A command to save a variable (see above section on variables for more details). Only playabes and durations can be saved in variables.
update: A command for reassigning variables (see above section on variable reassignment for more details). Only playabes and durations can be saved in variables.
lshift: Shift a notelist left a number of semitones.
rshift: Shift a notelist right a number of semitones.
choose: used to choose a number of notes from a notelist. the syntax is: `choose digit from notelist
select: used to select into (or index into) a noteslist or notegroup. the syntax is: `select digit from notelist
randint: used to generate a random integer in some range. the syntax is: randint digit to digit
eval: used to evaluate a mathematical expression. the syntax is: eval somemathematicalexpression
load: A command to load custom instruments into Handel (see above section on custom instruments for more details).
block: Used to declare a loop. (see above section on block loops for more details)
chunk: Used to declare a procedure. (see above section on procedures for more details)
using: Used to prepend a list of paramaters for a chunk.
run: Used to run a chunk asynchronously (creating a new conceptual song track). (see above section on running procedures for more details).
call: Used to run a chunk synchronously (in the current conceptual song track). (see above section on running procedures for more details).
with: Used to customize a given run of a chunk. (see section on procedures above for more details)
bpm: a customization. beats per minute (bpms are best synced with values under 1000) for a run of a chunk.
loop: a customization. amount of times to loop for a run of a chunk (or block loop).
sound: a customization. instrument to use for a run of a chunk.
volume: a customization. percentage volume for a run of a chunk (0 - 100).
reverb: a customization. reverberation duration in miliseconds (>= 1) for a un of a chunk.
pan: a customization. amount to pan the sound of a run of a chunk (0 - 100). Note: 0 = hard-left, 50 = center, 100 = hard-right.
Sounds: possible sounds that can be used to customize a run of a chunk.