Jump to content

OoT InstEd (Instrument Editor)


DeathBasket
 Share

Recommended Posts

This might be of interest to anybody who is still interested in importing custom music, etc.

 

Features:

  • Instrument set builder
  • MIDI sequence converter
  • Instrument set inserter
  • Sequence inserter
  • Sample inserter
  • Instrument ripper
  • More
I don't do a lot of testing so beware of crashes and let me know if/when you find errors.

 

Other information:

https://sites.google...itor-oot-insted

 

Download:

https://sites.google.com/site/deathbasketslair/files/InstEd%20r6.zip?attredirects=0&d=1

  • Like 5
Link to comment
Share on other sites

Progress:

The program is now outputting files that are basically a text version of the format Zelda uses. Now I just need to write the part that will convert those to the actual data, which shouldn't be too difficult so I'm hoping to have it done and be testing it out at some point tomorrow. Seems to be working well so far, I tried a few random MIDI files I found and the only problems seem to arise from files that are using chords, which shouldn't be a problem in files designed for use with the game anyway.

I will post some examples of how the sequences are sounding in-game once I've finished the converter, the next release will include it and will come shortly after once I have the sequence inserter finished.

Link to comment
Share on other sites

The new version is now up (link in first post updated), the sequence converter and inserter are included in the program now. There shouldn't be too many problems (none that I know of yet); pitch bend may still be a little out though, I don't remember what OoT's range is so I just guessed.

 

I made this using this tool to create the instrument set and the sequence:

 

I plan to add some more instruments to the tool now when I can be bothered, and maybe add the sample inserter if I decide it really has a use.

Link to comment
Share on other sites

Thanks, I didn't realise the link had not updated.

 

Anyway, I've put a new version up now with a few more features - you can now rip instrument/sample data from OoT, MM and SM64 and I also added a sample inserter. This makes adding instruments so much quicker and easier. Percussion sets (instrument number 127) are not currently supported but I will add that at some point in the future.

 

Edit: New version, I found and fixed two bugs with the sequence builder aspect.

Link to comment
Share on other sites

Tool has been updated again (now r5). This time I added most (all?) of the remaining instruments from OoT, including percussion sets.

 

I don't really plan to add anything else to this so you can take this to be the first complete release in terms of features, unless anybody has any suggestions for things they want to see added that are doable. There's bound to be some bugs here and there so if you find any be sure to post them and I'll see what I can do to get them fixed.

 

By the way, if anybody knows what that instrument is that I've labelled 'What' (it's used in the Goron City music), let me know and I'll give it a proper name.

Link to comment
Share on other sites

mml2m64 is beyond irrelevant. As long as you can produce a MIDI file suitable for Zelda* (see below) then this tool has everything you need to be able to convert and import it into the game.

 

* To make MIDI files that will work well in Zelda, follow these guidelines:

  • monophonic channels
  • no notes shorter than a hemidemisemiquaver except semihemidemisemiquaver triplets since those are the shortest length available (length of 1)
  • write your MIDI files with instruments available in Ocarina of Time
  • don't increase pitch bend range beyond 12 semitones, that is the highest range supported in Zelda as far as I know.
  • make sure continuous control changes (ex. increasing/decreasing volume) do not happen on time intervals smaller than Zelda can use (see second point)
The reason semihemidemisemiquavers cannot be used when their triplet form can (you might have noticed) is because they would have a length of 1.5, but length must be an integer, so after rounding the sequence would end up being inaccurate with things going slightly out of time.
Link to comment
Share on other sites

Sure.

 

The easiest way is to use the instrument ripper to get the instrument you want from one of the supported games (see readme). That'll output a folder with a name like 'set03inst01' for example. You can rename this if you want, but you must also rename the instrument data file in that folder to the same name as the folder, the program relies on the names being the same.

 

To import the instrument, you need to create a folder in the program's directory named 'user', and copy your instrument's folder there, so you'd have something like '...insteduserset03inst01'. Now when you use the program, following this example you would type 'set03inst01' in the user defined instrument edit box and that would add your instrument's data to the set.

 

For instruments that do not come from Ocarina of Time, you will also need to import the sample files that the instrument ripper would have spat out. You can do this using the sample inserter option, which will tell you what the sample's new pointer will be after adding it to Audiotable. Make sure you write it down because you will need it. Open up the instrument's data file ex. 'set03inst01.i' in a hex editor and search for the lower three bytes of the sample's original address, which is in the sample file's name ex. if it was 'sample00123450', you would search 0x123450 in the hex editor. The reason you only search the lower three bytes is because some samples have the uppermost byte set to some unknown value, you can just change that to zero and then the rest to your new pointer. Once you have inserted the sample and fixed its pointer you can add the instrument to your set the same way as I described above. Note: you need to fix the CRC after using the sample inserter.

 

The method for percussion sets (instrument 127) is basically the same, but you must type the name in the 'user defined percussion set' edit box instead. As far as I know only one percussion type instrument can be used at a time.

 

If you want me to provide a tutorial video or more information, let me know and I will.

 

If you want to import samples from games that the instrument ripper doesn't support, that is a bit more complicated and I don't really want to do an in-depth explanation unless anyone really needs it.

Link to comment
Share on other sites

Thanks for the answer Deathbasket. I've only made custom music for Super Mario World before, and that was before the use of custom samples became widespread, so my knowledge of these things was both lacking and outdated. Anyway, that means no more reasons to procrastinate!

Link to comment
Share on other sites

Upon using a MIDI I have, using the same process I did with the other one that worked, I get this when I build the sequence:

 

 

Sequence header written, size 0x002D

Writing channel 0 at 0x0000002D

Converting ch1_koto.txt

Converting track 0

Done, channel size = 0x00000530

Writing channel 1 at 0x0000055D

Converting ch2_choir.txt

Converting track 0

Done, channel size = 0x000002D8

Writing channel 2 at 0x00000835

Converting ch3_choir.txt

Converting track 0

Done, channel size = 0x0000024C

Writing channel 3 at 0x00000A81

Converting ch4_drum.txt

Converting track 0

Done, channel size = 0x0000059E

Writing channel 4 at 0x0000101F

Converting ch5_guitar.txt

Converting track 0

Done, channel size = 0x0000023F

Writing channel 5 at 0x0000125E

Converting ch6_chime.txt

Converting track 0

Done, channel size = 0x00000FBC

Writing channel 6 at 0x0000221A

Converting ch7_chime.txt

Converting track 0

Done, channel size = 0x000008B4

Writing channel 7 at 0x00002ACE

Converting ch8_choir.txt

Converting track 0

Done, channel size = 0x000002C3

Finalising...

Sequence size = 0x00002D91

Done!

 

Upon loading in game I found that it didn't work. I'm only guessing, but I'm assuming it has something to do with "Converting track 0" multiple times, as well as it telling me that "Track 0 contains no usable data" at some point. Any help would be appreciated.

Link to comment
Share on other sites

Track 0 in the MIDI file contained no usable data since it is usually used only for tempo and text messages. The track 0 mentioned here is referring to the first 'note layer' found in each channel.

 

If you could upload the files I will take a look and see if I can find any errors.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.