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)

edited 12:11 AM EDT May 22, 2015
by soneek at 4:16 PM EDT on May 21, 2015
Thanks a bunch!
by Kurausukun at 5:13 PM EDT on May 21, 2015
This is incredible, thanks a lot!
by dj4uk6cjm at 5:36 PM EDT on May 21, 2015
Great stuff, thanks! Hopefully soundfont ripping will be possible for GC and Wii games someday. :)
by bobbyK at 6:07 PM EDT on May 21, 2015
thanks a lot for this! <333

much appreciated! :)

@dj4uk6cjm

GC and Wii? but most are streamed tho right?
by dj4uk6cjm at 6:12 PM EDT on May 21, 2015
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.
by Kurausukun at 6:54 PM EDT on May 21, 2015
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).
by TheUltimateKoopa at 5:14 AM EDT on May 22, 2015
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.
by SubDrag at 5:29 AM EDT on May 22, 2015
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.
by TheUltimateKoopa at 5:31 AM EDT on May 22, 2015
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?
by SubDrag at 5:42 AM EDT on May 22, 2015
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.

Viena can open dls and save to sf2, it's free.

edited 10:52 AM EDT May 22, 2015
by dj4uk6cjm at 5:50 AM EDT on May 22, 2015
If anyone needs a crack for Awave Studio or Extreme Sample Converter for easy dls to sf2 conversions let me know, I have safe and working versions.
by SubDrag at 6:46 AM EDT on May 22, 2015
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.
by soneek at 7:09 AM EDT on May 22, 2015
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.


edited 12:29 PM EDT May 22, 2015
by TheUltimateKoopa at 7:39 AM EDT on May 22, 2015
I downloaded it at 1:24 am (UK time) on May 22nd (so 8:24 pm Eastern on May 21st).
by SubDrag at 7:59 AM EDT on May 22, 2015
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.


edited 1:10 PM EDT May 22, 2015
by soneek at 8:06 AM EDT on May 22, 2015
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...
by TheUltimateKoopa at 8:54 AM EDT on May 22, 2015
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)?

edited 2:12 PM EDT May 22, 2015
by WDLmaster at 9:47 AM EDT on May 22, 2015
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.
by punk7890-2 at 10:13 AM EDT on May 22, 2015
@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)
by TheUltimateKoopa at 10:56 AM EDT on May 22, 2015
I've used the free version of Synth Font. It doesn't solve the randomly out of tune notes. Take Super Mario 64 as an example.
by SubDrag at 11:15 AM EDT on May 22, 2015
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.
by bobbyK at 3:54 PM EDT on May 23, 2015
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).

by punk7890-2 at 4:01 PM EDT on May 23, 2015
For whatever reason, FL Studio doesn't like these DLS types. If you have Awave Studio convert again to DLS level 2. This should solve it.
by TheUltimateKoopa at 4:04 PM EDT on May 23, 2015
Is anyone considering making a "soundtrack" with these?
by bobbyK at 8:15 PM EDT on May 23, 2015
@punk7890-2

thanks, it works now! :)
by dj4uk6cjm at 10:41 PM EDT on May 28, 2015
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.
by SubDrag at 3:13 AM EDT on May 30, 2015
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?
by dj4uk6cjm at 3:45 AM EDT on May 30, 2015
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.
by punk7890-2 at 8:56 AM EDT on May 30, 2015
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.
by dj4uk6cjm at 9:46 AM EDT on May 30, 2015
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?
by punk7890-2 at 9:55 AM EDT on May 30, 2015
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.
by dj4uk6cjm at 10:24 AM EDT on May 30, 2015
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.
by punk7890-2 at 11:19 AM EDT on May 30, 2015
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.
by dj4uk6cjm at 12:33 PM EDT on May 30, 2015
@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!
by punk7890-2 at 1:57 PM EDT on May 30, 2015
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.

edited 7:10 PM EDT May 30, 2015
by TheUltimateKoopa at 2:32 PM EDT on May 30, 2015
There are 21 MIDIs, not 20 *is totally being a smartass*
by dj4uk6cjm at 3:10 PM EDT on May 30, 2015
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.
by Tiberious at 6:52 PM EST on December 30, 2015
Mind the bump...

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.
by SubDrag at 3:18 PM EST on December 31, 2015
Hi Tiberious, Unfortunately probably not a great way, never really was able to handle that very well.
by Tiberious at 2:03 PM EST on January 1, 2016
Well, there's got to be some kind of data for it, right? Things like where a looped section starts, how many times to loop it and so on.

Can't those be written to MIDI with a special Controller event at the start and end of looped section points?


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source