Package net.paulhertz.pixelaudio.curves
Class AudioBrush
java.lang.Object
net.paulhertz.pixelaudio.curves.AudioBrush
- Direct Known Subclasses:
GranularBrush,SamplerBrush
Abstract class for combining gesture data from PACurveMaker with audio synthesis parameters
from GestureGranularConfig.Builder.
TODO links to relevant classes
In the PixelAudio library examples, a "brush" uses gesture to control sound, and can draw the
gesture to the display as an interactive UI element. In other words, brushes advance the core
design theme of PixelAudio: combining image and audio through structural correspondences.
See the GesturePlayground
sketch in the example code for a GUI-driven tour of features.
Two included subclasses, SamplerBrush and GranularBrush, model brushes for the PASamplerInstrument and PAGranularInstrument classes. Subclasses may add fields or behavior, but should preserve:
- a stable PACurveMaker reference
- a mutable or snapshot-based config for rendering both image and audio
TODO links to relevant classes
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final GestureGranularConfig.BuilderThe configuration builder for audio synthesis for this brushprivate final PACurveMakerThe PACurveMaker instance for curve data and rendering for this brushprivate GestureTransformStateOptional transform state for applying geometric transformations to the curve data -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAudioBrush(PACurveMaker curve, GestureGranularConfig.Builder cfg) Constructs an AudioBrush with the given curve and configuration builder. -
Method Summary
Modifier and TypeMethodDescriptionvoidApplies the current transform to the curve.voidCaptures the untransformed rest points for the current transform state.cfg()Returns the configuration builder associated with this brush.curve()Returns the PACurveMaker instance associated with this brush.Ensures that a transform state is available for this brush.booleanChecks if a transform is currently set.voidRestores the original transform for the curve.voidSets the transform state for this brush.snapshot()Returns an immutable snapshot of the current configuration state.Returns the current transform state, or null if no transform is set.
-
Field Details
-
curve
The PACurveMaker instance for curve data and rendering for this brush -
cfg
The configuration builder for audio synthesis for this brush -
transformState
Optional transform state for applying geometric transformations to the curve data
-
-
Constructor Details
-
AudioBrush
Constructs an AudioBrush with the given curve and configuration builder.- Parameters:
curve- a PACurveMaker instancecfg- a GestureGranularConfig
-
-
Method Details
-
curve
Returns the PACurveMaker instance associated with this brush.- Returns:
- the PACurveMaker instance for this brush
-
cfg
Returns the configuration builder associated with this brush. Mutating the builder affects subsequent rendering unless a snapshot is taken viacfg().build()orsnapshot(). -
snapshot
Returns an immutable snapshot of the current configuration state. -
transform
Returns the current transform state, or null if no transform is set.- Returns:
- the current GestureTransformState, or null if none is set
-
setTransform
Sets the transform state for this brush.- Parameters:
state- the GestureTransformState to set
-
hasTransform
public boolean hasTransform()Checks if a transform is currently set.- Returns:
- true if a transform is set, false otherwise
-
ensureTransform
Ensures that a transform state is available for this brush.- Returns:
- the GestureTransformState for this brush
-
captureRestPoints
public void captureRestPoints()Captures the untransformed rest points for the current transform state. -
applyTransform
public void applyTransform()Applies the current transform to the curve. -
restoreTransform
public void restoreTransform()Restores the original transform for the curve.
-