Skip to content

szmol96/SZ-synth-01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SZ-synth-01

What is it?

It's a simple chiptune synthesizer using table-lookup synthesis. It also doubles as a USB MIDI keyboard. The project is based on a cheap Pro Micro and a WeMos LoLin32 board.

What are the current features?

  • 25 note buttons
  • Synth/MIDI mode switch
  • 5 waveforms: sine, triangle, sawtooth, pulse (square), noise
    • Adjustable duty cycle for the pulse waveform
  • Adjustable attack, decay, sustain level, and release
    • Skipping the decay and sustain phases when sustain is zero
  • Pitch bending (one semitone range)
  • Portamento (although it doesn't work well with pitch bending yet)

What are the possible future features? Things to be fixed?

  • Stereo sound output
  • Pitch modulation
  • Arpeggiator
  • Being able to produce more complex waveforms (modulating one wave by another, filters and stuff?)
  • Getting rid of the crackling that occurs sometimes on note triggers

Things you need to put this together:

  • 1 x Pro Micro (preferably a 3.3V one, it will make things a bit easier)
  • 1 x WeMos LoLin32 (almost any other ESP32 development board will do, I just happened to use this one)
  • 2 x MCP23017 I/O expansion ICs (for the buttons)
  • 1 x PCM5102 I2S DAC (one of those purple ones with a 3.5mm jack)
  • [OPTIONAL] 1 x TXB0104 logic level shifter (only if you have development boards with different logic voltages)
  • SSD1306 OLED display with 128x64 resolution (one that uses I²C bus)
  • some perfboard (the larger piece(s), the better; it depends on your design; also some smaller pieces)
  • 26-30 x momentary switches aka. buttons (I suggest using those gray colored silent silicone ones, but any will do)
  • 5 x 1kΩ potentiometers (for the knobs, can be up to 10kΩ i guess)
  • 2 x 2-axis analog sticks (for pitch bending, modulation and stuff; can be replaced with more potentiometers)
  • 1 x female Micro USB breakout board
  • 2 x Micro USB data cables (they will be cut to short pieces, you can get away with cheaper ones)
  • possibly lots of (insulated) wire to connect things together
  • an enclosure that will best fit your design
  • the source code for both development boards, of course!

About

Source code and schematics of my first DIY synthesizer project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages