Package net.paulhertz.pixelaudio.granular
package net.paulhertz.pixelaudio.granular
-
ClassDescriptionBasicIndexGranularSource 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.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.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 removalTODO 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().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.MCBufferSource A simple PASource that wraps a Minim MultiChannelBuffer for linear playback.OverlapUtil Small helper for computing overlap between a span [spanStart, spanEnd) and a block [blockStart, blockStart+blockSize).PAFloatSource Minimal, library-agnostic "audio source" abstraction for PixelAudio voices.PAGranularInstrument High-level granular instrument wrapper.High-level facade: play a gesture schedule using aPAGranularInstrument.PAGranularSampler UGen-based multi-voice granular sampler.PAGranularVoice A single granular "voice" driven by a PASource.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.WindowCache Simple cache for windowFunction.generateCurve(length) results.