Skip to content

dawnsynth/dawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dawn

dawn is a modular synthesizer written in zig. interaction is possible through network messages, specifically open sound control (osc). it's work in progress in early stages. expect few features and rough edges: the interface is sketched out, but there are barely any modules. contributions are welcome!

dusk is a basic command line application that sends messages to dawn and sometimes receives replies. it comes included and demonstrates the interface. using dawn with other software supporting osc is easy and recommended.

building from source

with zig 0.11 stable installed:

git clone https://github.com/dawnsynth/dawn.git
cd dawn
zig build

if all goes well, you should see dawn and dusk binaries in ./zig-out/bin/ that are used below. consider adding this directory to your PATH for convenience.

safety

please take care of your hearing and equipment. there may be rapid changes it volume. be advised to keep initital levels low and use speakers instead of headphones, if possible. use at your own risk.

getting started

dawn's default patch contains modules for sound i/o and processing osc messages. to launch it, run the binary:

dawn

see dawn --help for additional options.

dusk can send osc messages to dawn. with dawn running, for example:

dusk add_module --module_type sineosc --module_name sine

to hear a sound, we need to patch our oscillator to the soundio module:

dusk add_cable --src_module_name sine --src_port_name out --dst_module_name soundio --dst_port_name chan_1

this should produce a stereo signal, since channel 1 is normalled to channel 2.

to change its frequency:

dusk set_param --module_name sine --param_name freq --value 220.0

see dusk --help for all options and messages.

other clients

for more flexible interaction its recommended to use dawn with other clients. thanks to osc this can easily be done. some possibilities include seamstress, norns, orca, and open stage control among many others.

acknowledgements

dawn's abstractions are inspired by the initial version of vcv rack, developed by andrew belt. dawn is written in zig, who's creator andrew kelly, also wrote libsoundio which is used for the soundio module. other third party libraries used include tinyosc by martin roth, zig-cli by alexei samokvalov & contributors, zig-network by felix queißner, and zig-soundio by ken kochis. the interface pattern follows a blog post by loris cro.

contributing

contributions are welcome and encouraged. by submitting a pull request, you agree that your contribution will be under this repository's license (MIT).