New polyhonic Teensy DIY Sampler

Rolfdegen

Well-known member
Hello dear DIY friends..
I'm working on a new project called Degenerator 2. It's a polyphonic sampler and synthesizer based on Teensy 4.1 with 16MB sample ram and touchscreen.
In 2011 I started developing my first monophonic sampler/synthesizer. The project was later given the name "Degenerator".
The degenerator was based on the most powerful 8-bit MCU from Atmel at the time, the ATXMEGA128A1 with a 32MHz clock speed.
It is now the year 2024 and it is time for a comeback but with a bit more power. A polyphonic (8 voices) sampler/synthesizer is planned based on a Teensy 4.1 MCU with 600MHz and 16MegaByte sampler RAM.
The "Degenerator II" project has already taken its first steps (see video). However, there will be more controls and a 3.2" touch display (as in the video).


The machine ARM-Cortex-M7 600 MHz (Teensy 4.1)
Screenshot 2024-11-19 194124.png


The 16 MegaByte sample RAM on the back

Screenshot 2024-11-19 194409.png


32bit Stereo DAC
Screenshot 2024-11-19 194600.png
 
Next Step Menu pages..
Things are moving forward. The touchscreen is already working well. Next comes access to the patch files on the DS card. The patch files contain the samples that are loaded into the 16MB PSRAM on the Teensy and the parameters for the oscillators, filters, effects, etc.

 
Current envelope design...

20250102_192547.jpg


The blue dots are the active voices. There will be 6 controls for the envelope setting. Attack, decay, sustain, release, delay and curve.
There will also be a loop function. The blue button can be used to select the envelope number. Envelope 1 + 2 are reserved for filters and VCA. Envelope 3 + 4 for modulation. The red button is used to select the envelope type. Either linear or exponential.
 
So that I don't always have to take photos to show display content, I looked for and found another solution.
A clever programmer its name is Kris has developed a screenshot function for the display driver ILI9341_t3 that allows
the display content to be printed out as a BMP image or saved to an SD card. The colors are now correct too.
This helps me when write posts and instruction manual. But it only works for the touch screen display with ILI9341 chip.

Display picture
20250105_173250.jpg


Bitmap file from SD Card
Example.jpg


github link: https://github.com/KrisKasprzak/ILI9341_t3_PrintScreen

I have modified Kris' ILI9341_t3_PrintScreen.h for the ILI9343_t3n driver (renamed ILI9341_t3 to ILI9341_t3n). The demo program draws red rectangles and text. It is then written to the SD card as a bitmap and finally read in again and drawn on the screen (see zip-file into Attach).
 

Attachments

  • PrintScreen.zip
    4.7 KB · Views: 13
Last edited:
In the degenerator 2, up to seven gridless encoders are used. They are responsible for parameter input, program selection and volume. In the degenerator(1) I implemented the encoder query using two serial 8-bit shift registers of the type 74HC164. This slowed down the encoder's scanning speed and occasionally resulted in losses when evaluating the steps or positions. In order to significantly improve the encoder query in the degenerator 2, each encoder now has its own small slave processor "tied to its nose". This is a small ATtiny402 processor in SMD design. Cost factor approx. 75-80 cents. The chip ensures fast and uninterrupted scanning at the encoder connections and transmits the data on a common I2C bus to the Teensy 4.1 CPU. This saves me up to 14 IO lines on the Teensy CPU and valuable time when querying the encoder connections. For testing purposes, I have already ordered small, ready-made I2C boards with a soldered and programmed ATtiny CPU from Duppa. In the later Degnerator2 prototype, the ATtiny CPU will be programmed with the open source firmware via a programming adapter and soldered directly onto the mainboard. I'm excited to see when the boards arrive and whether the whole thing will work as smoothly as I imagine 🤔

I2C encoder board, e.g. from DuPPa.net
with an ATtinsy 402 CPU installed

Screenshot 2025-01-10 194111.png
Screenshot 2025-01-30 153730.png
 
Last edited:
Hello there..
I have now successfully installed the six I2C encoders in the Degenerator 2. Underneath each encoder is a small ATtiny402/412 chip that communicates with the Teensy4.1 board via an I2C bus. To avoid "crank trauma" with the large number of encoders, I have programmed a dynamic acceleration for each encoder.

Encoder check

 
Hello... and have a nice Sunday
I was able to solve the problem with MIDI. It was due to the query and configuration of the 16-bit frame buffer for the display.
The frame buffer is part of the DMA memory in the Teensy4.1 CPU that controls the display.

 
Back
Top