- waveform display:
- display write head
- display play head
- move write head with mouse (when stopped only?)
- move play head with mouse (at all times, relative only - no jumping)
- show spray amount visually
- spray offset amount (-1, 0, 1)
- Volume control:
- in volume (dry)
- out volume (wet)
- out mix control
- Buffer controls:
- rec active (button)
- overdub active (button)
- clear bufer (button)
- Grain playback control:
- Density
- Option to adjust Density in Hz or Beats
- Possibly have two seperate controls, and allow syncing between to allow ramping effects
- Readhead speed (-5x, 5x)
- Readhead sync to writehead (to use Fabric as a set'n'forget effect)
- Readhead sync to writehead offset (as above)
- Grain length
- Grain Pitch Spray control
- Grain Pitch
- Density
- Stereo image control:
- Pan spray (L & R)
- Stereo Width
- Grain Envelope controls:
- Sides (taken care of with Tukey window function)
- Tilt (moving apex left/right)
- Curve (move from a convex - straigh - concave shape)
- Grain direction:
- forward
- reverse
- Implemented as direction forward/reverse factor
- State:
- Save/Load the current content of the audio buffer to a wav file
- Import wav files of different lengths
- Read first 10 seconds, or allow user to move the audio file if longer?
- Save the audio buffer state when record is off
- Buffer Logic:
- Circular buffer with xfade between writehead and readhead
- Envelope:
- Grain Envelope with 2 Parameters: Sides, Tilt
- Volume:
- control the output volume based on sqrt of active grains
- SinC Interpolation for sub-sample playback? (optional)
- Lerp Interpolatioin for sub-sample playback