Hey all. I was wondering if anyone knew of a program that could take a MIDI file and split any patch changes in a single track and output each patch along with the notes for each program into it's own separate track? For example, it'd be converting something like this (with patch changes within each track): To this (each program change has it's own track): As of right now, the only way I can do this is to manually create new tracks and copy and paste notes for each patch change. This can be very tedious and annoying if your song has like 2039846204620 program changes throughout the song. I heard of a script for REAPER that can do something like this, but I don't use REAPER. I've looked everywhere for something that can do this for me automatically but to no success. Does anyone have any ideas?
Do you remeber that I said I'll write such a tool? Well, here it is. (It splits them into different tracks, not channels, but I'm sure this it exactly what you want. ) Please note that it's still beta, so it prints some debugging info.
Hehe, yep I remember. I just figured that there were programs out there already that could do the process already, but when I went searching yesterday I was surprised that I couldn't find anything besides the REAPER script. :\ But anyway - this works fantastic! This is exactly what I wanted - saves me the trouble of having to split Angel Island Act 1 by hand. :P Whoever programmed Angel Island Act 1 into the game must've been insane, there are changes all over the place - song uses a lot of DAC samples as well. Crazy.
This is something I needed as well, I'm glad this thread exists. But for that matter, it sounds like you're referring to a midi converted from the original format. Now THAT is something I need, were in the world did that come from and how did I miss it?
ValleyBell wrote a program for converting SMPS format songs to general midi files back in May. It accepts either standalone files from a disassembly, and also allows the opening of an (unmodified) ROM. It was released in this topic.