https://github.com/jxckgan/synesthesia
An application which provides a real-time visualisation of audio frequencies represented as colour.
https://github.com/jxckgan/synesthesia
audio-visual glfw imgui metal reactive visual-art
Last synced: 9 months ago
JSON representation
An application which provides a real-time visualisation of audio frequencies represented as colour.
- Host: GitHub
- URL: https://github.com/jxckgan/synesthesia
- Owner: jxckgan
- License: mit
- Created: 2025-02-05T00:39:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-13T15:32:16.000Z (10 months ago)
- Last Synced: 2025-08-13T17:36:23.180Z (10 months ago)
- Topics: audio-visual, glfw, imgui, metal, reactive, visual-art
- Language: C++
- Homepage:
- Size: 1.55 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Synesthesia
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.
### Installation
Synesthesia is automatically built by GitHub Actions, you can download the application from the [Releases](https://github.com/jxckgan/synesthesia/releases/) page.
### Manual Building & Running
Synesthesia runs on Windows (DirectX 12) and macOS (Metal). To run this project, make sure `cmake` is installed, and just clone this repository w/ submodules (we build app dependencies locally):
> **Note**:
> For Windows clients, you must install VS Microsoft C++ Build Tools, [here is a guide](https://github.com/bycloudai/InstallVSBuildToolsWindows?tab=readme-ov-file) for installing and setting up your PATH.
```sh
# 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
```
#### Building an App Bundle on macOS
In order to build a macOS Application Bundle, we use the following flags (`-DBUILD_MACOS_BUNDLE`) to enable our app-building option:
```sh
cmake .. -DBUILD_MACOS_BUNDLE=ON
cmake --build .
```
And your `.app` will be in the root of the build directory.
#### Building an Executable on Windows
To build a standalone/portable Windows executable, we use the following flags (`-DCMAKE_BUILD_TYPE=Release`) to build:
```sh
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).
### Video Demo
https://github.com/user-attachments/assets/f2d9a25c-81e7-4976-b707-c5cdb479754d
### Todo
- [x] ~~Cross-platform support~~
- [x] ~~Better/granular EQ control~~
- [x] ~~Ability for visualisation of multiple frequency bands~~
- [ ] Vulkan port for Linux
- [ ] Generally more control over settings
- [ ] DAW-integration
### Credits & Footnotes
- GUI built with [Dear ImGui](https://github.com/ocornut/imgui)
- FFT made possible with [KissFFT](https://github.com/mborgerding/kissfft)
> **⚠️ Warning:**
> This application can display rapidly changing colours 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 100% scientifically accurate.