Here's a simple idea to help with some kind of guide track for
collab songs, particularly for the experimental Subversion repo
but also perhaps generally. If the core parts of a song like
tempo and key, chorus verse bridge etc, are mapped out in a
MIDI file with just about any MIDI sequencer then we could use
the plain text version of that SMF (Standard Midi File/Format?)
to checkout and commit to the SVN repo.
http://midicomp.opensrc.org/ -> midicomp-0.0.2.tar.gz
The idea would be that this MIDI track is specifically NOT part
of song itself, so it doesn't become chock full of endless MIDI
note tweaks, but remains fairly simple and acts as a guide track
that when converted to binary MIDI format actually plays back
simple parts using voice 0/1 (piano), however, it's most
important role is as a precise editable TEXT guide for the song.
So, as a simple "standard" it should always be called by the same
filename and always play back using the first voice (piano). So
in the svn repo, if anyone creates a new folder (essentially a
new project) and checks in a file called "guide.txt" (with an
optional guide.mid) then anyone else has at least a baseline
(key, tempo) to start from and can manually edit the guide.txt
(or use a good midi sequencer with comments) and thereby "guide"
how the song evolves in a language that maps to real music as
opposed to awkward words and discussion about the song layout
or structure (useful but not very musically precise).
Here is an example of the plain text version of an SMF...
MFile 1 1 384
MTrk
000:00:000 Meta SeqName "Track 1"
000:00:000 Tempo 500000
000:00:000 TimeSig 4/4 32 99
000:00:000 On ch=1 note=c4 vol=70
000:00:096 On ch=1 note=c4 vol=0
000:00:096 On ch=1 note=d4 vol=70
000:00:192 On ch=1 note=d4 vol=0
000:00:192 On ch=1 note=e4 vol=70
000:00:288 On ch=1 note=e4 vol=0
000:00:288 On ch=1 note=f4 vol=70
000:01:000 On ch=1 note=f4 vol=0
000:01:000 On ch=1 note=g4 vol=70
000:01:096 On ch=1 note=g4 vol=0
000:01:096 On ch=1 note=a4 vol=70
000:01:192 On ch=1 note=a4 vol=0
000:01:192 On ch=1 note=b4 vol=70
000:01:288 On ch=1 note=b4 vol=0
000:01:288 On ch=1 note=c5 vol=70
000:02:000 On ch=1 note=c5 vol=0
000:02:000 On ch=1 note=d5 vol=70
000:02:096 On ch=1 note=d5 vol=0
000:02:096 On ch=1 note=c5 vol=70
000:02:192 On ch=1 note=c5 vol=0
000:02:192 On ch=1 note=b4 vol=70
000:02:288 On ch=1 note=b4 vol=0
000:02:288 On ch=1 note=a4 vol=70
000:03:000 On ch=1 note=a4 vol=0
000:03:000 On ch=1 note=g4 vol=70
000:03:096 On ch=1 note=g4 vol=0
000:03:096 On ch=1 note=f4 vol=70
000:03:192 On ch=1 note=f4 vol=0
000:03:192 On ch=1 note=e4 vol=70
000:03:288 On ch=1 note=e4 vol=0
000:03:288 On ch=1 note=d4 vol=70
001:00:000 On ch=1 note=d4 vol=0
001:00:000 Meta TrkEnd
TrkEnd
--markc