package be.tarsos.dsp.granulator; /** * The nested class Grain. Stores information about the start time, current position, age, and grain size of the grain. */ class Grain{ /** The position in millseconds. */ double position; /** The age of the grain in milliseconds. */ double age; /** The grain size of the grain. Fixed at instantiation. */ double grainSize; boolean active; /** * Sets the given Grain to start immediately. * * @param g * the g * @param time * the time */ void reset(double grainSize,double randomness,double position,double timeStretchFactor,double pitchShiftFactor){ double randomTimeDiff = (Math.random() > 0.5 ? +1 : -1) * grainSize * randomness; double actualGrainSize = (grainSize + randomTimeDiff) * 1.0/timeStretchFactor + 1; this.position = position - actualGrainSize; this.age = 0f; this.grainSize = actualGrainSize; this.active =true; } }