Skip to content

friedpies/kelpie-pocket-synth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KELPIE - a polyphonic pocket synth

kelpie

About

The KELPIE is a digital polyphonic synthesizer powered by the SGTL5000 audio DAC and an ARM Cortex M4 microcontroller. For a description of the full project, please visit the Hackaday Project Page


Repository Details

This repo houses all mechanical, electrical, and software files relating to the project, as well as graphical assets and other additional files.

  • Mechanical CAD (mCAD) files can be found and viewed here via Fusion 360's online viewer. They can be downloaded directly in whatever format you need (including STLs for 3D printing). The link provided here directly reflects the most current progress and is kept up-to-date in real time.
  • Electronics CAD (Autodesk Eagle) files and schematics can be found here. The parts library and full BOM can be exported from the schematic. This is the most up-to-date BOM.
  • Firmware files, written in Arduino/C++ using PlatformIO can be found here

Audio Design

The synthesizer block diagram is shown below and was designed using the Teensy Audio Design Tool

BlockDiagram


About the Device / How to Use

drawing

The KELPIE is a subtractive synthesizer that follows the standard 2 oscillator model. For those who have never used a subtractive synth before, there are plenty of resources online, I would recommend this series of videos which do a great job of explaning and demonstrating the basics.

Some unique features of the KELPIE that are different and worth pointing out are:

Oscillators

  • Each oscillator can only generate either a pulse waveform or sawtooth (both these waveforms are harmonically rich compared to triangle/sine waves, and can easily emulate other waves through filtering)
  • The Pulse Width Modulation knob (PWM) can only be heard if one (or both) of the waveforms are switched to a pulse waveform. This knob can be thought of as a "global" PWM
  • The noise knob is more of a noise "presence". At 0%, oscillators 1 & 2 will dominate the output. Whereas at 100%, the noise will completely dominate the output. At 50% there will be an equal gain of Oscillators 1 & 2 and Noise.
  • Coarse refers to the relative tuning of Oscillator 2 to Oscillator 1. At 0%, Oscillator 2 is tuned 1 octave below Oscillator 1, at 100%, Oscillator 2 is tuned 1 octave above. Around 50%, the knob is less sensitive in order to achieve less dramatic detuning.

Envelopes

  • The envelope knobs are responsible for both amp and filter envelopes. To switch between amp and filter, active the shift button. In future revisions, more features may be attached to the shift button.

Filter

  • Both filter freq and Q or (resonance) behave as expected in a traditional subtractive synthesizer. However, depth can be explained as the filter's impact or octave range. This effect is manifested in both the LFO's filter parameter, as well as the filter enevelope's effect on the overall sound.

LFO

  • The KELPIE has a single LFO or low frequency oscillator which is mapped to both the filter's frequency as well as the overall master gain. The rate describes the frequency of oscillation, whereas the filter and amp parameters describe the LFO's effect on those destinations.
  • Currently, the LFO rate is also mapped to the modulation MIDI CC message, so a player can easily adjust this parameter directly from their MIDI control interface.

GLIDE

  • This feature has not yet been implemented, but will allow the user to change the overall portamento rate (sliding between notes in mono mode)

MIDI CC

  • The KELPIE accepts MIDI CC messages from 102 - 119 which allow adjustment of all the parameters on the device. Both the built-in knobs and external MIDI knobs can be used simultaneously.

Acknowledgements

I utilized and referenced a couple of open source libraries + repos for this project, as well as some very useful tools:

About

A portable, cheap, and easy to use, monophonic + polyphonic digital synthesizer for use with a MIDI controller

Resources

License

Stars

Watchers

Forks

Packages

No packages published