Processing Audio Visualization (PAV) is a music visualization project based on Processing and Java.
The project consists of three parts:

PAV can be downloaded from github. It is released under the GPL v3 license. If you use path for non-private purposes please contact me first.

Using PAV

If you want to run PAV, first download the project from github. Then, navigate to /pav, open a terminal and enter ant run-sw or ant run-gl (you must have Ant installed on your system for this to work). run-gl will start PAV in OpenGL mode, utilizing the GLGraphics library. This mode offers high quality and speed but might cause problems on some systems. run-sw uses a software renderer. This should work on all systems, but quality and performance are much lower and some visualizations do not work with this mode. Further configuration can be done by editing the build file. For more information refer to the readme.txt file, which is included in the download.

When you start the application a black window appears. In order to see something you first have to add a Visualizer. In PAV audio data is visualized by so called Visualizers. A visualization can consist of many independent Visualizers. In order to add a Visualizer to the stack, type add x and hit enter, where x is the name of a Visualizer. PAV currently supports 8 Visualizers (see Visualizers). You can add, configure, and remove these Visualizers at runtime by typing in the PAV window. All available commands are listed at the commands page.

PAV receives data to visualize over the network or from a *nix FIFO. This abstracts from the way how music is accessed: Any program that implements the communication protocol of PAV can stream data to it (see readme.txt).

The project comes with a simple music player with PAV support. In order to start the player, navigate to /pav-player, open a terminal and enter ant. The player will stream music data to PAV via UDP as it is played and you should see a visualization of it in the PAV window.

PAV in action #1

PAV in action #2

PAV Player playing and streaming music to PAV

Using the code

libpav provides a framework that allows you to access audio data, transformations of that data, as well as common audio descriptors, and makes it easy to create new Visualizers. Please refer to the code documentation for information on how to use the API. If you find bugs or want to contribute to the project, please contact me on github.