Class GranularSettings

java.lang.Object
net.paulhertz.pixelaudio.granular.GranularSettings

public final class GranularSettings extends Object
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.
  • Field Details

    • defaultGrainLength

      public int defaultGrainLength
      Default grain length in samples (used if grainLengthSamples <= 0).
    • hopSamples

      public int hopSamples
      Default hop size in samples: determines overlap factor.
    • transposeSemitones

      public float transposeSemitones
      Stream-level transposition in semitones (for SOURCE_GRANULAR mode).
    • grainJitter

      public float grainJitter
      Random jitter applied to grain start indices (interpretation TBD).
    • normalizeByWindowSum

      public boolean normalizeByWindowSum
      Normalize by window sum where appropriate to avoid overlap gain bumps.
    • respectPerGrainPan

      public boolean respectPerGrainPan
      Whether to use per-grain pan from the path (when available).
    • perGrainPitchOverrides

      public boolean perGrainPitchOverrides
      Whether per-grain pitch (in GranularPath) overrides stream-level transpose.
    • gain

      public float gain
      default gain setting
    • pan

      public float pan
      default pan setting
    • edgeMode

      public GranularSettings.EdgeMode edgeMode
    • windowPreset

      public GranularSettings.WindowPreset windowPreset
      Current preset (used only by selectWindowPreset as a record).
    • windowFunction

      public ddf.minim.analysis.WindowFunction windowFunction
      Window 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

      private GranularSettings.TimingMode 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

      public void selectWindowPreset(GranularSettings.WindowPreset preset)
      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

      public GranularSettings.TimingMode getTimingMode()
    • setTimingMode

      public void setTimingMode(GranularSettings.TimingMode mode)
    • 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

      public GranularSettings clone()
      Overrides:
      clone in class Object