A hardcore livecoding system for realtime audio synth.
A hardcore livecoding system for realtime audio synth in the spirit of Sound Garden.
WIP with
Work with the garage door up ethos.
On macOS:
$ brew install fswatch libsndfile
or
$ port install fswatch libsndfile
For Nim try choosenim.
There is also shell.nix
for Nix users, which is the installation method I use and test against.
Sample rate and channels count is hardcoded to 48000
and 2
respectively.
If your device requires different values, edit src/dsp/frame.nim
.
NB: you need to run all the mentioned scripts from the repo root.
main
branch is a good choice../start-server
./start-session
with a session name as an argument.session/
and checkout this branch.src/session.nim
and save file to compile and send to the server.To render a specific session duration in a non-interactive mode to a file:
$ ./render <duration in seconds> <path/to/output.wav>
Peek into src/session.nim
in session/*
branches.
This project is licensed under BSD-3-Clause, with the exception of
derivative work that is covered either by licenses defined via LICENSE
files
in the corresponding sub-directories or via comments directly in the source code
files.
C-like freedom, performance and fast compilation with heaps of syntactic sugar.
clive very much aligns with the vision I wanted to implement and I’d just port
clive to macOS if only C was terser. When I’m jamming I want the code to be
clean, concise and close to my intention, all other necessary trade-offs
considered.
Maybe. Please try and let me know! I strive to write the code in a
platform-independent way but I test it only on macOS.
Purely irrational, æsthetic choice. CamelCase seems to be prevalent in the Nim
ecosystem, and majority of the code I write/read in other languages is camelCase
too. However, I enjoy the most writing/reading OCaml and Rust in the regard of
that particular convention, and I’m glad that Nim’s compiler doesn’t actually
care, so I went with underscores.