I've been noodling on this synth idea for a long time, and it looks like a Teensy can do what I want to do:
View attachment 36313
An 8 voice polyphonic, 2-osc subtractive synth. Amp and Filter envelopes, 2 LFOs per voice, and one or two global LFOs. The first row of knobs would be rotary data entry knobs, with the 5th one "Control" having a push button. The "Control" would act as the main switch that changes the functions for the other 4 encoders.
I'm not sure where to start with the display, as my only requirements are that it can be wide enough to correspond to the encoder layout, and that it can accommodate 3 rows of text. Filter & Resonance are obvious, and A + B would be user-configured
I'd also like to know if there are any things to look out for regarding the data encoders before I purchase them to test with.
I'm also wondering if I should get the 4.1 if I want to be able to save presets, or can that be done with a 4.0?
Thanks for looking.
Hiya, that looks perfectly achievable with a teensy. Couple of things you asked about, that I thought I'd address, regarding the encoders and presets.
If you look at the "KY40" type encoders, they're a mechanical encoder, with a push button switch, and they will work with 3.3V from the teensy. They're cheap, very widely used and available on breakout boards, so very simple to wire up. Downside is, they're mechanical, as they are essentially a number of switches that the encoder library counts the pulses of, so there's a fixed number of "detents" per rotation, eg 12 or 24 depending on type. They can't be rotated that quickly, otherwise they may miss counts - "debouncing" the switches, and averaging, helps but slows down the readings of course. Using the integrated push button switch could maybe program a "coarse/fine" type control, of course. An alternative, which is smoother, more responsive, but higher cost, is optical encoders. I tend to use the 600 pulses per rotation ones on teensy, as they're a quadrature output, so can divide down by 4 and have 150 counts in just one rotation of the encoder - for MIDI, generally want 128, which works out nicely for a full travel. Downside of these encoders is that they're higher voltage, nominally 5-24V, so you can't wire them directly to a teensy 4.x, but I've found that (cheap) level shifter boards work ok. They're also physically larger - standard seems to be 39mm wide, so they're chunky, and deep, requiring enclosure size increases. I've recently tried some "mini" encoders that are 25mm wide, which seem to work well, too, which have the added bonus that the wiring comes out of the back, rather than the side of the encoder. Price wise, KY40 on a breakout come in at a couple of quid, the opticals at around £10. I'd recommend cheap encoders to begin with, get the project up and running, and use better components when its all working - the higher precision reading of the encoders will be easy to change in your code, after all.
As for displays, your options are numerous, but will to some extent be influenced by the physical size of encoders and wiring. The KY40 boards are roughly 17x15mm, and don't forget to allow clearance for the cabling, too
. Colour SPI displays such as the ili9341 ones are very well documented and pretty easy to use, come in a range of sizes and resolutions, and have established libraries for teensy. Tiresome that they're all in "inches", though. Some have a touch screen, some don't. Monochrome OLED displays work very nicely, but the smaller ones don't have mounting holes on the board, so they're awkward to mount directly to an enclosure. More er "traditional" looking 7 segment LEDs, controlled from a MAX7219, is probably not what you're looking for
Take a look at the PJRC teensy pages for a few notes on displays.
As for choosing between teensy 4.0 and 4.1, well, some of that is down to pin count. For example, for an ILI9341 with touch screen you'll need to use 9 pins, and each encoder after that will need 2 pins, so you can run out of pins quick
. For presets, the built-in SD card on the 4.1 is useful, but I've used cheap I2C eeprom for saving presets to before now, so both are useable.
I'm with you completely - one of the reasons I started this as a hobby in the first place was my frustration at touchscreens, menus, and lack of physical controls. I'm tactile, I like having buttons, knobs, switches and dials
. Hope your project goes well.
Paul.