Music Synthesizer
Syntax:
- 24 semi-tones (2 octaves): c c# d d# e f f# g g# a b h C C# D D# E F F# G G# A B H
- Sharp/flat: c# cb (c sharp and c flat, hb = b)
- Octaves: 0c 1c 2c 3c 4c 5c 6c 7c 8c 9c (0C = 1c, 4a = 440 Hz)
- Octave defaults to same as for previous note (or rest) in same sequence (initially 4)
- Relative duration: c1 c c/2 c c3/8 (whole, whole, half, half, 3/8)
- Relative duration defaults to same as for previous note in same sequence (initially 1/4)
- Absolute duration: c2500*1/4 c (2 quarter notes at 2500 ms per whole note)
- Absolute duration defaults to same as for previous note in same sequence (initially 2000)
- Rests: r1 r r/2 (whole, whole, and half rests)
- Tracks: 1: c d e 2: g a h (track 1 plays c d e while track 2 plays g a h in parallel, default track is 0)
- Tracks: 1: c d 2: g a h 1: e (same as above, except track 1 is defined in 2 parts)
- Instruments: 1(2): c d (track 1 uses instrument 2, default instrument is 0)
- Named sequences: hiho: g a 1: c1 1 hiho d (track 1 uses itself and hiho sequence and becomes: c1 c1 g/4 a/4 d1)
- A reference to a named sequence is replaced by all notes in the sequence at the point of
reference, i.e. not including notes added to the sequence later
- Volume: v0.5 c d v1 c d (notes c and d at half volume, then at full (auto-scaled) volume)
- Comments: /* Multi-line comment */ c d // Single-line comment