A quick tool I put together to make sm64 music making easier. Keep in mind the code isn't the best due to putting this together in a short amount of time for personal use. There's also quite a few of bugs.
I don't have much time to be working on the project, but PRs are welcome!
Libraries/Projects used:
- A fork of m64lab that properly assigns instruments, and is bundled as a library. This is used to convert the midi to .m64
- FluidSynth and NFluidSynth - For preview mode
- DryWetMidi for midi parsing
- ObjectListView for displaying channels
Load a MIDI file, select the soundbank the final sound will be played on, and then select the proper instruments for each channel.
- Generated .m64 files don't loop at the moment
- ??? (Probably a lot more that I haven't thought of)
Please note that preview mode is NOT perfect, and the final result can sound much different in-game (due to N64 limits, converter errors, etc.)
To use Preview mode, you need a legally ripped N64 ROM, and the N64 Soundbank Tool from this repository. Select your ROM in the N64 Soundbank tool, load it, and then press the "Write All DLS Soundfont Banks" button. Browse to the folder where SM64Mus is, and select or create the "Soundbanks" folder. Export your soundbanks there.
Pressing play in SM64Mus with a MIDI loaded should now load and play the midi with the SM64 soundbank selected.
Changing instruments or soundbanks should refresh the preview live.
Build instructions coming soon
- Implement a m64 converter within the tool itself
- Check for overlapping notes & offer to move to a new channel