Has anyone written a MIDI file tutor-izer?
[email protected] (The Danimal) Mon, 14 Jan 2002 00:18:01 -0500
| Newsgroups | perl.midi |
|---|---|
| Organization | Danimal Planet |
| Message-ID | <[email protected]> |
Dear MIDI-Perl users, I'm looking to improve my keyboard skills by learning to play songs from MIDI files I've downloaded from the Web. I can read standard music notation (although not nearly in real time, if the song is difficult), but the sequencer I use (MOTU's FreeStyle) does a rather poor job of generating notation for tracks that contain grace notes, notes that don't fit standard beat divisions, or other common playing techniques. FreeStyle shows what's really in a track if I use the "graphical editing" view (a piano roll display), but I find the piano roll much harder to read than notation. I can figure out difficult passages more easily by playing them back through my Casio CTK-620L, a consumer keyboard I bought solely to get its "key lighting" system. (The keys on its keyboard light up to show incoming note events on MIDI channel 4 (which I guess is really MIDI channel 3). It's about as good as having a human teacher right there to show you what to play.) The problem is that FreeStyle lacks the features I need to play a song back in a "learnable" way. FreeStyle just wants to play a song from beginning to end. I'm not Mozart, so that's usually way too much to digest at once. To learn a song, I need to divide the song into phrases, select a phrase to learn, and loop it repeatedly, perhaps with a countoff measure between repetitions (to avoid the nonmusical "glitch" one might get from running the end of a phrase directly into what may be the musically unrelated beginning). I might also want to interleave a long rest between repetitions of the phrase, to allow me time to try to play the phrase by myself (rather than along with the sequencer). The only way I know to set this up in FreeStyle is by doing a massive copy and paste operation, where I copy phrases out of a track and paste them repeatedly into an empty track. This would be tedious to do for one song, let alone a whole repertoire. Obviously this would be straightforward to do with MIDI-Perl: read a MIDI file and copy phrases out of a track into another track, according to whatever repeat-count and spacing scheme I specify in some data structure, and then write a new MIDI file containing a "tutor-ized" version of the song. I could also specify a tempo map, for example so the first repetition of a phrase is half speed or less, and later repetitions come up to full speed. I'm pretty sure I can do this with no problem, but I was wondering if anybody else has already done this. On the flip side, if nobody else has done this and anybody else is interested in what I come up with, I can post it here. -- Daniel Mocsny