Package net.paulhertz.pixelaudio.example


package net.paulhertz.pixelaudio.example
Example Processing sketches and demonstrations of PixelAudio library functionality. The sketches are available as .java files in the PixelAudio library net.paulhertz.pixelaudio.example package and as Processing sketches in the 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 switching between multiple PixelMapGen implementations (Hilbert, Moore, DiagonalZigzag) to explore different spatial patterns.
  • MultiGenLookupTables generates and displays lookup tables for different curve generators, useful for understanding spatial mapping.
  • 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.
  • BigWaveSynthAudio extends BigWaveSynth with audio output capabilities, enabling real-time sonification of visual patterns.
  • 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.