[LAU] Converting Midi file data to play on guitar

Nathanael Anderson wirelessdreamer at gmail.com
Wed Mar 11 08:22:50 EDT 2009

I'd be interested in taking a look at your code, It should help get my brain
working. I'd also be interested in feedback from you if your interested to
critique my approach.


>About ten years ago (on Atari/MiNT) I wrote a C program similar to this,
>for baroque lute tabulature... I wanted it to help me transform any
>I was interested in, be it classical orchestral or chamber works, piano
>or pieces for classical guitar, in a semi-automatic way, to Wayne Cripp's
>lutetab code, and it worked out surprisingly good, given that I was a
>lousy DIY hacker ;) (I don't really code anymore).
>I didn't care much about 2) and 3) but for 1) I came up with an algorithm
> - determine the string on which the pitch can be played at the lowest fret
>  possible
> - check if this string is used already, and if yes move this note to the
>  (lower) string
>For notes lower than the instrument range (13 course lute goes down to A, a
>lower than guitar) I chose to just place a comment in the tab output, so
that I
>would be able to decide afterwards what to do with that note (transpose up
>octave, skip it, whatever).
>Since it's been a long time now I can't remember how I dealt with files
>containing more than one track, but I somehow managed to merge them into a
>single tabulature, I have for example produced nice tabulatures of the
>accompaniment of the first three movements of Pergolesi's Stabat Mater.
>For these of course I had to prepare the midifiles, remove the voice tracks
>and transpose to a key suitable to the lute.
>Other problems I've encountered and I'm not sure if or how I solved them:
> - the bar/beat counting got screwed up sometimes, especially with grace
> - of course, I had to remove double notes when boiling down ensemble works
> - there are different lute tunings, I only dealt with standard baroque
>  d-minor tuning
> - on the lute, the diatonic basses (lower than the 6th course) are tuned
>  the key of the piece
>The thing is based on the ancient midifile(3) lib by Tim Thompson et al.
>is a little gem IMHO. The library parses the midifile, all you have to do
>to write a few callback functions for the events you're interested in. Some
>example code is in the archive, and it took me just a few days to come up
>something useful.
>I never seriously thought about releasing it, even after I compared it's
>output's quality to what Django can do (an impressive M$ tabulature editor,
>mainly for historic fretted instruments, the demo from
>http://musickshandmade.com/lute/pages/django runs quite well in wine) and
>found that I was doing pretty well. :)
>I'm sure there are stupid things in there and it's not at all in a
>state, but if you are interested I'll share the code...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.linuxaudio.org/pipermail/linux-audio-user/attachments/20090311/918d2b72/attachment.htm 

More information about the Linux-audio-user mailing list