A language for binaural, microtonal composition built in Rust.
Make cool sounds. Impress your friends/pets/plants.
You'll need Rust and Cargo.
https://www.rust-lang.org/en-US/install.html
You'll need also need portaudio. https://github.com/RustAudio/rust-portaudio
On Mac
brew install portaudio
brew install pkg-config
&& cargo clean
if you are having problems linking
https://github.com/xasopheno/weresocool-parser
Grammar:
https://github.com/xasopheno/weresocool-parser/blob/master/src/socool.lalrpop
Listen to something created with the framework
cargo run --release --bin wsc songs/fall/table.socool
Run with -p
flag to print a wav file.
cargo run --release --bin wsc songs/fall/table.socool -p
I use ffmpeg
to convert to mp3
ffmpeg -i composition.wav composition.mp3
https://www.ffmpeg.org/
For files in songs/*
of type .socool
./play dir/filename
./print dir/filename
To build the binary:
cargo build --release --bin wsc
and then you can parse and play files without having to build the binary each time.
./target/release/wsc songs/fall/table.socool -p
``` USAGE: wsc [FLAGS] [filename]
FLAGS: -d, --doc Prints some documentation -h, --help Prints help information -j, --json Prints file to .json -p, --print Prints file to .wav -V, --version Prints version information
ARGS:
To run tests for WSC, Parser, AST, and the end-to-end tests run:
./test.sh
Copyright (C) 2019 - Danny Meyer
This program is free software, licensed under the GPLv3 (see LICENSE).