Which version of Teensy for a DIY synthesizer?

Status
Not open for further replies.

mojo

New member
Hello!

I am new to Teensy. I want to program a digital synthesizer for the Teensy board, but I'm not sure which version I should buy. Should I be using 3.6, 4.0, or 4.1? What are the pros and cons?

I want to control the synth using a midi controller and then output the audio from synth either to a speaker or to my computer.

Thanks for your help!

MJ
 
There are various Teensy synthesizer projects out there. Note, I don't have any experience with these boards, but I've seen other people talk about them.

Before going in, you probably need to figure out whether you just want to build a synthesizer where somebody has designed the board, or if you want to start from scratch and do everything yourself. Also, figure out what kind of budget you have, whether you will be programming it, whether you will be doing soldering, etc. It also might help to have an idea of the inputs and the outputs. I.e. are you wanting to hook up USB devices to the Teensy where the Teensy acts as a host, or would you just use normal MIDI serial connections to the Teensy.

In general, the Teensy 4.1 will give you the most options. It has the most memory, it has a SD card to hold sounds, and it has a lot of pins. Unlike the other Teensys, you can add extra memory to the 4.1 with two chips that can be soldered on.

The Teensy 4.0 has fewer pins. It runs the same processor as the Teensy 4.1, but it doesn't have the same memory options. You can add a SD card to the Teensy 4.0, but it typically is easier to go with the Teensy 4.1 where the SD card is already part of the product.

The Teensy 3.6 is the previous generation of processor. It is a little bit slower, and it has a bit less memory. However, given the Teensy 3.6 has been around for awhile, you might be able to to find things that are designed for the 3.6 compared to the 4.1. If you are starting out from scratch, the Teensy 4.1 is cheaper than the 3.6.

The Teensy 3.5 and 3.2 are other processors in the line. You can do a lot of things with them, but you may run into limits of memory or processor speed, which could limit the number of simultaneous voices put out. A lot of synthesizers were built with the Teensy 3.2 and the Audio Shield.

Note, while the Teensy 3.x and 4.x lines have a lot of commonality, for things like sound, etc. they have different pinouts. So for example, there are two versions of the audio board, one targeting the 3.x processors (revision C) and the other targeting the 4.x processors (revision D).

Some links I found with a google search:

Note, as I said, I have no experience with any of these boards (or synthesizers in general). Also, I will be offline for a few days.
 
Get a 4.1 because you'll want the power for band-limited waveforms and you can go mad without hitting a limit too soon. Plus it has USB Host so you can connect a MIDI Class Compliant controller straight to it. You'll be limited to connecting 3.3V peripherals, but it's no problem.
 
I have built a few Teensy synths. The 4.0 and 4.1 boards have the most power, and are my first choice for anything that will be controlled over MIDI only. I have two MIDI only 6 voice poly synths running simultaneously in a T4.1 with a bit of power left over for the UI which is still a work in progress.

If CV / gate control over pitch is needed for a Eurorack module, or to have compatibility with a vintage analog 1V/oct synth, the 3.X series can do accurate CV to pitch with it's internal A/D converters. The 4.X converters are marginal for CV to pitch, especially when other error sources are considered. I have a T3.6 in my "box full of pots" analog emulation mono synth.
 
in my current project I'm using two teensy's a 3.6 and a 4.0, the 3.6 is set up to handle all midi inputs - 5 pin midi via pins 0&1 on the teensy 3.6, then the usb hub for a midimix controller, which saves me the hassle of building an interface from scratch. The 3.6 also handles driving a 3.2 inch tft screen with touch input, ADC inputs for modulation etc, DAC outputs for sending modulation signals, and any rotary controllers etc. This leaves the teensy 4.0 free to handle all the sound generation without being slowed down by all the peripheral operations causing bottlenecks. Real time screen updating can be especially bad for interrupting the audio synthesis. The 3.6 is very good at ADC/DAC operations, better than the 4x processors, and the 4.0 is way more powerful for the actual donkey work of generating the sound.

Edited to add: the teensy audio board is attached to the 4.0 of course.
 
Last edited:
I am currently building something similar, so maybe you can save me some experimentation time. How are you doing the Teensy to Teensy communication. My last multi processor design was in the 1990's using MC68HC11 chips and I used SPI. Here SPI, I2C, and standard serial ports are all viable options. Have you, or anybody else out there tried to pass audio from one Teensy to another in the digital domain?

When I discovered the Teensy and the audio library several years ago the first thing I did was to make a simple two "oscillator" 1V/oct synth with a T3.2. A year or so later I made "Blue" a four oscillator 1V/oct synth with another T3.2, where I found the limits of the Teensy. I got some T3.5's and T3.6's from the Kickstarter build, and made a new T3.6 synth engine for Blue. It took some tweaking but it can "play nice" with my Behringer Model D and Deepmind. The T3.2, 3.5 and 3.6 all have good enough A/D converters for accurate pitch from a keyboard gate / CV out. The T4.X does not. The A/D can be used for pitch bend, modulation, or envelope tracking, but not absolute pitch.

