Skip to content

lucianthorr/simplesynth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleSynth

A minimal, real-time midi synthesizer in Go. Currently connects to a midi device and acts as a sine wave oscillator based on incoming MIDI Note-On and Note-Off messages.

Why?

I wanted the basic skeleton of a performant synthesizer to be able to quickly experiment with DSP concepts. Go is a super simple, statically typed language so there's not a lot to hide behind. The dependencies used are also fairly low-level but easy to read and understand if necessary.

I also felt like there were very few simple examples of a fully implemented synthesizer. This shows how the fundamental OS's audio callback buffer can be written into based on incoming MIDI NoteOn and NoteOff messages.

Usage

Using "go run":

go run . -ls: Lists all available midi devices

Then using the index printed from the "ls" command to specify a device to use:

go run . -d <index>: this acts as a simply sine-wave synth

go run . -d <index> -m: print the incoming midi messages

Requirements and References:

About

A minimal, real-time midi synthesizer in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages