Simple tray app for macOS/Linux to control Bass/Middle/Treble gains in a CamillaDSP config.
There are not many free and open source equalizers for macOS and Linux. Of course there is eqMac, but it's troublesome while switching devices, and full of random crashes, so I've decided to find an alternative solution.
Fortunately, there is one: BlackHole driver + CamillaDSP. Unfortunately, it's hard to use by non-experienced users because it was created for more professional use cases. Instead of using extensive CamillaGUI, which needs some programming knowledge, I've decided to create a project that simply allows changing Bass/Middle/Treble gains.
This application is PoC that during development I used to test features of IntelliJ's Junie Ai assistant.
I did review and modified the resulting code, but there might be some bugs and flaws. As LICENSE says: I'm not responsible for any harm that could happen during usage of this software. I've created this just for my use and decided to share it with others.
- Python 3.9+
- blackhole-2ch installed
- running CamillaDSP
Settings are stored in a user config file settings.yml. Paths:
- macOS
~/Library/Application Support/CameliaEQ/settings.yml - Linux
~/.config/CameliaEQ/settings.yml.
brew install --cask blackhole-2ch
-
<DIRECTORY_TO_CAMILLADSP>with your directory tocamilladsp<WEBSOCKET_PORT>to control CamillaDSP over WebSocket. If you don't know what it means, put1234<CONFIG>configuration file you'd like to use
-
Download and extract a specific version for your computer https://github.com/HEnquist/camilladsp/releases/tag/v3.0.1
-
Open terminal and go to directory with
camilladspexecutable -
Create new CamillaDSP config file with title, all other properties will be set by the app:
mkdir config nano config/<CONFIG>.yml echo $'' >> config/<CONFIG>.yml -
Check if you are able to run CamillaDSP
./camilladsp -w -p<WEBSOCKET_PORT> <DIRECTORY_TO_CAMILLADSP>/configs/<CONFIG>.ymlDon't worry if you get the following log:
INFO [src/bin.rs:781] CamillaDSP version 3.0.1 INFO [src/bin.rs:782] Running on macos, aarch64 ERROR [src/bin.rs:939] Invalid config file! EOF while parsing a valueThis is completely normal, and happens because the configuration file is empty
If you receive prompt about untrusted software, app is under system quarantine. To remove quarantine run, and retry:
xattr -d com.apple.quarantine <DIRECTORY_TO_CAMILLADSP> -
Prepare a startup file with a command
nano ~/Library/LaunchAgents/com.github.camilladsp.startup.plistand save it with this content:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.github.camilladsp.startup</string> <key>ProgramArguments</key> <array> <string><DIRECTORY_TO_CAMILLADSP>/camilladsp</string> <string>-w</string> <string>-p<WEBSOCKET_PORT></string> <string><DIRECTORY_TO_CAMILLADSP>/configs/<CONFIG>.yml</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> -
Launch on system log-in:
launchctl load ~/Library/LaunchAgents/com.github.camilladsp.startup.plist -
Restart system
There are two options to run the app. If you are not familiar with python, and you don't want to learn it, I'd recommend you to run the app from executable:
- Download and extract executable from Releases page in this repo valid for your system
- Double click the app icon, or run in commandline:
./cameliaEQ - Go to
Settingsand set CamillaDSP config file that was set previously
(TBD) But I'm sure if you are Linux user, basing on MacOS steps you know what to do ;)
If you'd like to run this APP from sources, or build your own executable:
- Go to the directory to which this repository is downloaded
- Create new virtual environment:
python3 -m venv .venv - Activate the environment:
source .venv/bin/activate - Install python dependencies:
pip install -r requirements.txt - You can run the app via command line directly:
python -m cameliaeq - Install pyinstaller:
pip install pyinstaller - Or build executable (your executables should be in
/dist):pyinstaller --windowed --onefile --icon=icon.icns --name="cameliaEQ" cameliaeq/__main__.py
