So I've been keeping this project quiet cause I wanted it to be a big
surprise, but I may as well let you in on the secret now.
Announcing: reMID.lv2!
https://github.com/ssj71/reMID.lv2
reMID.lv2 is a reboot of the codebase for the little known project
reMID (
http://gp2x.org/remid/). It is a midi implementation of a
SID6581/8580 chip famously designed into the commodore64 computer
using the reSID library. I've heard many requests for a chiptune
plugin, and thought this one would be pretty cool so I started the
long process of refactoring the code to make it appropriate for a
plugin last year. And now it works. It also works as a standalone jack
application.
True to the commodore64, this loads files to set the registers of the
chip and "instruments" defined in the file can be scripted to make
instrument programs that allow per-note arpeggiation, filter sweeps,
PWM, or whatever your mind can come up with. I selected this codebase
because of this powerful feature (and 'cause bitrot makes me sad).
Unlike the commodore64 though, this plugin has polyphony (configurable
up to 128) so its actually a bank of SID chips. You can now use all 3
oscillators for your sound design rather than to get triphony (is that
a real thing?).
The plugin UI only provides a dialog to load instrument files
(standalone must load through the command line options). The original
reMID was designed to allow a single instance to have different sounds
on each midi channel and program change, so you could just use a
sequencer and 1 reMID to do a whole chiptune track. That capability is
still there but I realize that its much more common workflow to have 1
plugin in each track with a single instrument so I made that possible.
You can work both ways. This architecture also allows drumkits to be
made with a different sound on each note.
For the more common latter workflow you just load the plugin and open
the file chooser to find the .conf file you want. If you decide to
edit it you'll have to use a text editor like vim or gedit or kate or
whatever. Open the instrument file in the editor, make your changes
and reload the instrument file in the plugin. Its a little weird, but
I hope its not a deal breaker for folks. I was able to make a couple
instruments pretty quickly last night by just copying one of the
existing files and tweaking some stuff. I hope this workflow will work
for you.
There is some documentation in the readme, and the default
instruments.conf file. Several instrument files provide examples as
well as presets to give you an idea of some sonic possibilities. The
full documentation for programming remains at the original project's
site:
http://gp2x.org/remid/inst_config.php
Please give it a whirl (it has very few dependencies and should be
easy to install, just follow the readme) and let me have some
feedback. New instruments would be a great contribution as well as any
bug reports or patches.
Some notes:
1. qtractor doesn't support file loading through a generic UI.
Therefore only the presets allow you to load different instruments.
One workaround is to edit the .ttl files to add your own presets with
your instrument files.
2. there is no DAW automation available. Exposing the parameters to
allow tweaking the registers in realtime and automation is on the
roadmap, but it's going to be a long way out. Some deep architectural
challenges require a lot of refactoring before that becomes feasible.
It would actually be much quicker if I just make a second plugin that
does not have the scripting capability, basically like an LV2 port of
the lmms SID plugin (
https://lmms.io/wiki/index.php?title=SID). If you
have an opinion on whether this scripting is worth keeping for the
version 2 reMID or not I'd like to hear your thoughts.
ENJOY!
_Spencer