Lol, ok, I'm not sure how to call it. Let's say I want to take notes from a MIDI file (or something similar) and use them in an application. How could I do that? I want to make something like a program that converts MIDI files into guitar tabs or so.
Disclaimer: Any sarcasm in my posts will not be mentioned as that would ruin the purpose. It is assumed that the reader is intelligent enough to tell the difference between what is sarcasm and what is not.
Games like Guitar hero, and Dance Dance Revolution have a extra files, along with the music
Usually they have a file which contain all the "steps" you would have to press, along with other information containing the BPM of the music (and any BPM changes) and then the steps would appear on time, according to these BPMs
(example, guitar hero style (BPM is usually constant) 0= not pressed, 1=pressed, 2=hold)
00000 #Small break before we start the song
00000
01010 #red and blue pressed together
10100 #green and yellow pressed together
02000 #red is held
02010 #red still held, blue pressed
02100 #yellow pressed
12000 #green
00100 #red stopped, yellow pressed
01000 #etc
......
Basically that is what you'd do for the entire song.
With a bit of work, you could work out how quickly you would need to make these appear on screen (using the BPM and the length of the song, and the number of steps in the file)
------------
To do the program you suggest, you'd essentially have to calculate the BPM of the file, and where any prominant "beats" occur on the song.
If possible, you could check the layers of the MIDI and go off when each layer has a note played (the more difficult, the more frequent you would put down a note to be pressed in the simfile)
Thanks for that part, that solves 80% of the problem . But would there be a way to import a MIDI file, and say, make an editor that checks the channels, takes the beats, and does the work for me? Any MMF2 extensions for it or so?
Disclaimer: Any sarcasm in my posts will not be mentioned as that would ruin the purpose. It is assumed that the reader is intelligent enough to tell the difference between what is sarcasm and what is not.
I don't know any extension for that. It'd certainly be handy, but otherwise you could use a different method.
You could look up what's in a header of a midi (here is a website: http://www.sonicspot.com/guide/midifiles.html) and use the Binary object to get that information out.
What I would recommend is rendering the MIDI as some other format (SynthFont would be great for this - it's free and supports Soundfonts) and make a rendering of the MIDI minus the "lead track" (the one that you're playing) and then a rendering of JUST the lead track. Then, have them play back simultaneously, but make it so that the lead track's volume is set to 0 unless the player is making the correct input.
As for making a guitar tab program, you can't unless you know how to do some hardcore programming of the non-click variety.
If wishes were fishes then we'd all smell like ladies' underwear.
Google "Frets on Fire". It's a really great free guitar hero clone for the PC (you can DL all the GH songs, or even use your game disc and transfer them that way). You can also make your own songs for it (there is a MASSIVE list of user made tunes). I highly recommend it to all GH fans (or those to broke for the real deal). Kinda off topic... but kinda on too! Check it out!