eolian

command module
v0.0.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2017 License: MIT Imports: 4 Imported by: 0

README

Eolian

Build Status GoDoc

Eolian is a modular synthesizer. It provides a variety of different modules and music theory primitives that can be patched together to create music. While the program is written in Go, you don't need to know Go to use it. Patches for the synthesizer are written in Lua. A REPL is also provided for interacting with the patches in real-time.

I started this project in attempt to learn more about digital signal processing and music theory. The project is named after the music hall, The Eolian, in the book The Name of the Wind by Patrick Rothfuss.

Dependencies

On macOS you can install these dependencies with: brew install go portaudio portmidi

Installing

$ go get buddin.us/eolian

Usage

$ eolian examples/random.lua
> -- Reload the file, rebuild the Rack and remount it
> Rack.build()
>
> -- Reload the file and only repatch it
> Rack.patch()
> 
> -- Set inputs or repatch modules
> Rack.modules
clock   table: 0xc420273680
random  table: 0xc420273980
voice   table: 0xc420273d40
delay   table: 0xc4202e2300
filter  (module)
mix     (module)
> Rack.modules.filter
cutoff          <--     7000.00Hz
input           <--     delay.delay/output
resonance       <--     10.00
bandpass        -->     (none)
highpass        -->     (none)
lowpass         -->     mix/0/input
> Rack.modules.filter:set { cutoff = hz(1000) }
cutoff          <--     1000.00Hz
input           <--     delay.delay/output
resonance       <--     10.00
bandpass        -->     (none)
highpass        -->     (none)
lowpass         -->     mix/0/input
Building a Rack

Documentation for all modules and synthesizer features can be found on the Wiki. I'll also be posting tutorials there soon.

A small set of example racks are maintained in the examples directory. I also frequently post short videos on Instagram of things I've been able to get out of it.

Contributing

This project is very much in its infancy and there is still lots of work to be done. Wanna help out? Awesome! Mosey on over to CONTRIBUTING.md and submit your first Pull Request.

Documentation

Overview

Eolian is a modular synthesizer.

Usage:

eolian [-device device_number] [-framesize buffer_size] [rack_file.lua]

Directories

Path Synopsis
Package command provides the functionality of the executable
Package command provides the functionality of the executable
Package dsp provides common digital signal processing operations
Package dsp provides common digital signal processing operations
Package engine provides output through PortAudio
Package engine provides output through PortAudio
lua
Package lua provides a Lua scripting layer
Package lua provides a Lua scripting layer
Package module provides built-in modules
Package module provides built-in modules
midi
Package midi provides MIDI input handling
Package midi provides MIDI input handling
osc
Package osc provides Open Sound Control (OSC) input handling
Package osc provides Open Sound Control (OSC) input handling
Package wav provides WAV file decoding
Package wav provides WAV file decoding
Package wavetable provides wavetable oscillators Generated by cmd/gen/main.go.
Package wavetable provides wavetable oscillators Generated by cmd/gen/main.go.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL