Tuesday, December 23, 2014

Midi versus ABC. A challenge. By the Fool.

I had an interesting conversation with Lifimun (I think that is the name), a member of Les Beaux Chapeaux. It was during today's LBC concert, which was crap timing, but hey, all I did was disconnect him.

Anyway, the conversation was about methods of making ABC files. I liked one of their arrangements so I sent him a tell asking about it, and he was kind enough to respond. Basically, it was similar to many discussions I've had with Beorbrand over the years.

When making ABC files, is it better to work from midi or to do it by hand?

 According to Lifimun, were he ever to compose for Lotro he would compose in midi first and then translate to ABC. Of course, it's much easier to compose in midi than in ABC. To compose in raw ABC you sit in front of a blank sheet of paper, trying to put the notes together in your head, and then converting them to ABC on the fly. Takes a lot of trial and error. Midi is much nicer. You can compose in real music notation, or use that nifty Logic Pro colour bar method, choose cool instruments, and hey presto, it's done in a flash. Much, much quicker, much easier.

Except, does it work so well after you've converted it? Well, listen for yourselves.

Here's a set of sample versions of the Beorn jiggareel that I wrote for a recent BBB video. The arrangements are not identical, but the gist should be clear.

1. Sample 1. Composed in Logic Pro and bounced straight to mp3. Here's the midi.
2. Sample 2. Composed in Logic Pro, bounced to midi, imported into Maestro, converted to ABC, converted to mp3. (I spent very little time in Maestro, so there are many things not good about this conversion, most of which are not relevant here.) Here's the ABC.
3. Sample 3.  Done by hand directly in ABC, with no midi conversion, and no use of Logic Pro. Here's the ABC.

The jiggareel has a bit of a tricky rhythm, so it's a difficult test for Maestro. The second part of the tune is a 4 across 6 pattern, as the tune is playing a reel while the rhythmic backing is playing a jig. So the Midi to Maestro to ABC (Sample 2) gets the rhythm right for the first half, but the second half is very lumpy and uneven. The converter is struggling to get the rhythms matched. The timing in the direct ABC coding (Sample 3) is much better because I could code it in exactly by hand (although the attack of the flute doesn't match that of the bagpipe, so that sounds pretty bad in spots).

Of course, the bounce from Logic Pro is by far the best, but you'd expect that. If that wasn't the case you'd have to wonder why the hell you got Logic Pro at all.

Conclusion? Make up your own minds I guess. Personally, I think the hand-coded ABC sounds better, but I pay a price in time. Your mileage may vary, as always.

Would it be easier to use a midi/ABC converter, and then work on the ABC by hand? Possibly. But that sounds like an awfully fiddly job, especially given the format of the ABC that Maestro puts out. Very difficult to work with directly.

But maybe somebody can prove me wrong, and demonstrate that Maestro (in the hands of an expert, not a novice like me) can give a sound as good as the hand-coded ABC. I would love this. It would save me a whole lot of time.

Consider it a challenge.


  1. Have you seen the light at last? No, actually, I think you're right about coding by hand. It will sound better, but you'd better get it right the first time and it is a hefty time commitment. Particularly for pieces like yours with tricksy time flops and swing/straight rhythms and what not, the converter will struggle and ultimately fail. Write a simple piece that stays the same throughout, however, and the converter wouldn't do a half bad job, I bet. - BB, Most Degenerate

  2. Well, I agree that writing directly in abc gives the best results, especially in your hands. But I'm too dumb and impatient to do that so I do the work in the midi. Of course, not all midis give good results for a Lotro abc!

    But your test is not complete as you only use Maestro. Most of my transcriptions have been using Firefern. I would also point you to Bruzo's encoder - not easy to use but gives very clean results.

  3. Thanks for those ideas, Keli. I'll try those converters also, see how it goes.

  4. I'd agree, if you have the time and skills, directly working in abc produces the best results, but as Keli mentioned, it takes a lot of time. Tempo changes and different signatures track-to-track play havoc with the automated tools, as do the subtleties of the pitch wheel, and note velocity versus volume envelopes, all of which are much better catered for by hand.

    Firefern, maestro and brute all have their pros and cons, but I think in many cases it comes down to the quality of the midi sources. I'm lucky and having a couple of sound engineers/musicians from my first marriage who occasionally pass me original sources. The difference using those rather than things people have arranged in sequencers is stunning. All too often the transcription tools don't cope well with in-track patch changes that sequencer arrangers typically use; so one thing I try to tell people starting out is to avoid anything with patch changes in-track, or to take the time to split them out into other tracks before exporting (easy in Sonar, trickier in things like Anvil).

    Although it would bloat the abc output, I'd love to see the tools better handle including bar and other markers in the abc comment, which would make it easier to go in and hand craft those tricky dynamic elements.


    1. Woops, forgot to answer this before. Sorry Serbryt. I'm not very familiar with midi details and other sound engineer kind of stuff, so I don't really understand how one miidi can be better than another, if they contain the same notes. Although I can certainly see how splitting into multiple tracks could make a difference.

  5. It's a sacrifice for sure. To clarify, I have arranged midis by ear of my own work and others. As an example of what you're saying, my personal favorite composition of mine is impossible to properly convert from midi to abc largely because I wrote it in 4/4 time with triplets on the arpeggiated accompaniment, there are some rather syncopated sections with triplets played over standard rhythm, and several tempo changes drastic and subtle. Not to mention when I play the solo piano arrangement I play with a good deal of rubato, which I would prefer to be reflected in the performance if possible.

    When trying to convert it from midi to abc -- besides the problem of the melody stretching well over 3 octaves -- all the programs I've tried (Maestro, FF, & BruTe) cannot reconcile the rhythm properly. As such I realize I would have to rewrite the entire score in 6/8 time so the triplets are not longer triplets and the "standard" notes in 4/4 time would have to be written in an oddly cobbled way.

    Long story short, I think it is completely possible to write in midi and get the desired result when converting to abc every time -- if you write the midi with the knowledge that it's purpose is to be converted into abc. Which I have done in the past. And admittedly that's a high bar to ask of most people, requiring more than a cursory knowledge of composition and music notation.

    I also many times go into the abc files after conversion and edit the text wall directly when something is off, but that's an entirely different subject.

    I hope that clarifies and puts a bow on our conversation. Thank you very much for attending the concert and thank you for taking the time to broaden the discussion about the music system and music composition and notation in general.

  6. I had a go of taking the Logic Pro to Maestro and seeing what I could make of it. I too for the second set of very fast triplets take this to Brute and make my version there. If you have no objection.. I will email you my maestro attempt too :)

  7. Thanks very much, everyone, for your comments. You make a really good point, Lifimun, about writing the midi in a way such that it will make for a better conversion to ABC. I've never tried to do that, but I shall. And let me say again how wonderful your LBC arrangements are.

    I look forward to getting those files, Lili. It'll be a fascinating comparison.

  8. I had generally moved toward Maestro toward the end of my LotRO music days. That said, there is something unique about Bruzo's BruTE in that rather than looking at music "musically", it looks at music "mathematically".

    What does that mean?

    If I remember correctly, Bruzo set the default (and only) timing to 120 BPM. Regardless of the song's time signatures and actual BPM, the math is calculated based on that arbitrary speed. After that, it's about thousandths of a note as opposed to the standard note lengths.

    Sound confusing?

    Here's how it works. Rather than take into consideration things like time signature (or varying time signatures as the reel that Aeg was talking about), BPM, and static note length, the song is 're-calibrated' to 120 BPM but retains the speed as intended by massaging the notes into fractions. Here's an example of BruTE output (drums):

    That's just (obviously) a small snippet - but were you to keep the original timing and use Maestro, for example, you'd see the more traditional output you're accustomed to. The fractions are fully understood by the LotRO ABC system and what this does is gives music a lot more accuracy by allowing you to either convert a midi with more of the intended feel, rather than the limitations that the system of conversion imposes.

    Yes, there is a little bit of a learning curve, but in the end it's what gave the blues and jazz transpositions that I've done a far more dynamic, real feel than the other systems that were available.

    Happy Christmas/Eid/Hannukah/Festivus/Yule or whatever you celebrate (or not)

    Just Abby

    1. I didn't know that, Abby. Actually, that could be very useful indeed. It's certainly an interesting way to do it.