Let’s be honest, previous attempt at an OP-Z plugin thingy was a failure,
Main drawbacks being the boot times, all the bugs and overhead that come with running
supercollider on such a small machine.
You just don’t need Linux if you want to run a medium complexity synth.
But most importantly it kinda failed at being fun.
With teensy 3.6 & teensy audio board, the boot times are around a second or less, it’s faster than the OP-Z! The CPU usage is less on teensy than on Raspberry Pi Zero for the same building blocks (oscilators and other effects). Teensy audio library is a really great tool, synths that can rival the OP-Z’s built-in ones can be easily built using the basic building blocks.
The first iteration it’s a simple hackable synth, maybe also a sampler in the future. A small semi-modular portable plugin like this one could be a bit more fun but that’s for the next time.
The natural evolution of the previous design:
The micro-modular was inspired by the o-coast and the kastl and of course the full size modular systems. While some of those run mostly analog circuitry in their signal paths, teensy can’t do that, it’s just an emulation of one.
Initially, things had to be simple, connections could not be stackable, one output in only in one input, The micro-modular is based on teensy 3.6 as its main board and an Arduino Nano as a slave expansion board, In hindsight, I should have ditched the Arduino and some “modules” on the board, for example, FX section should not be on board.
Also, Arduino nano is not compatible with the teensy board, Arduino runs on 5v and it could fry the teensy board, it had to be converted to 3.3V, there are tutorials for this so I’m not gonna cover this here.
Next step is the teensy firmware, teensy audio tool is good for medium complexity synth, but I needed:
- 4 oscillators with FM, PM and PW modulation
- 2 LFOs with PW modulation
- A VCF
- A pair of VCAs
- Two envelopes generators and a few utilities like mixers and splitters
all of those only for one voice, the synth would have 4 at least.
One major drawback of the teensy audio framework is that
AudioConnection objects can’t be created at the runtime so every possible connection has to be made beforehand and it looks like a total mess.
Once I was done with the firmware CPU and memory usage was above 80% with a power consumption of 140 mA from the OP-Z (when driving the headset at full power) that’s above the advertised 100 mA max that OP-Z could output, so I had to underclock it a bit and remove extra FX and LEDs, even then I could not get it below 120 mA without removing a synth voice so I left it at 120 mA.
The end result is a close enough modular emulation that certainly provides a lot more sound variety than any built-in op-z synth engine.
- OP-Z current limit at ~140 mA
- Decreased battery life
- Not as flexible as a modular
- Internal audio clipping
- Not tightly integrated with the OP-Z
- Massive code base
Whats the point
Given that your phone has more processing power and always in your pocket what’s the point in trying to create another portable device that can do only one thing, honestly I dont know, I just felt like toying around with novelty hardware creation, I think people are drawn to it even if its limited to only one function like the demand for pocket operators and other toy like synths shows or maybe its the tactile interface, feel different than smartphone.