Minimalist audio visualizer written in C/C++ using OpenGL and RtAudio
C++ C Makefile
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
inih
kissfft
screenshots
.gitignore
README.md
RtAudio.cpp
RtAudio.h
RtError.h
butbp.c
butbp.h
config.ini.aphex
config.ini.autechre
config.ini.bright
config.ini.eno
config.ini.speech
draw.cpp
hsl.c
hsl.h
kubus.cpp
kubus.h
makefile
port.c
port.h
rms.c
rms.h
windows.cpp

README.md

Kubus

Kubus

Larger resolution screenshots: 1 2 3 4 5

Kubus is a minimalist audio visualizer, written in C/C++ using OpenGL and RtAudio. The aesthetic of Kubus draws inspiration from artists like Ryoji Ikeda and Viznut.

Audio input is buffered into Kubus 1024 samples at a time, where it is sequentially mapped onto a 32 x 32 grid of squares. The amplitude of each particular sample controls the square color's lightness at that point in time. If FFT mode is enabled, the FFT bins are mapped onto the grid as well, controlling the saturation level of the squares.

See the Usage section for more details about the different modes and functionality of Kubus.

Downloading Kubus

If you're not already there, Kubus can be found on github.

Compilation

Kubus has been tested on OSX and Linux. You will need GLUT in order to compile. On Linux, JACK will need to be installed.

To compile, run:

make

Usage

After compilation, Kubus can be invoked from the commandline by running "./kubus".

Hitting "Q" will quit.

There are a number of modes that can be toggled with keystroke commands:

FFT mode (f):

Turns on fft visualizer.

Jitter mode (j):

Detects sibilant frequencies and adds randomness to the squares frequencies when it passes a threshold.

Pulsate mode (p):

Maps overall amplitude to the the size of the square.

Rainbow mode (r):

Maps sample amplitude to the color hue.

"8-bit" mode (b):

Quantizes the colors to achieve a more low-fi feel.

These modes, as well as several other parameters can be configured with a INI-style configuration file. By default, Kubus will try to look for a file called "config.ini", but custom INI files can be loaded by passing it in as a parameter on the commandline (ex: "./kubus custom.ini").