Package net.paulhertz.pixelaudio.example


package net.paulhertz.pixelaudio.example
Example Processing sketches and demonstrations of PixelAudio library functionality. Most of the Javadocs for the example sketches include a screen capture. The sketches are available as .java files in the PixelAudio library net.paulhertz.pixelaudio.example package and as Processing sketches in the Processing library release. Both formats share data in the /PixelAudio/examples/examples_data directory. If PixelAudio is new to you, I recommend starting with the Basic PixelAudio Features, followed by the Intermediate to Advanced: Tutorial Series. After that, feel free to check out the other examples and the Performance and Production Examples.

Basic PixelAudio Features

  • LookupTables demonstrates the creation and visualization of lookup tables for spatial indexing and mapping.
  • Starter is a minimal example that demonstrates initializing PixelAudio with a PixelMapGen, mapping colors to the signal path, and displaying the result.
  • MultiGenDemo demonstrates how to combine multiple PixelMapGens into a MultiGen with a single signal path.
  • MultiGenLookupTables visualizes lookup tables for various different Multigens.
  • MultiGenZoo builds on MultiGenLookupTables to show a collection of MultiGen construction methods adapted from ArgosyMixer.
  • SimpleWaveSynth demonstrates setting up a WaveSynth as an animated visual display with gamma adjustment and multiple curve generators (Hilbert, Moore, DiagonalZigzag).
  • SimpleAnimation demonstrates basic animation of a spectral display mapped to a geometric pattern.

Intermediate to Advanced: Tutorial Series

  • TutorialOne_01_FileIO covers file I/O operations including loading and saving audio and image files with PixelAudio.
  • TutorialOne_02_Animation demonstrates pixel-shifting animation within a standard framework for pixel and audio indexing. Introduces the Sampler audio synthesis instrument.
  • TutorialOne_03_Drawing enables interactive gesture drawing and real-time synthesis, with curve modeling and display control. Introduces the Granular synthesis instrument.
  • TutorialOne_04_Network demonstrates network communication capabilities using UDP for remote control and data exchange with external applications.
  • TutorialOne_05_GesturePlayground provides an interactive playground for gesture-driven sampler and granular synthesis with full parameter control through a GUI.
  • TutorialOne_06_WindowBuffer demonstrates window buffer management for streaming audio processing and sample-accurate control.

Audio and Image I/O

  • LoadImageToAudio loads an image file and converts it to audio using a PixelAudioMapper, demonstrating image-to-signal conversion with playback: an early but still useful example.
  • LoadAudioToImage loads an audio file and converts it to a visual representation using a PixelAudioMapper: an early but still useful example.

Introduction to WaveSynth Series

  • BigWaveSynth demonstrates basic features of a color organ that uses additive sine wave synthesis.
  • JSONWaveSynth demonstrates JSON-based serialization and loading of waveform parameters for configuration management.

Performance and Production Examples

  • Bagatelle is a comprehensive interactive audio-visual performance tool supporting brush management, session saving/loading, gesture recording, and real-time granular synthesis with extensive preset library support and a graphical user interface.
  • WaveSynthEditor provides a GUI for editing WaveSynth color organ parameters. It can construct complex spectral and visual compositions that can be output to video. WaveSynth parameters can be saved to or retrieved from a JSON file.
  • WaveSynthSequencer demonstrates sequencing with the WaveSynth color organ, with frequency, rhythmic timing, and image generation.
  • ArgosyMixer is a specialized mixing and synthesis tool for rhythmic pattern making in images and audio. It also provides a GUI with 18 different MultiGen instances to try out, a menu of patterns, animation controls, and image, audio, and video export.

Utility and Demonstration Examples

  • TransformPImage shows image transformation and manipulation techniques compatible with PixelAudio processing.
  • TutorialOne_06_WB_Retrofit demonstrates retrofitting existing code to use the WindowBuffer pattern for improved audio handling. Available only in Eclipse version.
  • PANetworkClientINF provides a network interface for remote communication with PixelAudio processes.

Companion Files

Some examples include Max/MSP support files for network integration:

  • UDP_Handler.maxpat - Max/MSP patch for UDP message handling
  • simpleAudioIO.maxpat - Max/MSP patch for basic audio I/O

Development Notes

Most examples extend Processing's PApplet and follow the standard setup/draw pattern. Many support interactive keyboard control for real-time parameter manipulation. The tutorial series (TutorialOne_*) provides progressive lessons in increasing complexity.

Examples Data Files

The "examples_data" folder contains various data files for use with PixelAudio example sketches. Some of the subfolders contain files that are intended for special purposes.

  • The JSON folder contains .json files intended for use with the WaveSynth examples.
  • The Bag, Body, and Sessions-Bagatelle folders are intended for use with Bagatelle presets, but also contain audio and image files you can load in most sketches.
  • Bag contains a folder of brushes that you can load in Bagatelle using then 'o' key command.
  • Body contains a folder, session_02, that contains brush and audio configuration data that you can load in Bagatelle using then 'o' key command.
  • Sesssion-Bagatelle contains brush and audio configuration data that you can load in Bagatelle using then 'o' key command.
  • The image and audio files can be opened by most of the example sketches.