- 
                Notifications
    
You must be signed in to change notification settings  - Fork 55
 
Music Macro Language
        HASUMI Hitoshi edited this page Aug 31, 2022 
        ·
        4 revisions
      
    | Feature | Version | 
|---|---|
| Music Macro Language | 0.9.18+ | 
MML (Music Macro Language) is a DSL to describe music. PRK supports an MSX-like MML.
See also Sounder.
All instructions are case insensitive.
| Instruction | Effect | Values | Example | 
|---|---|---|---|
| T<tempo> | Specifies tempo of the song | tempo: 1 to any(default: 120) | 
T200, T60
 | 
| O<octave> | Specifies octave of the notes after this instruction. Each octave starts from C and ends at B
 | 
octave: 0 to 9(default: 4) | 
O5, O8
 | 
| L<fraction>[<dot>] | Specifies the length of the notes after this instruction | fraction: 1 to anydot: . (multiple dots allowed)
 | 
L2., L16
 | 
| A to G[<semitone>][<fraction>][<dot>] | Specifies a note from the scale, optionally with a semitone and/or fraction and/or dot(s) | 
C D E F G A Bsemitone: + -fraction: 1 to anydot: . (multiple dots allowed)
 | 
C+8.. | 
| R[<fraction>][<dot>] | Specifies a rest | fraction: 1 to anydot: . (multiple dots allowed)
 | 
R, R1.
 | 
| < | Increases one octave after this instruction | 
O4 A < A is equivalent to O4 A O5 A
 | 
|
| > | Decreases one octave after this instruction | 
O4 A > A is equivalent to O4 A O3 A
 | 
|
| Q<sustain> | Specifies the ratio of the actual sounding length of the note length derived from the <fraction> value. Formula: <sustain> / 8
 | 
sustain: 1 to 8(default: 8) | 
Q4 A4 A4 is equivalent to Q8 A8 R8 A8 A8Q8 A4 A4 is equivalent to Q8 A2
 | 
| Operand | Effect | Default | Example | 
|---|---|---|---|
| <fraction> | Represents a fraction of a whole note to specify the length of a note or a rest. For example, 4 is a quarter note | 
4 | 
L8, C1, R3
 | 
| <semitone> | Optionally raises or lowers by a semitone the note just before it | 
C-, A+
 | 
|
| <dot> | Optionally adds a half of the length to the note or rest just before it. Multiple periods are also valid | 
L2., C.., R8.
 | 
- Getting started
 - Keyboard features
- Keycodes (ja)
 - Mouse (ja)
 - Layers and mode key (ja)
 - Debounce
 - Composite key
 - Split-type keyboard
 - Keyscan matrix
 - Num Lock, Caps Lock and Scroll Lock
 - Useful methods that make you free
 - BIOS mode
 
 - Other features
 - Examples
 - Development
 - Contribute to the Wiki
 - FAQ