Yeah I just said miniusf because i thought usflib was the sample data, and miniusf was the sequence data... I just wondered why nobody had done this yet :/ Not saying I could do it at all xD
So would it be tricky to develop such a tool? =P
edited 3:13 PM EST December 28, 2008
SECOND! ...sorry... by Yoshinkeru at 3:25 PM EST on December 28, 2008
I certainly hope this comes true, as well!
by unknownfile at 3:31 PM EST on December 28, 2008
It is pretty tricky. Unlike other systems like the NES, which have their sequences sent directly to the sound processor, the N64 typically mixes everything together before sending it out. It is not possible to make a MIDI converter out of plain audio in this method, and it'd just be easier to extract the sequence data from the ROM and convert it.
A miniUSF is almost entirely tag data (artist, ripper, game, etc.) and a pointer to the data to load. At least, that's what I recall. The USFlib is where all the sequence data, sample data, and N64 executable data is stored. As unkownfile said, what happens with a USF is that the N64 executable is run. This loads the sequence and sample data, and "plays" the data, similarly to how a MIDI is played on a PC. However, since the sample data is never "seen" by the CPU (not directly. The sample data is being run through the N64 executable), you can't really catch the data as you would from a NSF (as unknownfile said).
So your best bet would be to interface with the data in the ROM directly (again, as unknownfile said). The problem with this method is that you need to know what it is you're looking for. As messiaen has shown us, it is possible, but not easy. For one thing, you need to reverse engineer the format the game uses for its sequences (as messiaen has done), and then "translate" the structure used in the N64 sequences to MIDI commands and whatnot.
In short, no. It's very difficult, which is why it hasn't been done yet (though, messiaen may be close. However, that's for primarily one game/format of sequences, and there are many many more out there). Hopefully that explains in more depth (with clarity?) an answer to your question. Mouser X over and out.
get the old version of VGMTrans that works with N64 ROMs. games which use the smashy driver can have midi sequences ripped directly out. however unlike NSF or SPC conversions, you're ripping out the original sequence data intact rather than translating it, so in most cases all you'd need to do is change a few midi patches and drum notes, maybe transpose some tracks up or down an octave or two, and you're done.
we don't want these on vgmusic though, just an fyi.
Thank you for the helpful version Lunar :). I didnt know VGMTrans did N64 roms :/ Paha, they won't be on VGMusic, don't worry xD I hate people that upload conversions there.. I'm totally against that :). Coz I make them myself :D. ...not conversions xD, midis :).
You couldn't direct me to the old version of VGMTrans could you? The one that supports N64? Because, I thought I had the old version.. But dragging in a N64 rom has no effect :/.
Not sure why the current VGMTrans doesn't work with N64 ROMs, or why the old one isn't available for people who want to rip midis from N64 games. Anyone have any idea?
Here it is anyway: http://www.vgmusic.com/~lunar/VGMTrans.rar
Thank you for the helpful version Lunar :). I didnt know VGMTrans did N64 roms :/ Paha, they won't be on VGMusic, don't worry xD I hate people that upload conversions there.. I'm totally against that :). Coz I make them myself :D. ...not conversions xD, midis :).
There's no doubt about conversions sounding best though.
Does anyone know (talking about MIDI conversion) why my *.vgz to *.mid is not converting the DAC, even though it said it should? If its the file issue, how can I convert to the older *.vgz's?
"There's no doubt about conversions sounding best though."
*mind boggles* care to back that up? my experience with conversion to midi from all manner of other audio formats has not been very positive. there's many common problems, such as low volume, incorrect program messages/instrumentation, notes ignoring/not being aligned to the bar lines, playing in the wrong key, stuttery pan+volume controllers, and no doubt numerous other problems as well. of course part of it is down to fairly basic programming and design of the converters (definitely room for improvement) and the idiosyncracies of the midi format in the first place. fully automated *-2-midi will very often sound like ass though. so yeah, weird claim to make there.
of course VGMTrans isn't converting to midi, before anyone brings that up :P
Baha, go Lunar. Maybe conversions, carefully used by an experienced sequencer, to aid in the creation of a midi, sound best.. But just plain conversions... Heh, no.
Ummm.. help?! xD by SH&E at 3:35 PM EST on December 29, 2008
Okay, I have VGMTrans, and I have the rom open.. But all I see is Hex :/. Sorry, but I tried reading your instructions Lunar, but.. I'm confused :(.
EDIT: It's okay, sadly the game didn't use the smashy driver, that's why :(. Twas Animal Forest =P
So maybe I didn't use the "correct" terminology, but VGMtoMIDI, SPC to MIDI, and VGMTrans produce very good output. Especially DS, Pokémon Diamond is an example, with the DLS it sounds just like the original. A few program changes here and there (All with SPC to MIDI).
But as I said the DAC should come out on VGMtoMIDI, but it won't... =/
"So I'm guessing, seeing as it doesn't use the smashy driver, I can't do it?"
Probably not, sadly.
"So maybe I didn't use the "correct" terminology, but VGMtoMIDI, SPC to MIDI, and VGMTrans produce very good output. Especially DS, Pokémon Diamond is an example, with the DLS it sounds just like the original. A few program changes here and there (All with SPC to MIDI)."
VGMTrans is a ripper not a converter, the data is all there in MIDI format to begin with, it's just using a custom sample set (which gets converted to DLS or something). So yes, the note data is completely intact. SPC2MIDI actually converts the SPC commands to MIDI, and in doing so creates a whole lot of problems. Most common problem with SPC2MIDI is that all the instruments are piano, and the only percussion sound is a kick drum, as well as a lot of the problems I mentioned before. That is not a good result :)
I'm guessing the DAC won't convert because it's samples rather than note data.
"Not sure why the old one isn't available for people who want to rip midis from N64 games. Anyone have any idea?"
Well, I think the developer kinda gave up on VGMTrans, a little while ago his site was redirecting to some 'oddigy' site or something. Now, there's just one of those domain name holding pages, waiting to be bought xD. It's hard even to get your hands on the most recent version of VGMTrans, so that'd probably be why. Who knows =P.
VGMTrans is a ripper not a converter, the data is all there in MIDI format to begin with, it's just using a custom sample set (which gets converted to DLS or something). So yes, the note data is completely intact.
Oh, it's a converter all right. Neither of the supported formats use MIDI (search the roms for MTHD headers, you won't find anything), just some similar sequence format which gets converted (along with the custom samples).
And yes, this leads to loads of problems, like the PSG channels being played as piano for NDS Nitro games.
"Oh, it's a converter all right. Neither of the supported formats use MIDI (search the roms for MTHD headers, you won't find anything), just some similar sequence format which gets converted (along with the custom samples)."
literally the only thing that's different is the headers though; they're still midi sequences/events, just not General MIDI (the music disassembly proves that well enough). the majority of these N64 and DS soundtracks start life in GM format at the authoring stage, and are converted into a seq format when put in the game. whichever way you look at it, it's an entirely different thing to SPC and other formats not based on midi.
Calm down everyone, I didn't mean to turn this into an argument about what's a convertor and what isn't. =)
I'm using Alpha-II SPC Player v3.3.4 plugin, and you can listen to channels seperately with it, and then work out what instrument it is. Problem with that is the multipleness of the patch changes. And the fact that my MIDI editor is Jazz++. I can view the events and edit the prg changes manually which works, but takes time.
I'm guessing the DAC won't convert because it's samples rather than note data.
Yeah true, but the convertor claims to do it. In fact any track with a DAC track inside (most of them), get converted to a 169k MIDI file, with no data inside. The rest (without DAC) convert fine (sometimes outta tempo, but again that can be changed). So it should work but doesn't.
It could be to do with the versions of the files, apparently the new 1.5 versions *.vgz is not compatible with it...
Ah, I see :). I found some wii games that had music in some sort of .*seq format. Not sure what letter was before the 'seq', but it was very similar to the NDS format. I wonder if someday they could be converted too, seeing as you say they're still midi sequences/events :P :).
"Problem with that is the multipleness of the patch changes."
yeah, I've hit that problem with quite a few soundtracks when transcribing stuff (Tales of Phantasia, Wagyan Paradise and I think all of Masanao Akahori's soundtracks have instrumental lines jumping around all the channels indiscriminately - probably lots of other soundtracks too). I like to call it "dynamic voice allocation" (or "trackfucked" when I'm feeling less eloquent).
There is somewhat of a way around it though. You can convert the SPCs to ITs using OPENSPC, then open the ITs in a tracker like MPT, and then systematically delete samples. Works kinda like track muting usually would, though not quite as effective when you have the same sample used on multiple instrumental lines. still, it helps, and is better than trying to fight with the SPCs.
sorry, didn't intend to appear short-tempered.
SH&E: I guess you mean the wind waker/twilight princess/super mario sunshine "JSEQ" format. i remember unknownfile was looking into getting those to play at one time. dunno what's happening with that now though.
Ah, yeah, I think it might've been JSEQ, because I remember trying to look into it, but I found nothing xD. It was in several games.. I know Animal Crossing - City Folk used whatever I'm thinking of, I think it was JSEQ. And Mario Kart Wii might've in a small amount of it's tracks too..
the majority of these N64 and DS soundtracks start life in GM format at the authoring stage, and are converted into a seq format when put in the game. whichever way you look at it, it's an entirely different thing to SPC and other formats not based on midi.
Ah, but you see, many SNES drivers were the same as well. Heck, VGMTrans has support for standard Nintendo one, not sure if finished, but zoopd shared some example tracks from ActRaiser or Super Mario World.