Usf to Midi? by cheezer at 5:55 PM EDT on September 16, 2006
I'm sorry if this is a newb question, but there are usfs in the archive which are basically midis, well I mean certain games like both the zelda files use general midi to begin with... so I was wondering if it was possible to convert these into midi. I thought it might at least be possible with ocarina of time and majoras mask as they use Midi to begin with.
If they literally use general MIDI then you should be able to find the sequences in the ROM. If not, which I consider more likely, and it is just a MIDI-style system, there will be more trouble, but it should be possible to decode the sequences. The USFs might be a place to start looking, at they contain less data to sift through than the full ROM.
The other possibility is to generate a MIDI sequence basd on what notes are played. While this is semi-practical for systems with hardware synthesis it is impractical to impossible for N64 games, which use software synthesis.
There is a lovely program called VGMTrans which extracts sequences from N64 games using the standard sequence format (cSEQ), but Zelda isn't one of those games and VGMTrans isn't really released yet.
Your are going to have to treat me as an idiot. I want to do this, but I have NO programming skills of any kind. How would I extract a midi from the zelda usf. I already know it probably needs a hex editor tho.
Look, how SPC2MIDI worked: It just calculated a "base" frequency for every instrument that was played and then let the user decide which instrument to assign to which channel (starting with everything being played as Grand Piano). Similar efforts like SPC to MOD were also pretty successful.
This is because SPC2MIDI uses an INSANE MIDI structure. Things like one hundred pitch changes per second (Remember, it only converts sample manipulation data to MIDI instructions). It still is a "proper" MIDI file. If it used a more intelligent detection method (considering that the current one is pretty aged), you should be able to create a pretty good listening experience at a reasonable file size.
And SPC2MOD (using the Impulse Tracker engine) makes wonderful copies at a good file size.
hcs: I've tried looking for that VGMTrans program, but can'r find it anywhere. Would love to try some thing out with it if you could find a way to send a copy over :3
Similar efforts like SPC to MOD were also pretty successful.
This isnt exactly on topic with usf to midi... but there is a program called Spc2Mod? Link please. I have openspc but it makes too many false and unlistenable passages. I'm doing a search but so far nothing.
Yep, I just mentioned that name as an example, because I didn't know which program I used back then. I just remembered it and in my opinion it did an awesome job converting the song I tried (King Dedede from Kirby's Dreamland 3).
Ive always liked to rip them to ogg vorbis myself. I dont like the drop in quality of midi, and I want to be able to use them on my mp3 player.
http://home.hccnet.nl/th.v.d.gronde/dev/filewrite/index.html That is a link to a winamp plugin that will allow you to change the usfs to mp3 or ogg easily. Its what I like to use.
Well, this thread was basically started to ask whether it's possible or not to convert USFs to MIDI. Since such a thing is possible for SPC, it might be possible for USF, too.
However: After a little more thinking, it dawned to me, that it might become pretty hard in the USF case, because unlike SPC or PSF the N64 uses software mixing instead of hardware mixing. Basically, the N64 SPU gets completely pre-mixed streams. Therefore the sample/pitch detection would have to happen fo each game individually by analyzing their sound driver (some heavily-modified debugger might be needed).
*Thinking* Hmmm.... I wonder if VGMTrans would work on a usflib. I will have to put that on my to-do list.
--EDIT--
Nope, it isn't as smart as I hoped it would be. :)
edited 9:17 AM EDT October 21, 2006
by unknownfile at 12:57 PM EDT on October 21, 2006
USFLibs don't work since they use an algorithm to compress the data around the ROM. You could try unpacking that, though I don't know if that would work.