The Basic Spec
If you want to make sense of the notes that follow you need to firstly read Matt Bradshaw’s excellent and comprehensive PolyMod project details as my writings will assume a basic understanding of that project. If you have read the PolyMod project details and still don’t understand my ramblings I am happy to respond to questions.
An important part of Matt’s initial design philosophy was to produce a fully integrated musical instrument with its own keyboard. As my wife has recently bought me a MIDI keyboard for a birthday present I decided straight away that mine would be a MIDI synth with a separate keyboard. This made my life easier (about the only change I have made that has!), as I could forget about that aspect of the build and not have the extra processing overhead of servicing all the keyboard multiplexers.
The next thing was that I wanted to support more modules. The original PolyMod only had a capacity of 8 modules, which clearly wasn’t enough for what I had in mind. However, talking to Matt at that stage it wasn’t clear how many modules the Teensy 3.6 could support. Looking at the software I was pretty confident that I could do a few tweaks to improve the efficiency of the original code which Matt hadn’t had time to optimise because of the constraints of the Hackaday Prize timetable and that 16 modules looked like an achievable target. A feature of the PolyMod is that the configuration of the synth is varied by plugging 3.5mm patch cables between modules, much like a conventional analogue synth. Because Matt wanted to replicate the full analogue synth experience as closely as possible he made these connections hot-switchable by constantly monitoring the jack sockets so that any reconfiguration is instantly spotted by the software and implemented. It looked to me like I would be paying quite a penalty in processing load to provide a feature that I wasn’t convinced I really needed, made worse by the fact that doubling the number of modules would quadruple the processing required to support this feature. So, I decided I would delete the hot-switching facility and instead do my reconfiguration off-line and then have a button I would press to reconfigure. Suddenly I was starting to feel I could support more than 16 modules and Matt was saying he thought 64 was on the cards based on some other ideas he had been working on. But by then I had ordered the bits to build a 16 module system, so decided to stick with that. I had also switched from using 4051 multiplexers (1 x 8) to 4052 multiplexers (2 x 4) to halve the amount of multiplexer switching I need to do at the expense of using more Teensy pins. These imply 16 modules (1 x 4 x 4) for a 2-bank multiplexer setup. However, I have an idea for how I can stretch this limit which I hope will yield me the equivalent of a 20-22 module system within my 16 module chassis.