N64 Soundbank Tool Release by SubDrag at 3:11 PM EDT on May 21, 2015
http://goldeneyevault.com/viewfile.php?id=302
N64SoundbankTool quite simply, rips and previews N64 Soundbanks into Soundfonts. It is the merging of the N64 Midi Tool and N64 Sound Tool, and is powered by VGMTran's DLSFile support and Seq64 for the EAD games sequence extraction. It has been requested since the beginning, to rip straight from an N64 soundbank to a soundfont, and this accomplishes the job. The N64 Midi Tool and N64 Sound Tool also received a good amount of updates and restructuring, in order to better support addition of this new N64 Soundbank Tool. The tool can generate DLS soundbanks for games where midis/sequences are not identified yet, but a preview will not be available.
The tool will be a work in progress, like the other tools, so expect more soundfonts and more accurate banks over time. It is open source if you are interested in helping! Collaboration would be very helpful, considering the difficulty in converting N64 data into regular soundfonts, as well as due to the huge multitude of games. It is ini driven, so if another game is supported, if it is not a new format, it can simply be a config change. It uses all three inis, from the midi tool, sound tool, and its own.
Some formats do not have sound envelope parameters available (N64WavePtrTable), so will only have the sound and loop information available. The N64 S1 format does support all of the parameters, except for Tremolo and Vibrato. It may be possible later to add Vibrato, but Tremolo is not in DLS format. The EAD format (Zelda, Mario, Star Fox, etc), is somewhat supported, though some parameters are still unknown or imperfect. The time multiplier parameter, is only applicable to the normal sound format, and is used in some games, where due to likely reverb or game specific pitch changes, it sounds better if the values for attack, release, and decay time are multiplied by a larger value (1 microsecond per unit is default, 0.000001). The expectation is that this is a starting point, and authors can tweak parameters if need be, and name the instruments, etc, but this yields the critical splits, ADSR, pan, and attenutation.
The soundfonts are written in DLS format, though most soundbank tools can convert to SF2 if necessary. The preview uses DirectMusic, and is a totally different way of loading the data; as such, it is less accurate and does not contain as many parameters as the DLS, so should only be used for quick testing. Instead use Synthfont, for example, to play and record the music.
Some games have multiple banks, and midis only work on certain banks. Not all games are fully identified in this respect (such as Mario Party). Jet Force Gemini is unique, and has actually over 127 sounds, forming two LSB banks. Unfortunately, most soundbank + midi players do not support this command, but the soundfont does reflect this accurately.
A big thanks to Punk 7890, who assisted in a significant amount of testing, over and over again, ingame determining of parameters and identification of most of the banks. Thanks to Zoinkity for all his help over the years (specifically here in compression and locations for sound tool and midi tool).
Also of course many thanks to VGMTrans, for open sourcing their code, which allowed ease of use of DLS format, as well as Seq64, for open sourcing, so I could make a minor modification to make it command line ripping of midis (source included), and compiled to a new exe. Please email any bugfixes, improvements, comment to me at SubDragger@hotmail.com http://www.goldeneyevault.com/
Games Currently Supported (more to come): 64DDIPLROM 64 Oozumou 2 (J) 64 Trump Collection - Alice no Wakuwaku Trump World (J) All-Star Baseball '99 (E) All-Star Baseball '99 (U) All-Star Baseball 2000 (E) All-Star Baseball 2000 (U) All-Star Baseball 2001 (U) AeroFighters Assault (E) (M3) AeroFighters Assault (U) AeroGauge (E) (M3) AeroGauge (J) (V1.0) (Kiosk Demo) AeroGauge (J) (V1.1) AeroGauge (U) AI Shougi 3 (J) Armorines - Project S.W.A.R.M. (U) Automobili Lamborghini (E) Automobili Lamborghini (U) Banjo-Kazooie (U) (V1.0) Banjo-Tooie (U) BattleTanx (U) Battlezone - Rise of the Black Dogs (U) Beetle Adventure Racing! (J) Beetle Adventure Racing! (U) (M3) Blast Corps (E) (M2) Blast Corps (U) (V1.0) Blast Corps (U) (V1.1) Blast Dozer (J) Body Harvest (E) (M3) Body Harvest (U) Bomberman 64 (E) Bomberman 64 (U) Bomberman Hero (E) Bomberman Hero (U) Bust-A-Move '99 (U) Bust-A-Move 2 - Arcade Edition (U) Bust-A-Move 3 DX (E) Chameleon Twist (E) Chameleon Twist (J) Chameleon Twist (U) Chameleon Twist 2 (E) Chameleon Twist 2 (J) Chameleon Twist 2 (U) Chopper Attack (E) Chopper Attack (U) Choro Q 64 (J) Choro Q 64 II - Hacha Mecha Grand Prix Race (J) Chou Kuukan Night Pro Yakyuu King (J) Chou Kuukan Night Pro Yakyuu King 2 (J) Clay Fighter - Sculptor's Cut (U) Clay Fighter 63 1-3 (Beta) Conker's Bad Fur Day (E) Conker's Bad Fur Day (U) Conker's Bad Fur Day Debug (U) Conker's Bad Fur Day ECTS (U) Cruis'n USA (E) Cruis'n USA (U) (V1.0) Cruis'n USA (U) (V1.1) Cruis'n USA (U) (V1.2) (VC) Cruis'n USA (U) (V1.2) Densha de Go! 64 (J) Disney's Donald Duck - Goin' Quackers (U) Donald Duck - Quack Attack (E) (M5) Diddy Kong Racing (E) (M3) (V1.0) Diddy Kong Racing (E) (M3) (V1.1) Diddy Kong Racing (J) Diddy Kong Racing (U) (M2) (V1.0) Diddy Kong Racing (U) (M2) (V1.1) Donkey Kong 64 (U) Donkey Kong 64 (U) (Kiosk Demo) Duke Nukem 64 (E) Duke Nukem 64 (F) Duke Nukem 64 (U) Eikou no Saint Andrews (J) Eltale Monsters (J) Extreme-G (E) (M5) Extreme-G (J) Extreme-G (U) Extreme-G XG2 (E) (M5) Extreme-G XG2 (J) Extreme-G XG2 (U) F-1 Pole Position 64 (E) (M3) F-1 Pole Position 64 (U) (M3) F1 Racing Championship (E) (M5) F-1 World Grand Prix (E) F-1 World Grand Prix (E) (Prototype) F-1 World Grand Prix (F) F-1 World Grand Prix (G) F-1 World Grand Prix (J) F-1 World Grand Prix (U) F-1 World Grand Prix II (E) (M4) Flying Dragon (U) GoldenEye 007 (E) GoldenEye 007 (J) GoldenEye 007 (U) Hamster Monogatari 64 (J) Heiwa Pachinko World 64 (J) Hey You, Pikachu! (U) Hiryuu no Ken Twin (J) Holy Magic Century (E) Holy Magic Century (F) Holy Magic Century (G) Hoshi no Kirby 64 (J) (V1.0) Hoshi no Kirby 64 (J) (V1.1) Hoshi no Kirby 64 (J) (V1.2) Hoshi no Kirby 64 (J) (V1.3) HSV Adventure Racing (A) Human Grand Prix - New Generation (J) J.League Dynamite Soccer 64 (J) J.League Eleven Beat 1997 (J) J.League Tactics Soccer (J) (V1.0) J.League Tactics Soccer (J) (V1.1) Jangou Simulation Mahjong Do 64 (J) Jet Force Gemini (E) (M4) Jet Force Gemini (U) Jet Force Gemini (U) (Kiosk Demo) Ken Griffey Jr.'s Slugfest (U) Killer Instinct Gold (U) (V1.0) Killer Instinct Gold (U) (V1.1) Killer Instinct Gold (U) (V1.2) Kira to Kaiketsu! 64 Tanteidan (J) Kirby 64 - The Crystal Shards (E) Kirby 64 - The Crystal Shards (U) Last Legion UX (J) Legend of Zelda, The - Ocarina of Time (U) (V1.0) Decompressed Legend of Zelda, The - Ocarina of Time - Master Quest (U) (Debug Version) Legend of Zelda, The - Majora's Mask (U) Decompressed Mace - The Dark Age (E) Mace - The Dark Age (U) Mario Kart 64 (U) Mario Party (U) Mario Party 2 (U) Mario Party 3 (U) Mahjong Master (J) Mickey no Racing Challenge USA (J) Major League Baseball Featuring Ken Griffey Jr. (E) Major League Baseball Featuring Ken Griffey Jr. (U) Mickey's Speedway USA (E) (M5) Mickey's Speedway USA (U) Mike Piazza's Strike Zone (U) Mischief Makers (E) Mischief Makers (U) Mischief Makers (U) (1.1) Morita Shougi 64 (J) MRC - Multi Racing Championship (E) (M3) MRC - Multi Racing Championship (J) Nintama Rantarou 64 Game Gallery (J) Olympic Hockey Nagano '98 (U) Onegai Monsters (J) Pachinko 365 Nichi (J) Penny Racers (E) Penny Racers (U) Perfect Dark (E) (M5) Perfect Dark (J) Perfect Dark (U) (V1.0) Perfect Dark (U) (V1.1) Pilotwings 64 (E) (M3) Pilotwings 64 (J) Pilotwings 64 (U) Pokemon Snap (A) Pokemon Snap (E) Pokemon Snap (F) Pokemon Snap (G) Pokemon Snap (I) (VC) Pokemon Snap (I) Pokemon Snap (J) (VC) Pokemon Snap (S) Pokemon Snap (U) Pokemon Snap Station (U) Pokemon Stadium 2 (U) Power League Baseball 64 (J) Premier Manager 64 (E) Pro Mahjong Kiwame 64 (J) Pro Mahjong Kiwame 64 (J) (V1.1) Puyo Puyo Sun 64 (J) Quest 64 (U) Rayman 2 - The Great Escape (U) (M5) Razor Freestyle Scooter (U) Roadsters Trophy (U) (M3) Saikyou Habu Shougi (J) Shin Nihon Pro Wrestling - Toukon Road - Brave Spirits (J) Sim City 2000 (J) Sonic Wings Assault (J) Space Station Silicon Valley (E) (M7) Space Station Silicon Valley (J) Space Station Silicon Valley (U) Star Fox 64 (U) (V1.0) Star Fox 64 (U) (V1.1) Star Fox 64 (J) Star Fox 64 (J) (V1.1) (VC) S.C.A.R.S. (E) (M3) S.C.A.R.S. (U) SD Hiryuu no Ken Densetsu (J) Superman (E) (M6) Superman (U) (M3) Superman Nintendo 64 (Early Prototype) Super Robot Spirits (J) Super Smash Bros. (A) Super Smash Bros. (E) (M3) Super Smash Bros. (U) Super Mario 64 (U) Super Mario 64 (J) Tetris 64 (J) Tonic Trouble (E) (M5) Tonic Trouble (U) (V1.1) Transformers - Beast Wars Metals 64 (J) Transformers - Beast Wars Transmetal (U) Turok - Dinosaur Hunter (E) (V1.0) Turok - Dinosaur Hunter (E) (V1.1) Turok - Dinosaur Hunter (E) (V1.2) Turok - Dinosaur Hunter (G) Turok - Dinosaur Hunter (U) (V1.0) Turok - Dinosaur Hunter (U) (V1.1) Turok - Dinosaur Hunter (U) (V1.2) Turok - Legenden des Verlorenen Landes (G) Turok - Rage Wars (E) (M3) (Eng-Fre-Ita) Turok - Rage Wars (E) Turok - Rage Wars (U) Turok 2 - Seeds of Evil (E) (Kiosk Demo) Turok 2 - Seeds of Evil (U) (Kiosk Demo) Turok 2 - Seeds of Evil (E) (M4) Turok 2 - Seeds of Evil (E) Turok 2 - Seeds of Evil (G) Turok 2 - Seeds of Evil (U) Turok 2 - Seeds of Evil (U) (V1.1) Turok 3 - Shadow of Oblivion (U) Turok 3 - Shadow of Oblivion (U) (Beta) Turok 3 - Shadow of Oblivion (U) (Beta-WIP) Turok 3 - Shadow of Oblivion Prototype Uchhannanchan no Hono no Challenger - Denryu IraIra Bou (J) Virtual Chess 64 (E) (M6) Virtual Chess 64 (U) (M3) Virtual Pro Wrestling 64 (J) War Gods (U) Wayne Gretzky's 3D Hockey '98 (U) Wayne Gretzky's 3D Hockey (U) (V1.0) Wayne Gretzky's 3D Hockey (U) (V1.1) Wonder Project J2 - Koruro no Mori no Jozet (J) Yoshi's Story (U) (M2) Zool - Majou Tsukai Densetsu (J)
Not all and I meant just the games that use the AW bank system for their sounds like Super Mario Sunshine for example. It could be possible one day I hope.
Most GC and Wii games are streamed, yes, but a few quite popular games use sequences. For example, Wind Waker, Mario Sunshine, and Galaxy 1 and 2 (partially).
This is obviously awesome. There are (with most first releases) some occasional bugs, etc. Some examples being that some of the Goldeneye 64 sounds are far too short (i.e. that extremely slowed down tambourine effect you hear a lot, instead of going boooooooooong, it's like bong....), and there was one game that completely crashed (i.e. "has stopped responding" message appeared). Other than that, and some occasional other bugs, this is pretty awesome.
I hope to improve it over time :) And of course rips are starting points for these to be minorly tweaked after if need be. Rareware did some uniqueness that seems to make adsr not quite right. I'm not sure if it's special reverb or what, but our initial adjustment was to multiply adsr by 3 from normal. At the least, it's not obvious to me why it isn't proper. And EAD games are a complicated work in progress. Hopefully others can collaborate too and help figure out the tech details. Which game crashed, I can fix that.
Just a question. Turok 2 and Turok 3 don't seem to actually play anything in the proper soundbanks (when I played them using the preview thingy, it played them in the bog standard GM soundbanks -- I know it says it's inaccurate but most of them at least attempt to play them.
Also, are there any cheap (read: free) ways of 'converting' DLS to SF2?
Which region did you use? Not all midis are supported, if you don't see any comboboxes for midi, it isn't supported.
Also, there was like a quick patch to Soundbank tool after I released (we noticed Turok wasn't playing and I added Pokemon Stadium 2 and a couple minor ini additions), try regrabbing it just in case. Perhaps was after you grabbed. Turok 2 (U) is playing for me on latest version.
I see what happened, there was an old version in the main directory. Supposed to use the one in the Release folder. I deleted that and reuploaded, use the Release folder one.
Would it be possible in the future to export some banks as DLS, even if the sequence format hasn't been figured out yet? I'm specifically referring to Mario Golf and Mario Tennis.
Use the release folder - I messed up, accidentally had an old version in main folder. You also will want to regrab just in case, that sounds like as soon as I released.
You can add Mario Golf and Mario Tennis to the ini file, but beware, those games use a format that does not include ADSR envelope, so you will only get instruments/sound and loop info. I guess I can start adding those games, though their format is really just the sound/loop data unfortunately.
Awesome, I'll add them to the ini file. That's perfectly fine with me. I may pull ADSR info from the Gamecube sequels once I get those figured out. So close...
I only used the one in the "Release" folder. I'll redownload it, just for the sake of it though.
OK, it works, but when I try playing a MIDI with the SF2 files, certain instruments don't even play, or some of them are completely badly out of tune (sometimes even notes on the same channel are randomly in and out of tune)?
I guess that this is always the case when something is played on Channel 10, which is reserved to drums in the GM standard but not so in the (completely arbitrary) world of N64 MIDI. Channel 10 has no special meaning there.
@TheUltimateKoopa: What are you using to convert to SF2? I think I had this problem myself once. I know for a fact dls to sf2 conversion in Viena doesn't work properly and can semi corrupt the sf2 file. Another problem could be that must N64 games (to save space) have 1 long note and other short notes inside of each other. In most sequencers, this makes the sound stop altogether. Take Port of Adia for example in Turok 2. If you want to play them back properly, I would use the free version of Synthfont (also excludes the special reserved channel 10 that most midi players suffer from)
The EAD games such as Mario do not properly support all the unique adsr envelopes, and pitch perhaps has some special nuances. Those games are a challenge and much more difficult work on in progress unfortunately.
when i play the extracted midi with the dls file in fl studio, it doesn't sound like the original track. how to fix this? or will this be fixed in other version. I tested with goldeneye rom (U).
Is there a way to merge the overworld midis for OoT now with N64 Soundbank Tool without breaking the midi? Because it's very hard to arrange it and delete empty tracks without messing it up for the soundfont, luckily they only use one soundfont and there are only 20 midis total IIRC for the song to be merged.
Not sure I understand what asking, but all I do is call Seq64 to rip the midis. Merging them shouldn't change the soundfont or what instrument each is?
Theres nothing wrong with the soundfont, it works fine with the midis. The problem is having them split into 20 parts, makes it hard to remake. I was hoping your tool could have an option to combine them into one? When I try to merge the midis myself they either don't align with the other tracks or don't loop right. Hopefully there will be a fix for this in the future for other games that use multiple midis for one song.
Hyrule Field uses various flags to determine what part the next sequence should be. There's no real order to it. That's the only game I can think of where this is unique. You'd have to import the midi's and line them up in say, FL Studio. I'm not sure what you mean by loop as midi's don't get exported with loop points. That's something the games sequence handles differently then midi's do.
How do I merge in FL Studio? And thanks, again by loop points I mean when you merge the songs together at the end point of the midi part. Think about it, the parts are linked, shouldn't they automatically be able to play along to the next midi part without playing over eachother?
I would import them all (without starting a new project) and create a playlist of them all. Basically, you would import them and they would be on different patterns. You would have to link each of them up in playlist mode. Make sure your in Song mode, not pattern for this or the playlist won't play. In playlist mode, select the Draw tool (pencil icon) then paste each specified pattern in the playlist corresponding to the pattern you're in currently.
Ugh its too difficult..I give up. I've tried everything and nothing works, I guess there is no way to remake this song...thanks for trying to help though guys.
This method works perfectly fine for me. You may have just given up prematurely. I would do this and show this works but I do not have all the Field midi's. It seems dlstool doesn't export them all and I don't feel like doing it one by one.
@punk I have all the midis here, the main midis are 15 through 35 (20 in all) lowest number is the start and the highest is the end. That would be awesome if you could do this for me :) I tried going to the playlist but could not for the life of me find a way to import them all into that one playlist, do I have to drag and drop or something? Thanks!
You just have to select what pattern you want to paste (has a little drop down menu with its name around the top left). Here they are: Morning Theme,Alt opening. I made theme loop twice just because. Also the pitch is wrong in a few spots (seq64's fault). It shouldn't be all that bad though.
I had to double export them, was trickier then I thought. Not worth explaining since its done now.
Sweet! Thanks!! I can probably edit them and fix some things if needed but they sound good so far. Hope it wasn't too much trouble, really appreciate it.
So, I grabbed this tool, trying to make modules for Blast Corps... except the Moon/Magma Peak/Mars/Mission Description track has some issues. The bass cuts out early, and I'm suspecting that it's actually repeating some sections a couple times.
How can I tell where these repeats are so I can edit the MIDI appropriately?
I did manage to get Skyfall/Baboon Catacomb/Gibbon's Gate to convert pretty well, and I'm working on Cromlech Court/Venus/Neptune.