When the Teensy 4.1 came out PJRC sent me one, so it was time for another synth build. This one was small, portable and battery operated, played by MIDI only, no gate / CV. It's mission was to find out how many concurrent synths I can run in a T4.1. As you stated having the T4 read 10 encoders and a touch screen, update the screen, and make music all at the same time can be a limiting factor, so I am making something new.

Blue separated the UI (49 pots and 4 encoders) from the synth engine, so that the synth engine can be swapped out easily, as it plugs into the UI board. I am doing the same on the new synth. I'm building the UI on perfboard now. It has 16 slide pots, a 3.2 inch touch screen, several encoders and rotary pots, and lots of blinky light stuff. I have not yet decided whether to put it's T3.6 on the synth engine, or on the panel itself, there are advantages to each approach. The synth engine will be physically large enough for multiple Teensys, a Tsunami WAV player, a Daisy Seed, an FX board or two, and a discreet built Moog ladder filter (because nothing else sounds just like it).

P3990353_x.jpg P3990156_x.jpg
 
I am currently building something similar, so maybe you can save me some experimentation time. How are you doing the Teensy to Teensy communication. My last multi processor design was in the 1990's using MC68HC11 chips and I used SPI. Here SPI, I2C, and standard serial ports are all viable options. Have you, or anybody else out there tried to pass audio from one Teensy to another in the digital domain?

When I discovered the Teensy and the audio library several years ago the first thing I did was to make a simple two "oscillator" 1V/oct synth with a T3.2. A year or so later I made "Blue" a four oscillator 1V/oct synth with another T3.2, where I found the limits of the Teensy. I got some T3.5's and T3.6's from the Kickstarter build, and made a new T3.6 synth engine for Blue. It took some tweaking but it can "play nice" with my Behringer Model D and Deepmind. The T3.2, 3.5 and 3.6 all have good enough A/D converters for accurate pitch from a keyboard gate / CV out. The T4.X does not. The A/D can be used for pitch bend, modulation, or envelope tracking, but not absolute pitch.

When the Teensy 4.1 came out PJRC sent me one, so it was time for another synth build. This one was small, portable and battery operated, played by MIDI only, no gate / CV. It's mission was to find out how many concurrent synths I can run in a T4.1. As you stated having the T4 read 10 encoders and a touch screen, update the screen, and make music all at the same time can be a limiting factor, so I am making something new.

Blue separated the UI (49 pots and 4 encoders) from the synth engine, so that the synth engine can be swapped out easily, as it plugs into the UI board. I am doing the same on the new synth. I'm building the UI on perfboard now. It has 16 slide pots, a 3.2 inch touch screen, several encoders and rotary pots, and lots of blinky light stuff. I have not yet decided whether to put it's T3.6 on the synth engine, or on the panel itself, there are advantages to each approach. The synth engine will be physically large enough for multiple Teensys, a Tsunami WAV player, a Daisy Seed, an FX board or two, and a discreet built Moog ladder filter (because nothing else sounds just like it).

View attachment 24935 View attachment 24936

For the moment, for convenience, I'm just using direct midi transmitted via the tx/rx pins, but will be looking into a more efficient method as I go along. I'm still at the early stages with this one so want to refine the control methods first. I believe that if you want to transmit audio (which my project does not), then 12s is the best method, but someone else might correct me on that. I do think it would be cool if someone could design an i2s based system that could be used to transmit digital audio directly from one chip to another, perhaps using standardised 2.5mm stereo jack plugs. we could then patch modular digital synths together without having to enter the analog domain until we need to. and synth designers like us could patch digital audio data between our different modules just like they do in eurorack. A sort of digital version of eurorack!

I'm using an AKAI MIDImix as my control panel, it looks good and has a nice range of knobs, illuminated switches and sliders for about £75, it also saves me a lot of work lol. I posted the basic code to interface via the USB hub here: MdiMix code. My concept at the moment is to design a master controller with touch screen and some encoders, which will be going into a eurorack panel, then the midimix will plug into the eurorack panel for extended control (saving all the menu diving required fro a four encoder panel). This control unit can then send control code to the various teensy 4.0 synths/ sequencers/effects units that can be installed alongside it. The first synth unit (which you can see just below the screen is hosted in a teensy 4.0 with audio board, no dials or buttons etc, as they are in the control unit, this makes adding additional synth modules a lot cheaper for me. In the photo below, you can see the tft module with added rotary encoders, the small pcb below the tft screen is the teensy 4.0 (not connected here) that generates the sound, and to the side the midimix, which will control all the synth parameters when plugged into the 3.6 usb host.

I'm using a custom synth engine, that allows waveforms to be literally drawn in via the touch screen. in the closeup you can see three waveforms, the yellow waveform is the starting waveform and the green is the ending waveform, both manually drawn in. The third, red wave form is extracted from the other two waveforms as you morph from wave 1 to wave2, this is the waveform that appears at the output. It gives an effect similar to a wavetable, but wit more flexibility when you start with the modulations, because the waveform is generated on the fly and not simply read from a preset sample list. :)

midimix.jpg

display module.jpg
 
Status
Not open for further replies.
Back
Top