zzo38 wrote:One suggestion of thing to add could be the octave mode that < and > makes the octave permanent while ' and , makes the octave temporary (a few MML compilers support this).
Which compilers, so I can plunder their manuals the way I did the ppMCK guide? Do they allow one of <
and one of ,
on the same note?
The only ones I know are AmigaMML
and my own improved version of ppMCK (there may be others, but I do not know of any), and yes they do allow both on the same note. (Actually, it doesn't use ,
for this purpose, but if implementing it in Pently, ,
is already used to specify octave so it might as well to still do.)
Here is a copy of the relevant parts of the AmigaMML documentation that have to do with octaves (so that you need not download it if you do not want to):
c d e f g a b = Play notes by letters. You can include + (sharp) - (flat) ' (high octave) _ (low octave) after each note, to change them by one or twelve semitones each; using multiple symbols (even multiple same ones, such as double-sharp) is possible. After that, you can include a number to override the note length, and then you can include dots to increase the note length.
o = Set octave. For Amiga mode, range is 0 to 4 (default is 2), although the actual Amiga limit is octave 1 to 3 and some programs might not work with numbers outside of such limit. For Extended mode, the range is 0 to 7 (default is 4).
< > = Make low octave/high octave.
command here is one that all MML compilers I have seen implement (although the description above is for Amiga; the range may differ for NES/Famicom). Pently does not seem to have this, but it probably should be added, which then sets what is considered as "previous note" without actually adding a note. AmigaMML uses _
as the low octave suffix, but Pently uses ,
instead, which should still be OK; Pently is already difference from MML anyways, so it need not be the same way exactly. Also, maybe this documentation is unclear, but I wrote AmigaMML, so I know that <>
is permanent while '
zzo38 wrote:Also, I do not see any description of the mmloctaves command in the documentation.
That's because the feature controlled by mmloctaves
is not yet implemented. I reserved that keyword a release in advance, intending to use it for LilyPond-style chorded notation
for arpeggios, where <a c e>4
means the same as the chordmode