Processing Audio Visualization (PAV) is a music visualization project based on Processing and Java.
The project consists of three parts:
- libpav is a library for music visualization
- pav is an application that visualizes music streamed to it over the network using libpav
- pav-player is a simple audio player with tag support that can stream audio data to pav over the network
PAV can be downloaded from github. It is released under the GPL v3 license.
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. 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. This abstracts from the way how music is accessed: Any program that implements the communication protocol of PAV can stream data to it. 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 start and try to connect to PAV. If PAV is not running at startup, you will see an error. The player will work anyway, but you have to restart it if you want it to stream data to PAV. If the player was able to connect to PAV, it will stream music data to PAV as it is played and you should see a visualization of it in the PAV window.