All Projects → kbob → MinimumViableSynth

kbob / MinimumViableSynth

Licence: GPL-3.0 License
A virtual analog synthesizer with lots of knobs and buttons.

Programming Languages

Eagle
155 projects
KiCad Layout
80 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
OpenSCAD
209 projects

Projects that are alternatives of or similar to MinimumViableSynth

Dx7 Synth Js
A JavaScript implementation of the Yamaha DX7 synthesizer
Stars: ✭ 201 (+813.64%)
Mutual labels:  midi, synth
diy-synths
List of open-source synths 🎹
Stars: ✭ 56 (+154.55%)
Mutual labels:  hardware, synth
Teensy Eurorack
Eurorack shield for teensy 4.1 with 14 in / 16 out analog channels
Stars: ✭ 99 (+350%)
Mutual labels:  hardware, synth
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+2627.27%)
Mutual labels:  midi, synth
midi-eye
Ruby MIDI input event listener
Stars: ✭ 24 (+9.09%)
Mutual labels:  hardware, midi
Jsscc
A JavaScript reimplementation of Gashisoft GXSCC
Stars: ✭ 26 (+18.18%)
Mutual labels:  midi, synth
webaudio-synth
WebAudio Polyphonic Synthesizer
Stars: ✭ 83 (+277.27%)
Mutual labels:  midi, synth
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+940.91%)
Mutual labels:  hardware, midi
twigs
Alternate firmware for Mutable Instruments Branches synthesizer module
Stars: ✭ 21 (-4.55%)
Mutual labels:  hardware, synth
guitar
🎸 Online guitar toy and tablature recorder/player
Stars: ✭ 80 (+263.64%)
Mutual labels:  midi, synth
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (+1922.73%)
Mutual labels:  midi, synth
midi-grid
DIY midi controller project
Stars: ✭ 60 (+172.73%)
Mutual labels:  hardware, midi
kiro-synth
Modular sound synthesizer written in Rust
Stars: ✭ 62 (+181.82%)
Mutual labels:  midi, synth
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+5618.18%)
Mutual labels:  midi, synth
cl-patterns
Library for writing patterns to generate or process (a)musical sequences of mathematically (un)related (non-)compound values in Lisp.
Stars: ✭ 62 (+181.82%)
Mutual labels:  midi, synth
arduino-midi-footswitch
USB MIDI Pedal built with Arduino
Stars: ✭ 24 (+9.09%)
Mutual labels:  hardware, midi
libDaisy
Hardware Library for the Daisy Audio Platform
Stars: ✭ 164 (+645.45%)
Mutual labels:  hardware, midi
ws-ldn-12
ARM / STM32F7 DIY synth workshop
Stars: ✭ 62 (+181.82%)
Mutual labels:  midi, synth
lwow
Lightweight onewire protocol library optimized for UART hardware on embedded systems
Stars: ✭ 98 (+345.45%)
Mutual labels:  hardware
remote refocus
A scientific publication, describing a way to improve microscopy. This repository hosts everything you need to reproduce our results. Read the publication here: https://andrewgyork.github.io/remote_refocus/
Stars: ✭ 13 (-40.91%)
Mutual labels:  hardware

MinimumViableSynth

A virtual analog synthesizer with lots of knobs and buttons.

front panel image

This is a polyphonic, monotimbral, virtual analog synth. The audio engine runs as an Apple Audio Unit on a Macintosh. The control panel, shown here, will provide dedicated controls for most of the synth's functions.

assembly animation

The end goal is a self contained keyboard synth with knobs and buttons with the classic connections: audio out, MIDI in/out, USB MIDI in/out. I am getting there in three phases.

  • Phase 1 (complete 2015-01-01): Softsynth. The audio engine runs as an Audio Unit on a Mac. It accepts MIDI messages and produces beautiful polyphonic analog sounds. Or gritty, disturbing analog sounds. It plugs in to DAW software (I use Logic Pro X).

  • Phase 2 (in progress): Knobs and buttons. I am designing and building a front panel (see above) with knobs, buttons, and an LCD touchscreen. The goal is to make it as easy as possible to understand what the synth is doing at any time.

  • Phase 3 (future): Stand-alone. Build an enclosure that houses a keyboard, the knob and button panel, I/O jacks, and a processor (TBD) that can run the audio engine. I'm looking at FPGAs...

Why?

Learn stuff. Music theory, DSP, PCB layout, CAD and machining, more.

Status

Check out synth-notes.txt for my thoughts as I worked things out.

January 7, 2017:

I built 8 slave modules: the LFOs, the Controllers module, the oscillators, the noise source, mixer, and filter. I've since killed the filter module, and one of the oscillators' LED has burnt out its red component. I have parts and tools to repair those; just haven't done it yet.

I have working UI for the knobs and buttons. Specifically, routing between modulators and targets works, complete with lighting effects.

I made an enclosure from aluminum sheet and melamine end blocks, as illustrated above. It is flimsy, though, so that needs to be re-done.

I had the master, slaves, and LCD panel connected via a breadboard. The breadboard wiring got flaky, so I stopped to design a PCB. The PCB snaps onto the back of the Discovery board, It routes video to the LCD touch screen, SPI to the slaves, and serial MIDI to a future MIDI I/O board.

I am currently designing the graphics for the LCD panel.

(Over a year since the last update. Oops.)

December 17, 2015:

Three slave modules have been built. (LFO1, LFO2, Controllers.) All the slave module PCBs are fabricated.

The master-slave communications are working over SPI. The master generates MIDI events. I can push a button on a slave and hear its effect on the audio engine.

I blew up one of the LFO modules, probably with static discharge. I repaired it (swapped in a new Teensy LC), and it works now. It was an ugly repair.

Current tasks:

  • generating more MIDI events
  • experimenting with the LED animation
  • soldering up the rest of the slave modules
  • designing backing plates for the new slave modules

August 14, 2015:

The audio engine has been stable since January, though it does not exactly match the front panel's feature set.

The front panel was fabricated in July. I used a sheet of acrylic, painted the underside black, then engraved the artwork through the paint with a laser cutter. Then the same laser cutter cut all the holes for the controls. It looks sharp, but not mass produced. I got the work done at InHaus Fabrication.

There is a master microcontroller, an STM32F429, and each module has a slave controller, a Teensy-LC. Each slave directly drives a few knobs, buttons, and LEDs. The master will coordinate all the slaves and provide the MIDI over USB interface. I am currently writing SPI drivers for master-slave communication.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].