Tracker file formats

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Tracker file formats
by on (#16565)
First up, when looking for some way to create music or sounds for the NES, all I found on the main nesdev page was NT2. And while it seemed to be a pretty decent program overall, the sound would get choppy on me sometimes. I also thought the lack of copy/paste to be a shortcoming. Not to mention, the thing is no longer being developed anymore. But then I found FamiTracker by total accident, and started to wonder why it's not linked on the main nesdev page, since it seems to me to be a fairly good program, and is still in development apparently.

In either case, I'm wondering if there's references to the file formats generated by either. While the code FT can generate is surely good from what I've tried in an emulator, the code itself is a bit daunting to someone like me who has zero experience with the APU. I can't say I like having a large chunk of code in something I make without knowing what all it's doing, how long it's taking to execute, etc.

I've messed with audio tracker programs on the PC before, so making a little diddy wasn't all that hard. I'd just like to be able to learn how to write my own code to play it back, especially since from what I understand, the code generated by FT is primarily suited for music only. If I need to make a short little sound effect, I'd like to be able to see what it sounds like in the tracker, but be able to easily implement it in software without necessarily dumping it through the overhead of music player code (especially if music is already playing).

And just to be sure, are there any other trackers worth mentioning aside from these two? Also, if there's like a beginners tutorial/reference for APU programming, I'd be interested in checking that out, too!
Re: Tracker file formats
by on (#16567)
FyberOptic wrote:
In either case, I'm wondering if there's references to the file formats generated by either [Famitracker or NT2].

On a day when my ISP was down, I was bored enough to decode most of NT2's file format. See "Reverse Engineering of the NED File Format" under "misc relevant info" on the NT2 download page.

Quote:
While the code FT can generate is surely good from what I've tried in an emulator, the code itself is a bit daunting to someone like me who has zero experience with the APU. I can't say I like having a large chunk of code in something I make without knowing what all it's doing, how long it's taking to execute, etc.

How long it's taking to execute can be measured easily: just turn the monochrome bit on and off around the call to the playback code.

by on (#16573)
I never have any sound problems with NT2. Make sure you run it full-screen, and use the windows version.

The good thing with NT2 is that the replay code supports multiple songs. I don't think Famitracker does.

If you write your own sfx code (pretty much forget about writing SFX in a tracker for now), you can add sfx support to any music engine fairly easily by buffering all the APU register writes and overwriting them with your sfx APU writes. Matrixz did that with NT2 and Nessnake.

by on (#16579)
What would you suggest for developing sound effects then, if not in a tracker?

by on (#16591)
The code in the FT player is a little bad for other use than in NSFs at the moment, it need lots of RAM and takes longer time to run than NT2 or MCK.
But I'll take the time and rewrite everything from scratch sometime, since I've learned a lot from creating the first version (I was not used to the assembly language).
Multiple songs is not supported yet, but is on the plans in a later version.

If all you want is sound effects then perhaps the best way would be creating your own routines, as a complete music player is wasting too much ROM-space.