-- Definitions for OAK. --{{{ General constants -- The rate that the system runs at. VAL REAL32 SAMPLE.RATE IS 44100.0: -- The size of the sample blocks. VAL INT BLOCK.SIZE IS 64: --}}} --{{{ Basic data types -- Blocks of data. DATA TYPE SIGNAL IS [BLOCK.SIZE]REAL32: --{{{ DATA TYPE BUFFER DATA TYPE BUFFER RECORD INT count: SIGNAL data: : --}}} --}}} --{{{ Constants for sequencing --{{{ Notes VAL INT C IS 0: VAL INT D.B IS 1: VAL INT D IS 2: VAL INT E.B IS 3: VAL INT E IS 4: VAL INT F IS 5: VAL INT G.B IS 6: VAL INT G IS 7: VAL INT A.B IS 8: VAL INT A IS 9: VAL INT B.B IS 10: VAL INT B IS 11: --}}} --{{{ Scales VAL [7]INT MAJOR IS [C, D, E, F, G, A, B]: VAL [7]INT MINOR IS [C, D, E.B, F, G, A.B, B.B]: --}}} --{{{ Note lengths VAL INT HDSQ IS 1: VAL INT DSQ IS 2: VAL INT SQ IS 4: VAL INT Q IS 8: VAL INT CR IS 16: VAL INT M IS 32: VAL INT SB IS 64: --}}} --{{{ Sequencer tempo VAL REAL32 TEMPO IS 130.0: VAL INT SAMPLES.PER.HDSQ IS (INT ROUND ((SAMPLE.RATE * 60.0) / TEMPO)) / Q: --}}} --{{{ Frequencies for note generation VAL REAL32 FREQ.C IS 130.6325: VAL REAL32 FREQ.FACTOR IS 1.05946309434: --}}} --}}} --{{{ Protocols --{{{ PROTOCOL NOTE PROTOCOL NOTE CASE note ; INT ; INT rest ; INT end : --}}} --{{{ PROTOCOL EVENT PROTOCOL EVENT CASE -- note number ; velocity (0 .. 127) note.on ; INT ; INT -- note number note.off ; INT -- pitch (-8192 .. 8192) pitchbend ; INT -- controller ; value -- (for mod wheel, controller is 1, value is 0 .. 10) controller ; INT ; INT : --}}} --}}}