[This article is a stub. You can help by filling it out.]
The general syntax is that parameters come before the notes and drums they modify.
All characters not listed below are silently ignored (like comments).
|Symbol||Denotes||Length in Ticks|
The octave and length parameters are reset each line. The default note length is 1 (32nd note), and the default octave is 3 (ranges from 1 to 6 inclusively).
Note that the lengths are measured in PIT ticks, not cycles! The PIT ticks at approximately 18.2 Hz, meaning that a 32nd note lasts approximately 55 milliseconds.
The triplet and time-and-a-half modifiers need to be placed somewhere after the length parameters they are modifying (eg w3 or h.). These modifiers also stack (eg. w.3 produces a 16-tick-long note length, equivalent to h).
Notes and Rests
- X - Rest
- CDEFGAB - Piano notes, can be followed by:
- # - Sharp
- ! - Flat
|3||N/A -- Denotes Triplet|
Drums are hardcoded percussion effects, created by rapidly changing the frequency emitted by the PC Speaker. They last for approximately 14 milliseconds each, with the exception of the 1-millisecond tick.
[TODO: Put a simple thing here and explain it character by character.]
- When a scroll uses
#playit does not suppress the default scroll sound effect. Rather, the sound is appended to the end of the sound effect.
- The triplet and time-and-a-half parameters use integer floor division. If the result of the division is 0 (with either t3 or s3), then the length value will underflow, causing ZZT to play a 256-tick-long note - which is also the maximum possible length of a single note.
- Drums are timed using Turbo Pascal's built-in Delay() function. As it was designed for the late 1980s state of the art in computer technology, the frequencies will alternate far too quickly on more modern hardware.
- The above also means that, on slower hardware, a drum playback actually stalls engine execution for the duration of its sound!
- Sound effects - ZZT's built-in sound effects, expressed in #play statements.
- Duration Table - A programmatically generated list of possible note durations in ZZT-OOP