[posted] Dirtywave M8 - 8 track Portable synthesizer, sampler, and sequencer



Powered by the Teensy 4.0 the M8 is a portable handheld tracker style sequencer featuring 8 stereo tracks with full MIDI support. Instruments can be configured to play samples (8/16/24bit mono or stereo wav playback with loop modes), 4op 12 algorithm FM synthesis, mutable instrument braids engine, 8 bit wavetable based synthesis, and MIDI output. All synthesis engines also have a multimode filter, gain staging effects, 2 envelopes and LFO. There is also a global Reverb, chorus, and delay, as well as a main output limiter, audio input routing and monitoring (USB and analog), sampling, sample editing, and song rendering/resampling. Along side USB MIDI and Audio, the display code uses a SLIP serial protocol for a remote/virtual display on desktop.


This project has been almost 2 years of development and over the time spent on it has transitioned from side project to product. Originally I was working on an old sequencer I made using the Teensy 3 back in 2013, dusted it off with a Teensy 4.0 and everything got out of hand very quickly. The effects algorithms and all synthesis engines with the exception of Braids are all custom, the Audio library is utilized for the audio stream, but on the wonderful float variant. This project is currently not open-source but that is plan long-term. A possibly interesting project development history can be found on my Instagram as a story highlight at the top. As well user posts/videos can be found on Twitter etc with the tag #m8tracker

Very impressive, saw this on Synthtopia. The hardware is very nice. Because we're on PJRC, I'm curious about what's under the front panel. How is the Teensy managing CPU and RAM-wise? You must be pushing it near the limit. I'll have to take a look at SLIP too.
Very very close to within the limits of the Teensy. No external ram- turned out to be too slow to be useful in this application.
PCB just houses Teensy, DAC, I2C 8bit GPIO expander for the buttons, battery charge manager/supervisor, speaker amp. Lots of close work on the DAC signal path and SD card traces.

One thing I did find as possibly useful, with properly designed SD card traces and a ~30ohm series resistor on the SD clock, I can reliably "overclock" the SD card speed up to 150mhz- works on most sd cards and was reliable across the 100 beta units that went out. In the end the main issue is still seek time, but with well designed caching that is not in the audio stream, 8 stereo wav files playing in any direction at 16bit 44.1Khz stereo is easily possible- with or without "over clocking", as long as the SD card is decent at random reads.

Cards that I have found acceptable during testing (I have tested about 30 modern cards):
Sandisk Ultra 32GB, Kingston Canvas Go Plus (64 and 128gb), rebranded Micro Center cards (USA only) 64gb,128gb, 256gb, 512gb, Samsung Pro endurance 32gb, Lexar professional 1800X and 1066x.
Sounds fantastic, well done, I bet it's been a labour of love and a whole lot of effort.
Industrial design looks great also with the case and the buttons (is that an injection moulded case?), I didn't realise that was a touch screen.
Can't believe what you've managed to squeeze out of the teensy.
Good luck with the launch.
This project is stunning. I love how smoothly the display runs. It looks like you're really using the power of the Teensy there. Great work.
Amazing project >> product! How are you driving the display? Over SPI?
It looks like the CPT ILI9488 based on resolution and clarity.
Thanks. Yeah SPI but on the ILI9341. The display is just a font grid so caching characters instead of pixels is lightweight with the exception of a few graphical elements like VU meters and o-scope. The neat thing is there is also a slip serial version of the display drawing functions that runs along side, so all data on the display can be viewed on a computer running software that interprets the data, all running at 60fps.
The promo video used this "remote display" to overlay the graphics onto the 3D model which was captured in real time. :)
Hi trash80, can you share what motivated you to pick Teensy as the platform for M8? I'm working on a synth and not sure if I should learn an OS like Raspberry Pi or stick with Teensy. I know there are a lot of good reasons to use Teensy, but was one your favorite? Thanks!