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.