Awesome
Cacophony is a minimalist and ergonomic MIDI sequencer. It's minimalist in that it doesn't have a lot of functionality MIDI sequencers have. It's ergonomic in that there is no mouse input and a very clean interface, allowing you to juggle less inputs and avoid awkward mouse motions.
Buy Cacophony (or compile it yourself).
How to compile
I compile Cacophony with Rust 1.74.0 for Linux, MacOS, or Windows. Below is a list of operating systems I've tested:
Linux:
- Ubuntu 18.04 i386 with X11
- Ubuntu 18.04 x64 with X11
- Ubuntu 20.04 x64 with X11
- Ubuntu 22.04 x64 with X11
- Ubuntu 24.04 x64 with X11
MacOS:
- Catalina 10.15.7 x64
- Ventura 13.2.1 Apple Silicon
Windows:
- Windows 10 x64
All platforms
- Install Rust (stable)
- Clone this repo
Linux
Debian 11
apt install clang cmake speech-dispatcher libspeechd-dev pkg-config libssl-dev librust-alsa-sys-dev
cargo build --release --features speech_dispatcher_0_9
Debian 12
apt install clang cmake speech-dispatcher libspeechd-dev pkg-config libssl-dev librust-alsa-sys-dev
cargo build --release --features speech_dispatcher_0_11
Ubuntu 18
apt install clang cmake speech-dispatcher libspeechd-dev pkg-config libssl-dev alsa
cargo build --release --features speech_dispatcher_0_9
Ubuntu 20
apt install clang cmake speech-dispatcher libspeechd-dev pkg-config libssl-dev alsa librust-alsa-sys-dev
cargo build --release --features speech_dispatcher_0_9
Ubuntu 22 and 24
apt install clang cmake speech-dispatcher libspeechd-dev pkg-config libssl-dev alsa librust-alsa-sys-dev
cargo build --release --features speech_dispatcher_0_11
MacOS
cargo install cargo-bundle
cargo bundle --release
Windows
cargo build --release
Set the data
directory
Cacophony's default data directory is located at ../data
. To set the default data directory at compile time, set the CACOPHONY_BUILD_DATA_DIR
enviroment variable:
export CACOPHONY_BUILD_DATA_DIR=/usr/share/cacophony
cargo build --release
Tests
To test, just cargo test --all
.
Sometimes when debugging, it's useful to create the same initial setup every time. To do this, you can pass input events in like this: cargo run -- --events events.txt
...where the contents of events.txt
is something like:
NextPanel
AddTrack
EnableSoundFontPanel
SelectFile
How to run
You can run Cacophony like any other application or you can use Rust's cargo run
to compile and execute.
Linux
There are two ways to run Cacophony:
- Copy + paste
data/
into the output directory (target/release/
). Open a terminal inrelease/
and run./Cacophony
. - Instead of
cargo build --release
, runcargo run --release
Include the--features
listed above, for examplecargo build --release --features speech_dispatcher_0_11
on Ubuntu 22
MacOS
There are two ways to run Cacophony:
- After compiling, double-click
Cacophony.app
(located in./target/release/
) cargo run --release
This will compile and launch the application but it won't create a .app
Windows
There are two ways to run Cacophony:
- Copy + paste
data/
into the output directory (target/release/
) and double-clickCacophony.exe
(located inrelease/
) - Instead of
cargo build --release
, runcargo run --release
Upload
Assuming that you are Esther Alter and you have the relevant credentials on your computer, you can upload the website and create itch.io builds by doing this:
cd py
py -3 build.py