All Classes and Interfaces
Class
Description
Value object for Minim ADSR parameters.
Utility functions for ADSRParams.
Standard orientation ("NADA") for PixelMapGen puts the start point at (0,0).
Abstract class for combining gesture data from PACurveMaker with settings for
modifying gesture data and setting audio generation parameters with GestureGranularConfig.Builder.
Experimental helper class for PixelAudioMapper and other classes or methods that transcode audio and color values.
AudioScheduler
A sample-accurate scheduler for things that should occur at specific times in an audio stream.
Policy for point events whose sampleTime is already in the past when processed.
A one-shot event that occurs at an absolute sample index.
A duration event active on [startSample, endSample) where endSample is exclusive.
Utility conversions for audio.
BasicIndexGranularSource
A simple granular source that:
- reads from a mono float[] source buffer,
- uses a list of grain start indices (sample positions),
- plays grains in order with fixed hop and fixed grain length,
- applies a window (Minim WindowFunction) per grain,
- sums all active grains into outL/outR.
Provides static methods for rotating and reflecting 2D integer arrays using
index remapping.
BoustropheGen generates a signal path that starts at (0,0) and reads left-to-right to (width-1, 0).
A PixelMapGen that loads data from an external pixelMap, such as might be saved in a JSON file.
Immutable, schedule-aligned per-event parameters for Model-A gesture playback.
Immutable core parameters for gesture-driven granular playback.
UI preset hint for timing.
TODO candidate for removal
GestureGranularRenderer
Renders a GestureSchedule into audio by triggering a granular "burst"
(IndexGranularSource micro-train) at each scheduled event time.
Default mapping for PixelAudio:
- sample index from PixelAudioMapper.lookupSample(x,y)
- optional mapping offset (totalShift) and modulo mapSize
- soft pan range mapped from x across screenWidth
Designed to be stateful: totalShift and panRange can change over time
(e.g., sliding window through a larger buffer).
Friendly, user-facing subset of
GestureGranularConfig.Convenience window presets for typical grain shaping.
Maps gesture points to indices into a mappingSnapshot array.
Default: interpret p as pixel coordinates and mappingSnapshot as width*height raster.
DONE for granular brushes, construct ADSR, don't read from GUI
Simple container for a brush hit-test result.
Barebones interface for "something that happens at a certain point":
in AudioScheduler the time-when-something-happens gets connected to
the-room-where-it-happens and the entire cast of Hamilton steps in, if you let them.
Simple container for a brush hit-test result.
Future Development:
Barebones interface for "something that happens at a certain point",
and then in AudioScheduler the time-when-something-happens gets connected to
the-room-where-it-happens and the entire cast of Hamilton steps in, if you let them.
TODO candidate for removal
GranularPath
A fixed sequence of GrainSpecs that describe how to traverse a source buffer.
Represents one "grain blueprint":
where to read in the source, how long, and optional per-grain parameters.
TODO Candidate for removal
TODO Candidate for removal
GranularSettings
Common configuration for granular processing, whether pre-rendered
or streaming.
How to handle grains near buffer edges: wrap, clamp, reflect, etc.
Optional preset enum for convenience when choosing a WindowFunction.
GranularUGen
A Minim UGen that uses BasicIndexGranularSource to generate audio
in blocks, but feeds it sample-by-sample via uGenerate().
Generates coordinates and LUTs for a Hilbert curve over a square bitmap starting at (0,0) and ending at (width-1, 0).
TODO Candidate for removal
May still prove useful
IndexGranularSource
"Standard" linear granular source that:
- reads from a mono float[] source buffer,
- starts at a given source sample index,
- uses a fixed grain length and hop in samples,
- plays either:
* a fixed number of grains, or
* as many grains as needed to fill a target duration,
- applies a window and equal-power pan.
Deprecated.
Implements a simple Lindenmeyer system (L-system), a so-called DOL-system:
deterministic and context-free.
MCBufferSource
A simple PASource that wraps a Minim MultiChannelBuffer for linear playback.
Generates a Moore curve over a square bitmap starting at (width/2 - 1, 0) and ending at (width/2, 0).
A PixelMapGen child class that combines multiple PixelMapGen instances with a single signal path.
K.jpg's OpenSimplex 2, faster variant
from https://github.com/KdotJPG/OpenSimplex2
OverlapUtil
Small helper for computing overlap between a span [spanStart, spanEnd)
and a block [blockStart, blockStart+blockSize).
Class to store a path composed of lines and Bezier curves, along with fill, stroke, weight and opacity values.
Provides storage for a cubic Bezier curves's control points and anchor point.
PACurveMaker is a utility and storage class for gestures and curve modeling, with
point reduction and drawing to on-screen PApplets or off-screen PGraphics.
Simple Processing-friendly callback interface.
A class to maintain static versions of point reduction and curve-modeling methods.
PAFloatSource
Minimal, library-agnostic "audio source" abstraction for PixelAudio voices.
PAGesture provides a definitional interface for "gestures":
A gesture is constructed from
1) a list of points and
2) a list of time offsets where
3) both lists have the same cardinality and
4) time offsets are monotonically non-dereasing.
PAGestureParametric
Treats a gesture defined by (time, x, y) samples as a parametric curve:
u ∈ [0,1] → (t(u), x(u), y(u))
Under the hood:
- timesMs: int[] of time offsets (ms), ascending, timesMs[0] == 0
- points: PVector list (x,y) of same length
You can:
- sample with a linear parameter: f(u) = u
- pass a warp function f(u) to speed up/slow down traversal
Exponential warp (speeding up over time)
DoubleUnaryOperator expWarp = u -> (float_ Math.pow(u, 2.0); // u^2
GestureParametric.Sample s = gp.sample(0.5f, expWarp);
Log-like warp (fast at start, slow at end)
DoubleUnaryOperator sqrtWarp = u -> (float_ Math.sqrt(u); //
GestureParametric.Sample s = gp.sample(0.5f, sqrtWarp);
Something like f(u) = (e^{k * u} - 1) / (e^{k} - 1) for more dramatic warps.PAGranularInstrument
High-level granular instrument wrapper.
High-level facade: play a gesture schedule using a
PAGranularInstrument.PAGranularSampler
UGen-based multi-voice granular sampler.
PAGranularVoice
A single granular "voice" driven by a PASource.
PAIndexParametric
Parametric view of a indexed offsets, typically into a float[] buffer (audio signal).
Stores a line vertex consisting of a single point.
Interface for applications extending PApplet that use NetworkDelegate to send and receive UDP messages.
PAPathParametric
Parametric view of a polyline path (e.g., polygonized Bezier).
Generic interface for anything that can be "played."
Provides a minimal playback API plus backward-compatible overloads
for sampler instruments and other PAPlayable classes.
Backend engine contract for sampler implementations.
PASamplerInstrument
Represents a playable instrument that uses a PASampler instantiated as a PASharedBufferSampler
to trigger audio playback from a shared buffer that is (currently) a Minim MultiChannelBuffer.
PASamplerInstrumentPool
Manages a group of PASamplerInstruments sharing the same source buffer
and audio output.
PASamplerInstrumentPoolMulti
Manages multiple PASamplerInstrumentPool instances, each keyed by name.
Specialized playable interface for sample-based instruments.
PASamplerVoice — a single playback "voice" reading from a shared mono buffer.
UGen-based sampler that plays multiple PASamplerVoice instances
from a single shared mono buffer (channel 0 of a MultiChannelBuffer)
which is an array of floating point samples over (-1.0..1.0).
PASource
A PAFloatSource with an additional pitch policy hint.
PathGranularSource
Granular source that:
- reads from a mono float[] source buffer,
- uses a GranularPath for where/how to place grains,
- applies per-grain gain and pan,
- can either:
* play grains on a fixed hop grid (hopSamples), or
* use per-grain timeOffsetMs to approximate the original gesture timing,
- uses a Minim WindowFunction.
Interface for line and curve vertices.
PitchPolicy
Determines how PASamplerInstrument / PASamplerVoice should interpret
their pitch parameter in combination with a given PASource.
As of pre-release version 0.9.2-beta, PixelAudioMapper is substantially complete, though
there are a number of features that have not been tested or demonstrated with code examples.
List of available color channels, "L" for lightness, since "B" for brightness is taken.
Abstract class for handling coordinates and LUT generation for PixelAudioMapper.
Holds information about a triggered playback event.
Deprecated.
A wrapper for OpenSimplex2, adapted from Christian Maher's code at
https://cmaher.github.io/posts/working-with-simplex-noise/
SimpleADSR — software envelope generator with optional exponential curves.
Used to schedule or track events that take place at specific coordinate locations.
This example application builds on TutorialOne_01_FileIO, which provided commands to
open and display audio and image files, transcode image pixel data to audio samples,
transcode audio samples to image pixel data, and save audio and image files.
QUICK START
A light-weight version of the AudioBrush class for combining gestures and audio synthesis.
Defines the curve drawing model for a brush using PACurveMaker.
QUICK START
A light-weight version of the AudioBrush class for combining gestures and audio synthesis.
Defines the curve drawing model for a brush using PACurveMaker.
Data storage for WaveSynth operator data.
Implements a combination of color organ and additive audio synth.
Utilities for generating WaveSynth "instruments" and working with WaveSynth data.
WindowCache
Simple cache for windowFunction.generateCurve(length) results.