Re: mmli: ISO C99 Music Macro Language (as in BASIC's PLAY) interpreter

Skip to first unread message

Ivan Shmakov

Mar 23, 2012, 1:41:20 AM3/23/12
>>>>> Ivan Shmakov <> writes:

> Archive-name: mmli-is
> Submitted-by:
> Last-modified: 2012-03-08 +00:00
> Copyright-Notice: both the README and the code are in the public domain

This code (with a couple of bug fixes) is now also available
from a Gitorious repository [1, 2].

Also, one may want to check the beep package extended to support
MML [3--5].

[2] git://
[5] git://
(master-mmli-2012 branch)


> The ML, MN, and MS (legato, normal, staccato) modes are implemented,
> but mmli_next () (or, rather, interp_ctl ()) fails to handle them
> properly for me.

Fixed as of cb1e3058.

> The "octave tracking" mode is on by default, which is how the FreeBSD
> driver behaves, but (apparently) contrary to how both the historic
> BASIC's and QB64 behave. One may have to prepend the BASIC MML
> strings with an explicit ON to disable this mode. (Use OL to turn it
> on again.)

This was a misunderstanding on my part; the spkr(4) FreeBSD
driver has the "octave tracking mode" disabled by default.

Fixed as of f9455651.


> This interpreter should be added to beep(1),

Done in [4, 5].

> and maybe even sox(1).

It's possible to process the mmlitest output with a simple Shell
script and invoke a sequence of sox(1) "synth" commands. I hope
to post an example shortly.


FSF associate member #7257
Reply all
Reply to author
0 new messages