Well that settles it then. I'll put up a link to a devblog when I start this thing. I'll probably write the whole shebang in C++ since that's what most of the libraries I've seen are written in; I'm more used to Linux as a dev environment, but hopefully anything I write can be ported to other platforms; that's mostly going to depend on the presence of POSIX libraries and the cross-platform-ness of sound output, file format playback, etc. libraries.
66 Jan 21, 2011 6:58 pm
Topic: "Universal" Tracker (45 replies, posted in Software & Plug-ins)
I've been rolling this idea around in my head as something to do on weekends in the spring.
Some platforms for which MML compilers exist don't really have any full-fledged trackers (like the Genesis), or if they exist they might have bugs.
What if we (and by we, I probably mean I) were to write a tracker that outputs MML and then uses PPMCK, XPMCK or some other MML compiler to output to the appropriate platform?
To elaborate a little bit: in my (admittedly inexperienced) view, the basic layout of a tracker is the same. Grid of cells, each cell has an instrument, a note, a volume and an effect. Trackers for different platforms differ based on the limitations of the hardware you're tracking for (number of channels, bit-width of fields, etc.) and on the capabilities of each channel (an instrument for the YM2612 has a lot more knobs to turn than one for the 2A03 for example).
In my mind you'd need two things: a general set of UI tools for tracking (making that cell grid with a custom number of columns, field widths, etc. configurable per platform), and a way to plug in instrument editors for each chip, and a system that would combine the data entered into the tracking cells with the values entered into the instrument editors to produce an MML file.
Benefits of this would potentially be pretty huge: only one UI to write and debug, could potentially even make the software cross-platform if the compiler itself was cross-platform, could support a ton of different chips with a single editor. Plus, using MML as an intermediate language makes doing sound output a lot easier: just link a library that plays back the sound file that the MML compiler outputs for the given platform.
Has this been attempted in the past? Would there be any interest in such a program if I were to try to develop it? Am I completely insane for even suggesting such a thing?