Class GranularSettings
java.lang.Object
net.paulhertz.pixelaudio.granular.GranularSettings
TODO Candidate for removal
GranularSettings
Common configuration for granular processing, whether pre-rendered
or streaming. Uses Minim's WindowFunction for window generation.
TODO further optimization for the next library version could include parallel processing.
TODO optimization when operator frequencies are identical could have a small but measurable effect.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumHow to handle grains near buffer edges: wrap, clamp, reflect, etc.static enumstatic enumOptional preset enum for convenience when choosing a WindowFunction. -
Field Summary
FieldsModifier and TypeFieldDescriptionintDefault grain length in samples (used if grainLengthSamples <= 0).floatdefault gain settingfloatRandom jitter applied to grain start indices (interpretation TBD).intDefault hop size in samples: determines overlap factor.booleanNormalize by window sum where appropriate to avoid overlap gain bumps.floatdefault pan settingbooleanWhether per-grain pitch (in GranularPath) overrides stream-level transpose.booleanWhether to use per-grain pan from the path (when available).private floatprivate GranularSettings.TimingModefloatStream-level transposition in semitones (for SOURCE_GRANULAR mode).ddf.minim.analysis.WindowFunctionWindow function used for grains.Current preset (used only by selectWindowPreset as a record). -
Constructor Summary
ConstructorsConstructorDescriptionGranularSettings(ddf.minim.analysis.WindowFunction windowFunction, int defaultGrainLength, int hopSamples) -
Method Summary
Modifier and TypeMethodDescriptionclone()floatgetGain()floatgetPan()floatvoidConvenience helper to select a preset and set the corresponding WindowFunction.voidsetDefaultGrainLengthMs(float grainMs, float sampleRate) For callers that think in ms but we store grain length in samples.voidsetGain(float gain) voidsetHopMs(float hopMs, float sampleRate) Set hopSamples from milliseconds + sampleRate.voidsetPan(float pan) voidsetTimeScale(float timeScale) void
-
Field Details
-
defaultGrainLength
public int defaultGrainLengthDefault grain length in samples (used if grainLengthSamples <= 0). -
hopSamples
public int hopSamplesDefault hop size in samples: determines overlap factor. -
transposeSemitones
public float transposeSemitonesStream-level transposition in semitones (for SOURCE_GRANULAR mode). -
grainJitter
public float grainJitterRandom jitter applied to grain start indices (interpretation TBD). -
normalizeByWindowSum
public boolean normalizeByWindowSumNormalize by window sum where appropriate to avoid overlap gain bumps. -
respectPerGrainPan
public boolean respectPerGrainPanWhether to use per-grain pan from the path (when available). -
perGrainPitchOverrides
public boolean perGrainPitchOverridesWhether per-grain pitch (in GranularPath) overrides stream-level transpose. -
gain
public float gaindefault gain setting -
pan
public float pandefault pan setting -
edgeMode
-
windowPreset
Current preset (used only by selectWindowPreset as a record). -
windowFunction
public ddf.minim.analysis.WindowFunction windowFunctionWindow function used for grains. Defaults to HannWindow, can be replaced at runtime. NOTE: - When grain lengths vary, windowFunction.generateCurve(length) should be cached (see WindowCache) to avoid recomputation. -
timingMode
-
timeScale
private float timeScale
-
-
Constructor Details
-
GranularSettings
public GranularSettings() -
GranularSettings
public GranularSettings(ddf.minim.analysis.WindowFunction windowFunction, int defaultGrainLength, int hopSamples)
-
-
Method Details
-
selectWindowPreset
Convenience helper to select a preset and set the corresponding WindowFunction. If preset == CUSTOM, this method does nothing; assign windowFunction manually. -
setHopMs
public void setHopMs(float hopMs, float sampleRate) Set hopSamples from milliseconds + sampleRate. -
setDefaultGrainLengthMs
public void setDefaultGrainLengthMs(float grainMs, float sampleRate) For callers that think in ms but we store grain length in samples. -
getTimingMode
-
setTimingMode
-
getTimeScale
public float getTimeScale() -
setTimeScale
public void setTimeScale(float timeScale) -
getGain
public float getGain() -
setGain
public void setGain(float gain) -
getPan
public float getPan() -
setPan
public void setPan(float pan) -
clone
-