By Paul Batchelor


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.


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:



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.

R a i i n b o w 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").