Synesthesia is an application which provides a real-time visualisation of audio frequencies represented as colour. Features a rudimentary EQ, real-time frequency & wavelength information, and an audio input selection system.
Synesthesia runs on Windows (DirectX 12), macOS (Metal), and Linux (Vulkan). To run this project, make sure cmake
is installed, and just clone this repository w/ submodules and run make run
(we build app dependencies locally):
Note: For Windows clients, you must install VS Microsoft C++ Build Tools, here is a guide for installing and setting up your PATH.
# Clone the repository with submodules
git clone --recurse-submodules https://github.com/jxckgan/synesthesia
cd synesthesia
# Create (and enter) the build directory
mkdir build && cd build
# Configure and build
cmake ..
cmake --build .
# Run Synesthesia
./synesthesia
In order to build a macOS Application Bundle, we use the following flags (-DBUILD_MACOS_BUNDLE
) to enable our app-building option:
cmake .. -DBUILD_MACOS_BUNDLE=ON
cmake --build .
And your .app
will be in the root of the build directory.
To build a standalone/portable Windows executable, we use the following flags (-DCMAKE_BUILD_TYPE=Release
) to build:
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
Your executable will then be placed in the Release folder (placed at the root of your build directory).
-
Cross-platform support -
Better/granular EQ control -
Ability for visualisation of multiple frequency bands - Vulkan port for Linux
- Generally more control over settings
- DAW-integration
- Visible Light Spectrum to RGB: Endolith
- GUI built w/ Dear ImGui
- Lightweight FFT possible w/ KissFFT
- macOS Application Building: Appify/OSX App in Plain C
⚠️ Warning:
This application may display rapidly changing colors when multiple frequencies are played. If you have photosensitive epilepsy, I strongly advise against using this application.
Note: This application is artistic in nature, and doesn't aim to replicate Synesthesia (Chromesthesia) or to be scientifically accurate.