Page 1 of 1

Looking For MIDI to NES/NSF Converter

Posted: Thu Jul 28, 2011 12:46 am
by Doommaster1994
Hey there,
I was looking for a converter where you can convert MIDI files onto the NES or to an NSF files. I know a lot of US programmers used converted MIDI files for their NES music so I was just seeing if anybody had one. I could really use it. There are some things you can do in MIDI that can't be done in Famitracker, Nerdtracker, MML, etc. so that's why I was wondering. I am aware that Famitracker has an 'Import MIDI' option but I've tried it and it sucks.

Posted: Thu Jul 28, 2011 2:34 am
by Memblers
I haven't seen one (unless I missed it), but I've seen MIDI->MML converters before. Seems like a big problem (for NSF efficiency) is that MIDI is just a live stream of data, there's no way to define repeating patterns and stuff like that. A MIDI file's header specifies tempo in form of ticks per quarter-note, and that's all the timing info there is. It also doesn't specify what audio channel to use - the 'MIDI channels' allow several notes per channel. Since the MIDI data ends up needing to be so specialized for NES, it sorta defeats the purpose of MIDI.

I haven't tried Famitrackers import MIDI, but it's hard to imagine how it could work well. Years ago I dabbled with MIDI to XM converters, I remember it kinda worked OK but you can forget about doing any useful amount of editing because it would turn into an extremely high-tempo song with huge patterns that of course were entirely out of alignment with the measures in the music. Even worse was that every instrument pretty much used every channel randomly. I don't know if there was a better converter, but if there ever was, it'd be a good example of how to do it well on an NES tracker.

So if there's not a good converter, maybe it'll be easier if you say what effects and things you had in mind that are easier to do in MIDI. The big one for me is something like triplets - they're impossible in Nerdtracker, just barely doable in Famitracker, and easy in MML.

Posted: Thu Jul 28, 2011 6:00 am
by Doommaster1994
Yeah, I talked to David Warhol who owns Realtime Associates and he said his MIDI converter took MIDI commands and converted them to NES commands. None of those programmers seem to have those converters anymore. If you listen to Rollerblade Racer, that's definitely a MIDI file that was converted. (Gil ripped the NSF but it will only play in Nintendulator because it's NSF2). Doug Brandon told me he used CuBase for Atari ST, Russell Ginns said he used Master Tracks Pro, and the legendary C64 musician Mark Cooksey said that for his NES music he wrote MIDI files on C-Lab Notator for the Atari ST and converted them to the NES and he told me that he had to tweak the NES versions a little because the converter wasn't the best.

Re: Looking For MIDI to NES/NSF Converter

Posted: Thu Jul 28, 2011 6:06 am
by tepples
Doommaster1994 wrote:There are some things you can do in MIDI that can't be done in Famitracker, Nerdtracker, MML, etc.

There are a few ways to do triplets in a tune that uses primarily eighth and 16th notes.* One is XM effect EDx (S3M effect SDx; FT effect G0x). True, NT2 doesn't support this. Another way that I've heard in both FaceBall 2000 and Zoop is to set SPEED to 3, producing 32nd note rows.

I've seen one MIDI to XM converter that would actually use the MIDI file's tempo track to determine the target XM files's tempo and then use 32nd note rows.

* American English follows German terminology, which treats notes as fractions of a whole note (ronde/semibreve).

Posted: Thu Jul 28, 2011 6:14 am
by Shiru

I should say, I'm pretty sure that using MIDI convertors to make music for NES is a bad idea. It does not provide level of control over sound features found in trackers or MML, it is a whole higher abstraction level, and you just can't make music with high tech quality without going to lower level.

Posted: Thu Jul 28, 2011 7:11 am
by Dwedit
I once made a tool that converted MIDI files to Famitracker files, never released it though.

Posted: Thu Jul 28, 2011 8:07 am
by Doommaster1994
Thanks guys! Especially for MIDIMML.

In response to tepples, crazy stuff like 64th note triplets for example or even 128th notes. I use those in my music. Not for arpeggios but sometimes for short bass sounds. I'm crazy when it comes to composing, some may call me a mad scientist lol.

In response to Dwedit, if you still have it, I am interested in it. If you don't feel comfortable letting me have it, I understand.

EDIT: I recently tried midimml and it had a problem. Whenever I try and put a MIDI in there it says 'Error: couldn't read (midiname.mid)
unhandled exception: MML'
Anybody know a way around this?

Posted: Thu Jul 28, 2011 8:22 am
by Shiru
Maybe wrong MIDI file type? Docs says it supports type 1.

Posted: Thu Jul 28, 2011 9:10 am
by Doommaster1994
Yeah it's a type 1 MIDI file. There was even a MIDI file that came with the program and it still didn't work.

Posted: Thu Jul 28, 2011 9:24 am
by Hamtaro126
If you need a great MIDI2MML utility: 3ML is the answer!

It is an perfect MIDI to MML converter!

Posted: Thu Jul 28, 2011 9:50 am
by Dwedit
Here's my tool, but it's not very user friendly yet.

Load a blank FTM file (it needs to have something loaded first)
Import a MIDI file
Pick which track you want loaded in, and select which FTM channel it corresponds to.
Select which speed reduction level you want it imported at (in rows per tick). I usually see midi files with 24 ticks per quarter note, for 96 ticks per measure. A value of 6 makes it fine-resolution enough for up to 16th notes, a value of 4 should be used if there are triplets of eights, etc.
Then you pick the number of rows per pattern frame.

Then repeat for the other midi channels you want to import, make sure you use the same numbers every time.

Then save the FTM file.

Posted: Thu Jul 28, 2011 12:44 pm
by Doommaster1994
Dwedit - I tried your program but it did not work.
Hamtaro126 - It's great but my MML won't export to an NSF in MCK/MLL. The program 3ML is in Japanese not English so I can't really use it.

Posted: Thu Jul 28, 2011 1:42 pm
by Dwedit
I'm guessing you need .NET 3.5?

Posted: Thu Jul 28, 2011 7:23 pm
by CKY-2K/Clay Man
famitracker already has a midi importing feature doesn't it? It's not that good but it does have one.

Posted: Thu Jul 28, 2011 7:51 pm
by Doommaster1994
CKY-2K/Clay Man wrote:famitracker already has a midi importing feature doesn't it? It's not that good but it does have one.
Yeah but it sucks. I've tried importing my MIDIs in there. Each channel only plays one note and not multiple notes in one track.
Also, would anybody happen to know how to write N106 on MCK/MML? I looked desperately and I couldn't find it.