To Thread - Forum Home

The Mudcat Café TM
20 messages

Tech: Midi, abc and words

28 Apr 13 - 05:47 PM (#3510034)
Subject: Tech: Midi, abc and words
From: Tradsinger

Here are some questions for the music transcriptions geeks out there. This is needed for a particular project:

1. I know that abc can be converted to midi but can someone recommend a good program for it.
2. (Harder, this one) Is there a program that converts midi to abc?
3. Is there a program that converts mus files to abc?
4. Is there a program by which you can write the lyrics under the notes on the stave in abc, at least for verse 1?

Grateful for any replies.


29 Apr 13 - 02:09 AM (#3510123)
Subject: RE: Tech: Midi, abc and words
From: Artful Codger

1. EasyABC is a free, cross-platform suite built on the most universal ABC utilities (abc2midi etc.) However, you can use the online converter at without installing any software at all. There's another online converter at, but it's buggy and waaay behind on updates; I don't recommend it.

2. EasyABC supports import of MIDI files (according to the Import dialog available from the File menu), but I've never used this feature. Generating good scores from MIDIs is so error-prone I find it easier to transcribe most music into ABC by ear. YMMV.

3. I don't know which .mus format you mean—I know Finale likes to use this extension, but so might other programs storing with an entirely different format. Anyway, importing from proprietary .mus formats is unlikely to be supported. But you can generally export scores using the MusicXML format, which might be reasonably compatible with your chosen ABC program. Sadly, MusicXML isn't well standardized, so not everything might be imported, or the import may just fail.

4. You can write the lyrics under the notes manually, using "w:" lines. (That's what I do.) There are a few special characters to learn to get proper alignment (specifically, asterisk, dash, underscore and tilde). This is actually simpler and more efficient to input and edit that the techniques required by other music programs I've seen. The ABC 2.0 standard docs describe how to add lyrics. There's also the "W:" directive for adding more verses after the score, unaligned. (I tend to use the less portable "%%blocktext" directive instead, for formatting reasons.)

Artful Codger

29 Apr 13 - 05:23 AM (#3510155)
Subject: RE: Tech: Midi, abc and words
From: Les in Chorlton

T:The Flash Stockman
DD|G>D B>A G2G>D|E>C G>E D3 D |
w:I'm a Stock-man to me trade and they call me Ug-ly Dave, I'm
w:old and grey and on-ly got one eye. In the
G>D B>A G2G>D|E>C G>E D3 G/2A/2|
w:yard I'm good of course, but just put me on a horse, And I'll
B>B B>G A>A G>F|G6 B2|
w: go where lots of young-'uns would-n't try. I've
c>c c>c c>cz G/G/|B>B B>A A>G zD|
w:led 'em through the gid-gey, ov-er coun-try rough and rid-gey, I've
G>G G>A B>B A>G|A6 DD|
w:lost 'em in the ve-ry worst of scrub. I can
G>D B>A G/2G/2G GD| E>C G>E E w: ride both rough and ea-sy and with a dew drop I'm a dai-sy, And I'm a
B>B B>G A>A G>F|G6|
w:right down bob-by dazz-ler in a pub.
T: Verses
W:Oh just watch me use a whip, I can give the dawdlers gip
W:I can make the flaming echoes roar and ring
W: with the branding iron well, I'm just a perfect flaming swell
W:In fact I'm boss of every blasted thing
W:To see me skin a sheep, it's so pretty you could weep
W:I can act the silver-tail just as if my blood were blue,
W:You can strike me pink or dead, if I stood upon my head,
W:Then I'd be as good as any other two.
W:A notion in my pate says it's luck it isn't fate
W:That I'm so far above the common run;
W:So in anything I do you can cut me fair in two
W:For I'm far too (bloody) good to be in one.

29 Apr 13 - 05:25 AM (#3510157)
Subject: RE: Tech: Midi, abc and words
From: Les in Chorlton

Lower case w - between the staves.
uppercase W - below the staves

29 Apr 13 - 08:53 PM (#3510322)
Subject: RE: Tech: Midi, abc and words
From: JohnInKansas

Although importing from midi to a notation program often looks like someone threw a fistfull of maggots on the pizza, when the midi was made by exporting from a notation program importing the midi back into a different notation program is often pretty clean.

This makes it a reasonably convenient method for getting from one notation program to another, but if you don't have the midi it does require access to both programs - one to make the midi and the other to make the midi into a new score in the format of the other one.

Since lots of programs export/import midi, but don't recognize (m)any other notation formats it's sort of a way to "generalize" conversions from one notation format to another by "passing it through" a midi.

The midi exported from notation will have all the notes "quantized" with the durations in the notation, and in most cases they'll come back into any other program with the same durations as in the original. You may lose "ties" and such, depending a little on how sophisticated the notation program that imports the midi is.

The one thing that won't come back is "repeats." The midi will contain all the notes in the order they're sounded, so if a repeated phrase is played "into the midi" it will come out with the repeated measures tacked onto the end of the first pass.

Generally, the more "mechanical" the midi sounds, the better it will convert back to notation, so "pretty music" doesn't give very pretty results.

Since ABC is about as "mechanical" as notation, a midi made from ABC should import to a notation program to make a fairly decent score in standard notation.

About the only way to really tell what you'll get from a random midi is to "suck it into the program" and look at what happens.


30 Apr 13 - 12:56 AM (#3510356)
Subject: RE: Tech: Midi, abc and words
From: Artful Codger

To elaborate: MIDI reconstitution tends to fail with triplets, fermatas, swung rhythms and ritardandos. Other things that are lost are annotations like composer and lyricist, lyrics, tempo descriptions, precise time signatures, modal key signatures (other than simple major or minor), expressive markings, decorations, proper clefs, key changes...

Generally, MIDI is a poor medium for score exchange except for simple melody lines. Anyway, if you have a score source, it's so much quicker to translate it directly into ABC, with virtually no loss of information. You have to know ABC anyway, in order to clean up and supplement whatever the import process generates.

30 Apr 13 - 02:45 AM (#3510370)
Subject: RE: Tech: Midi, abc and words
From: Tradsinger

Thanks to you all for your help.


30 Apr 13 - 05:53 AM (#3510404)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

My answers to the OP - from my own limited experience:

1. I only know software based on abc2midi, which has its severe limitations, idiosynchrasies and bugs. (EasyABC used abc2midi last time I checked, maybe that has changed?) A possible work-around is to use abc2xml, import the result to MuseScore and export it to MIDI. MelodyAssistant can import ABC and export MIDI for single-voice tunes.

2. midi2abc ditto, but fortunately there are alternatives: EasyABC with its own MIDI import has been mentioned, MidiZyx2abc is another one which I normally prefer due to its extra functionality. All that software has the intrinsic limitations mentioned above.

3. If "mus files" means MelodyAssistant files: the software vendor claims ABC support, but limited to single-voice tunes. I think someone mentioned that the quality is not too good. The software is older than the current ABC standard, if I am correctly informed. (ABC standards seem to be a bit of a tragedy as well, given the fact that so many Mudcatters rely on it. I would appreciate if the experts kept us informed.)

4. To "write the lyrics under the notes on the stave in abc, at least for verse 1" amounts to "WYSIWYG". I do not know of any dedictated ABC software of such ambition, though EasyABC has taken some modest steps in that direction. Fortunately there are many "WYSIWYG" programs around, notably the free MuseScore. You can enter your music there, then export to MusicXML, then use xml2abc to obtain a surprisingly correct ABC represntation. If your favourite "WYSIWYG" software does not export to MusicXML, you are much worse off: you can use the MidiZyx2abc method (as I sometimes do), which can become tedious in complicated cases, but I still find it much easier than typing those w: things by "trial and error".

I have the feeling that ABC support could be better in the future. It goes the rumour in the MuseScore community that it plans to offer direct ABC support to the newest standard.

Note that I am nothing like an ABC virtuoso, and certainly do not know all software. I would welcome any information from the real ABC connoisseurs.

30 Apr 13 - 09:07 AM (#3510420)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

Just to make that clear: the MIDI file standard does support lyrics to some extent, just abc2midi refuses to conform. (This seems to be "not a bug, but a feature" for sake of an obscure karaoke software - who wants that? Can we hope for better-behaved software?)

For some of the real drawbacks of MIDI files mentioned by Artful (30 Apr 13 - 12:56 AM), MidiZyx2abc provides makeshifts, but whenever MusicXML is available, it should be preferred, using the Python tools and These tools work surprisingly well in ordinary cases, including choral lyrics - I tried them myself.

Let me take the opportunity to thank all authors of truly free software, and to encourage them to improve it further. Commercial progammers of high professional quality are also welcome, and so are those who invent good standards. There is still a lot to do.

30 Apr 13 - 02:11 PM (#3510480)
Subject: RE: Tech: Midi, abc and words
From: pavane

My own program HARMONY does 1, 2, and 4 - not MUS though.

Mutliple voices, etc

(Someone point me to the spec for MUS and I could add it)

Aligned lyrics below the notes - no problem, even for several verses
Import from MIDI - yes but see other discussions about the worms!

01 May 13 - 07:30 AM (#3510643)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

Who knows free software that performs better than abc2midi in the discipline of OP 1., for the complete current ABC standard? For example, in Les's tune above (29 Apr 13 - 05:23 AM, typos corrected), the abc2midi version I use interprets the > sign as "swung" triplets...

Could someone who is really up-to-date with ABC software and standardization please give us an overview of the current state of the art? The homepage gives some information including a very long list of software, but does not seem to tell us which products conform to the standard and are safe to use.

Information about commercial software is also welcome, preferably not by the author or vendor.

01 May 13 - 05:45 PM (#3510816)
Subject: RE: Tech: Midi, abc and words
From: Artful Codger

When exporting from ABC utilities (largely irrelevant to the original request), one generally has control over the expressive timing (swungness) of dotted rhythms. If you're exporting to MIDI explicitly for score transfer, you can specify that no swing be applied to dotted rhythms, and when the MIDI is subsequently imported, there should be no misrendering of the dotted rhythms.

I still don't recommend MIDI as a transfer medium, unless you have absolutely no other choice.

To my knowledge, no product to date fully supports the 2.0 ABC standard, particularly in regard to multiple voices and formatting. But at least one can hand-edit the plain-text in order to resolve notational differences between programs. I'd hate to have to do this with any other notation even when hand-editing the raw file is an option (as with MusicXML and Lilypond). This is one of my biggest gripes with XML and the modern trend in web pages to push most of the formatting control into CSS style sheets (generally not editable by end users, nor compatible from one source to another).

02 May 13 - 10:18 AM (#3511002)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

Indeed, Artful, I just found that abc2midi produces the correct dotted rhythms if invoked with the option "-RC"; thanks for the hint. This is not only important for obtaining a MIDI file for further usage (which I never need), but also for the ear control in EasyABC or ABCexplorer. Things are not as easy as claimed, at least not for my laziness. Obviously the authors of abc2midi wanted to serve a particular group of musicians who always "swing" their dotted rhythms, but I think neither the standard nor the above "Stockman" is done justice by that.

To my knowledge, the current ABC standard is at least 2.1, and the good printing software abcm2ps (as included in EasyABC and ABCexplorer) claims to support it (or vice versa?). So does, by which ABC tunes can be transported to Sibelius and Finale - quite an asset! (I bet pavane will claim to comply to all the latest standards as well, or even better.)

02 May 13 - 11:26 AM (#3511031)
Subject: RE: Tech: Midi, abc and words
From: Mick Pearce (MCP)


abcm2ps doesn't comply completely with abc2.1 There's a list of differences on the home site: abcm2ps features. That being said, it does implpement most of the standard. (It's my standard program for printing; for posting tunes here, I mostly write the abc directly in a text editor and print to pdf for checking).

I haven't looked at the 2.1 standard in detail, but I did a lot of work on the draft 2.0 standard a few years ago (implementing a Prolog parser). There were still things I didn't like in 2.0 which I think are still in 2.1 (macro handling especially is primitive and limited in use). Many of the difficulties arise from pushing abc beyond what it does best - single line melodies - into the realm of general score writing (where I think wysiwyg programs are a far saner choice!). I'm not sure offhand if any of the software implements the full 2.1 standard.


02 May 13 - 06:08 PM (#3511122)
Subject: RE: Tech: Midi, abc and words
From: Artful Codger

The 2.1 standard has omitted a number of features that were present in the 2.0 standard, so until they're reconstituted (and the formatting directives now marked "volatile" are revised and fully reimplemented), I'll be sticking with v2.0. Has the 2.1 standard yet been finalized as a revision?

02 May 13 - 06:41 PM (#3511129)
Subject: RE: Tech: Midi, abc and words
From: Mick Pearce (MCP)

2.1 is described as the current standard. It contains sections marked VOLATILE which indicate sections which are under active discussion and/or likely to change in some future version of the standard.. I'd read this as meaning 2.1 is the standard as is, but that as the volatile sections might alter in later versions that may be a good reason to avoid the contents of those sections if possible.

The long absence of Chris Walshaw from taking charge of the standard meant that various people (implementers usually) added to and modified the language without any overall strategy. The 2.0 draft was at least an attempt to rectify that, though it seemed to remain a permanent draft. I subscribed to the mailing list for some time and discussions just seemed to go on and on. With no one really in charge to make a final decision on points that everyone would accept it was probably destined never to get beyond draft status. (It's a lesson from the development of computer languages in general that you really need an agreed standard otherwise developers invariable diverge in their implementations, dropping things they feel are too hard, not necessary or they don't agree with, and adding things that in their opinion would be good to have. It leads to things getting messy for users when they get the the point of needing to exchange programs in different environments). In fairness, Chris Walshaw probably never foresaw such widespread use of abc when he invented it.


03 May 13 - 06:30 AM (#3511250)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

That does not sound too good, Mick. I only learned about ABC on Mudcat, and find it very handy for communicating little tunes here, also of more than one voice. To be honest, I rarely type ABC directly, due to my laziness lack of knowledge, but I generate it by software from WYSIWYG programs (see above). I appreciate being able to post those tunes directly as text, so that readers can quickly get a first impression and decide whether they want to paste the snippet into their ABC software. For the same reasons I have recently takean up the habit to send ABC text by email to my friends, instead of attaching MuicXML files.

For example, there was a Mudcat thread about harmonizing old modal songs, where short ABC illustrations were much more helpful than lengthy explanations.

From the somewhat meagre documentation of abcm2ps I had the impression that it never bothered about the 2.0 specification but is quite committed to 2.1. Maybe the developer, Jean-François Moine, secretly took the lead (- he is from Brittany, that says it all ;-)).

Artful, what features of 2.0 are you missing? And which software implements them, or used to (so you can "stick to" it)?

For my personal current needs, I do not think I need any of the "volatile" features. (As a mere interchange format for scores, MusicXML is the better choice anyway.) Nevertheless, I would appreciate a good ABC standard supported by software for all platforms. Mick, do you think there is still a chance, either led by Chris Walshaw or by Jean-François Moine?

03 May 13 - 01:55 PM (#3511381)
Subject: RE: Tech: Midi, abc and words
From: Mick Pearce (MCP)

Grishka - I'd like to think that if there's a standard posted on Chris Walshaw's site it will lead developers to support it.

I haven't looked at abc programs for a while (a few years ago I had about 26 different progs on my XP machine, all of which I'd looked at!), but I just did a quick look at a bunch of them from the listing on the abcnotation site and it's rare to find a mention on the developers' sites of what version of abc they support. (I think the one exception was a support for abc1.6. And abcm2ps does list its support in detail). It may well be included in the detail manuals, but I don't really want to download everything just to find out what is supported.

I'll try and have a look at some of them this week and see if I can get some idea of the current state of play. I'm running mainly on Ubuntu now (it's extremely rarely that I boot my old XP machine), but I'm about to install a virtual XP machine this weekend (one of the reasons is to support Finale!) so I'll be able to check out the Windows and Linux progs at least. Someone else will have to give a report on the Mac state of play. (I did look at the cross platform list on abcnotation and of the few programs that support all three platforms I don't think any said they supported 2.1 or 2.0). Many of the programs listed are wrappers for abcm2ps and abc2midi. Melody Assistant is a cross-platform shareware wysiwyg editor that can output abc, but it's not clear what version is supported (and I personally hate the user interface - that is one I've looked at in the last year or so). So for now at least I'll be staying with a text editor and abcm2ps (which for many years has probably been the fullest implementation of the abc standards post 1.6).


03 May 13 - 03:11 PM (#3511399)
Subject: RE: Tech: Midi, abc and words
From: GUEST,Grishka

I should have mentioned that I have done some reading myself, essentially with the result you are describing, Mick. MelodyAssistant only supports single-voice tunes, presumably following some standard 1.x - not surprising since the program has not changed for ages. More information may be hoped from those of us who are in the "Inner Circle" of ABC - I presume that these exist, since Chris Walshaw is a folk musician himself.

You mention Finale - did you test and I tried both and found that they support all the features I need, definitely close to ABC 2.1. But, as I wrote, I am not an ABC power user.

03 May 13 - 04:50 PM (#3511426)
Subject: RE: Tech: Midi, abc and words
From: Mick Pearce (MCP)

Grishka - I did download those files a few days ago, but I haven't got round to looking at them. I have used conversions between abc and xml in the past - when I was doing some work on the Yorkshire Garland site music transcriptions I automated the generation of abc from xml using the xml2abc xslt sheet (which I modified a bit from the original I think; I've still got that on my XP machine).

Re the volatile sections of the 2.1 standard, by and large they relate to the interaction of parts and voices (and voice overlay), plus (all) the stylesheet directives (I think the only other thing is the use of $n for font specs within text strings). Neither of these affect me particularly - it's extremely rarely that I need more than one voice, mostly I'm recording tunes of song melodies with it and I'm never setting/printing them in a context that really needs the stylesheet directives.