eolian

module
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2017 License: MIT

README

Eolian

Eolian is a modular synthesizer. It provides a variety of different modules 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.

This 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

Running the tests

$ make test

Usage

$ make install
$ eolian racks/circles.lua
> 
> -- Reload the file, rebuild the Rack and remount it
> Rack.rebuild()
>
> -- Reload the file and only repatch it
> Rack.repatch()
> -- Set inputs or repatch modules
> Rack.modules.low.lpf:inspect()
LPFilter30
-------------------------------------
cutoff          <--     3000.00Hz
input           <--     Mix29/output
resonance       <--     0
output          -->     Mix0/1/input
> Rack.modules.low.lpf:set { cutoff = hz(2000) }
...

Be sure to check out the Wiki for more features and tutorials. You can also find some example Rack setups in the racks directory.

Example Sounds

Here's some example videos of things I've been able to get it to do at various stages during development:

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.

Directories

Path Synopsis
cmd
Package command provides the functionality of the executable
Package command provides the functionality of the executable
Package engine provides output through PortAudio
Package engine provides output through PortAudio
Package lua provides a Lua scripting layer
Package lua provides a Lua scripting layer
Package midi provides MIDI input handling
Package midi provides MIDI input handling
Package module provides built-in modules
Package module provides built-in modules
Package osc provides Open Sound Control (OSC) input handling
Package osc provides Open Sound Control (OSC) input handling

Jump to

Keyboard shortcuts

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