MIDI tips?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
MIDI tips?
by on (#1187)
If I were to go about sequencing any NES MIDI's, what would be ideal for instrumentation and tempo and such?

So far I've found satisfying results using the sawtooth lead for the NES square waves, and the square lead for the NES triangle waves (weird, yes). Of course that doesn't leave any room to take phasing into account, either.

And any ideas in particular for being obsessive about it and basically syncing the MIDI to 60Hz? What would be a good tempo for, say, hooking up 32nd notes to each frame? Or is it a bad idea? Just trying to sequenced some sorely missing FF2 MIDI's, and it seems that the clever uses on the NES might demand a similar MIDI technique to properly emulate the sound.

by on (#1192)
I can see how a 1/4 or 1/8 duty square wave would sound like a sawtooth wave; it adds the even harmonics that are lacking in the square wave. Likewise, a triangle wave is equivalent to a square wave with an integral applied, and an integral just boosts the low frequencies.

But to many listeners, MIDI isn't supposed to represent exact waveforms of 8-bit systems on every possible sound card. A trick with square waves is to try to think of what instruments the composer had in mind, based on the duty cycle and especially the envelope, such as a trumpet, a violin, a flute, a piano, a guitar, etc. Listen to various tracks in the NSF of Vice: Project Doom for an example of something obviously trying to sound like a lead guitar. It'll still sound reasonably authentic on an old Sound Blaster or other Adlib card.

by on (#1197)
Yeah, I'm aware of that, but it's kinda what I was shying away from (because a trumpet sound could be rather smooth on my system and really brassy on yours, and, well, it's not even close to the sound the NES makes anyway!). Considering that most of them Winders systems pretty much have the same sounds for all purposes these days....

...yeah. I mean, I could come up with an orchestrated version, but I'd rather have the bloopy MIDI; in some cases chiptunes have become an artform all of their own and really don't imitate any other instrument. And NSF emulation isn't exactly where I'd like it to be every time I use Linux anyways. So, uh, bloopy good in this case, because that's what I'm aiming for. Especially 'cause my dad threw out the machine with the SB on it (and man do I love some good FM synth ;_; ).

by on (#1200)
BRP wrote:
...yeah. I mean, I could come up with an orchestrated version, but I'd rather have the bloopy MIDI; in some cases chiptunes have become an artform all of their own and really don't imitate any other instrument.

If your machine can play MIDIs, then either it has a working wave-out or it has an Adlib chip. Install an NSF player if you have wave-out, or use MIDIs through the Adlib chip if it has FM-out.

Quote:
And NSF emulation isn't exactly where I'd like it to be every time I use Linux anyways.

What does this mean? Can't you just put an NSF player and NSFs on a CD-R or USB stick? Or do you "use Linux" on a web server, meaning that you are trying to get a chiptune as the background music on a web page, where you can't control the playback software on the client unless you somehow get your hands on an NSF player written in the Java language?

by on (#1201)
XD no....

What I'm saying is that the NSF players out there for Linux right now... well... suck. Heck, Linux does seem to get very little attention in the emulation scene, but, I mean, I just wanna make a MIDI and make it sound relatively authentic. It's not like everyone's going to want to use an NSF player; most people out there aren't even INTERESTED. They just head to vgmusic.com and look for the MIDI there. And sometimes there isn't a MIDI there! But to be honest my problem is:

I'd like the MIDI to sound right. Any ideas?

by on (#1202)
BRP wrote:
What I'm saying is that the NSF players out there for Linux right now... well... suck.

Are you referring to the fact that Festalon was discontinued? It has no web page, but its SourceForge project page lists compatibility with BSD and Linux in addition to Windows. Heck, it's in Debian.

Quote:
I just wanna make a MIDI and make it sound relatively authentic.

Then build or buy an external MIDI instrument and tell the OS to output on the MIDI port instead of through its own synthesizer. Use system-exclusive messages to define instruments that sound just like those of the NES games in question. Or make your own sound fonts for a PC based synthesizer. Or have you made the choice to restrict yourself to General MIDI, the set of instrument numbers that the MIDI synthesizer included with most PC operating systems supports?

by on (#1204)
That's the thing about MIDI, it's good if you have hardware, but really lousy with PC's default software setup. I like using GXSCC for a MIDI player myself, usually on Konami SCC setting, but it has a Famicom setting too.

As a musician, I'd be too annoyed knowing a song can be written sounding one way, then sound totally different on someone else's PC. Maybe not a much of an issue for cover songs. But that's why I think XM/MOD type formats are better for this use. http://www.skale.org/

For the tempo, in a tracker the default BPM of 125 is almost always right for NES. But tempo and BPM are seperate in a tracker, so I'm not sure how that would convert to whatever speed setting MIDI uses for various tempos.

by on (#1205)
Yes, I really am trying to restrict myself to general MIDI, if I haven't made that clear. Catering to what the general public has (namely the Windows default gm.dls). If I were going for exactitude I'd write my own darn NSF player even if it took me years! Meaning, yes, I'd throw out any thought of MOD's or anything.

All I really want is to know if there are any recommendations for approximating good NES sound in a MIDI that your average Joe Schmoe from the darkest corner of the Internet can just open up his spyware-ridden IE6, click the link, and listen to it in his WMP. He's SO not going to have hardware, but it'll more or less sound the same way it does on my XP machines. And it'll sound a bazillion times better if I open it up with timidity++, or used an NES soundfont. But that's not what I want, I want to make a "normal" MIDI for the general public.

(Incidentally, I don't like Debian and didn't find Festalon to my liking. But that is beside the point. Although a Gentoo ebuild would be nice. And say, anyone notice that the SF pages for both Festalon and FCE Ultra are gone? No CVS or anything, even!)

by on (#1206)
Memblers wrote:
For the tempo, in a tracker the default BPM of 125 is almost always right for NES.

125 in PAL, 150 in NTSC. The NT2 replay code emulates the PAL rate on NTSC, but it distorts arpeggios while it's at it.