I’m neck deep in finals, but have been doing some research and feel the need to procrastinate a bit. Apologies if this is long and confusing. I’m a bit drained!
I’m basically a layman relative to the active posters here but have been inspired to start diving deeper.
Here’s what I know so far: compared to other computer/synth scenes, there’s almost nothing. I found a nice little hub page here (http://www.oplx.com/opl3.htm) that illustrates this. The HTML “OPL3 Programmer’s Guide” is probably where I’ll start doing deep reading and making notes. But that will be after finals.
Here are the basics for the uninitiated: the OPL3 has a max of 36 operators. The “default” is to have 18 2op channels. 4op mode just cannibalizes the operators from another channel for more complex AM/FM stuff. There is also a 5 channel “drum mode” that uses 6 operators. Adlib Tracker 2, for example, uses per-song variables to set drum mode on and off and “link” 2op channels to form 4op channels. Control is done by writing to various registers.
I was first attracted to this because I’ve had a lot of fun building drones and little sequences in Supercollider but craved the limitations that pushed me to get into music in the first place (I got into LSDJ and some SID emulation tools back in middle school). So far, though, it’s been a nightmare. I’m very much a post-MIDI musician and often take for granted how simple and flexible control messages are nowadays. These older, cheaper synth chips are marvelously efficient but almost completely alien to me.
I do have some idea of what I want to do now, though. I think I’m going to take a bit of a break from my DOS/OPL3 adventures and start playing with hardcoded SID songs in the Vice emulator for C64. I know any assembly language is a royal pain but I need to wrap my head around the whole register-writing method of synth programming.
Here’s the best doc I found. I mentioned it above, but this is a direct link: http://www.fit.vutbr.cz/~arnost/opl/opl3.html
Finally, I’d like to outline the first steps towards a vision or a goal that I have:
Trackers are great for when I want to write catchy little chiptunes or want a really tight sequence to bounce into another piece. But so far the only ones that don’t make me want to bang my head against a wall are the SID trackers that were built to conserve memory by storing parameters and parameter changes in master tables. GoatTracker2 is my go-to escape these days because I find it really cathartic to write notes on the left side of the screen and maintain an efficient pool of wave/pulse/filter commands. Adilb Tracker 2 provides some joy to me in that FM sounds unlike anything else, but building/loading instruments and controlling individual parameters with effects in the main tracker requires a lot more planning.
SO, what I really want is an OPL3 control utility that approaches scoring from a different angle. Rather than a score that uses instruments (of the LSDJ/AT2 variety where all parameters are defined first) and commands, I’d like to begin by building subroutines within tables. In one form, this idea could be a GoatTracker-esque OPL3 tracker, but I also would like something a little more low level that could be utilized in building demos or adding music to video games.
Maybe a bit niche, but I think it’s a worthy endeavor.