ABC & MML notation player?

Are there modules that can play ABC and or MML notation files?

If not, maybe somebody …?

EDIT: I’m aware of converters tot midi, but that’s not fun. Just typing a few strings into rack feels better.



What’s more common in use: ABC or MML?
and there’s also Alda GitHub - alda-lang/alda: A music programming language for musicians.

Another question: What’s the simplest music language to use?
e.g. for live sessions in the Rack

Last question: Do you want a VCV module that does something similar to this site?


They are a bit different things. ABC is very well specified and is used in the field of folk music, where MML is more for 8bit game sound. ABC is more elaborate than MML. Fwiw, for both are extensive song libraries available.

I’ve been playing a bit with Macrotune for MML. That’s what made me think of a module. It has four channels and four patterns, but I 've not figured it all out yet. The javascript version looks fine to me, as long as one can also load text files.

Didn’t know about alda. There is also ascii based midi.

MML is probably the fastest to get something going in a live situation.

ABC seems to have a standard while MML seems to be more powerful (MML is based on BASIC, so it should be possible to create loops with variables and so on).

From my perspective, the concept behind Macrotune is ideal for a VCV Rack module. I think it will be quite to transfer some of the JavaScript online editors/players into c++ for a module. Maybe it would be great to support MML and ABC and perhaps even Alda.

Here is an ABC online editor/player:
Here is the code-base for a web-version of Alda GitHub - alda-lang/web-demo: Experimental JavaScript player

Agree on Macrotune. For ABC I played with MC Musiceditor but that feels big and for full fledged compositions with text editor, pdf viewer midiplayer etc.

Macrotune has a bit of a sequencer feel to it even though you have to restart the playing after an edit. For rack it would be ideal if one could live edit and play without restart.

Layout of a module could be quite close to Macrotune. Per channel / text input a knob & cv for attenuation, same for octave. CV out per channel and per pattern. Then maybe a one shot and loop option with switch & cv. Clock input for the whole module or per channel? Clock divider per channel? Maybe only display a single channel and flick through them with a knob.

EDIT: An MML reference

I would say, one single module serves one single channel. It’s easy to add several modules and sync them to a clock module.

And yes, it’s absolute necessary bring able to edit a pattern while playing without the need to restart.

I would also like to use a subset of the Lilypond syntax because I’m more used to it. So I’m going to work on a prototype.


OT for this, looking at Lilypond, I didn’t know it was text based, I saw ‘vocals’. Saw that in ABC too. Could that drive a speech synth?

Looking forward to a text based music module!

Theoretically, yes.

1 Like