Create a granulator unit generator #30

Closed
colinbdclark opened this Issue Nov 24, 2012 · 1 comment

Projects

None yet

1 participant

@colinbdclark
Owner

As a starting point for a larger project to add granular synthesis unit generators to Flocking, it would be nice to have a Granulator that can create grains from a buffer or input source.

@colinbdclark colinbdclark added a commit that referenced this issue Nov 29, 2012
@colinbdclark gh-30: Basic folding of delay line logc into granular.
This refactoring, while increasing code duplication a bit, least to about a 10x performance optimization.
f406214
@colinbdclark colinbdclark added a commit that referenced this issue Nov 29, 2012
@colinbdclark gh-30: Adds support for changing the grain length and delayLineLength…
… inputs.

Note that these inputs still aren't yet modulatable.
2567e6c
@colinbdclark colinbdclark added a commit that referenced this issue Nov 29, 2012
@colinbdclark gh-30: Updated granulator to support modulation of alli inputs.
Also added test ugen implementation for Mayank.
820b662
@colinbdclark colinbdclark added a commit that referenced this issue Dec 1, 2012
@colinbdclark gh-30: Better grain allocation.
Also removes granulatorTest unit generator now that Mayank has his working nicely.
07aeb56
@colinbdclark colinbdclark added a commit that referenced this issue Dec 24, 2012
@colinbdclark gh-30: Totally refactors flock.ugen.triggerGrains.
This ugen is now buffer-based, rather than using a delay line to granulate a live input signal.
Also adds a minor refactoring of the audio file parser to support atypical file extensions.
70770c1
@colinbdclark colinbdclark added a commit that referenced this issue Jan 7, 2013
@colinbdclark gh-30: Adds interpolation to flock.ugen.triggerGrains.
This implementation is achieved by a set of core interpolation functions. They need to be inlined for performance reasons.
5139d2e
@colinbdclark colinbdclark added a commit that referenced this issue Jan 7, 2013
@colinbdclark Merge branch 'granulator'
* granulator: (22 commits)
  Added stride utility to all ugens, and updated them to use it. Moved default data (such as initial model data) into ugen defaults blocks. Tweaked demos.
  gh-30: Adds interpolation to flock.ugen.triggerGrains. This implementation is achieved by a set of core interpolation functions. They need to be inlined for performance reasons.
  gh-30: Simplification of triggerGrains.gen
  gh-30: Adds modulatable grain speed parameter to triggerGrains.
  Sample accurate grain triggering in triggerGrains. Fixed freq bug in print.
  Fixes Firefox regression caused by exposing webkitAudioContext.
  The W3C AudioContext is now a flocking-wide singleton. This is due to the fact that webkit implementation refuses to allow instantiation of more than one audio context per page. What a terrible API!
  gh-30: Fixes to triggerGrains and bufferDuration.
  Unit tests for flock.ugen.loop and lfNoise interpolation.
  Fixes accumulation bug in triggerGrains. Also adds support for negative buffer indexing.
  Fixes failure in ugen tests due to previous change in flock.enviro.clearBuses().
  Adds new loop, bufferDuration, and sampleRate ugens. Adds linear interpolation to LFNoise. Substantial refactoring of buffer resolution process to enable multiple ugens listening for changes to the same buffer id.
  gh-30: Totally refactors flock.ugen.triggerGrains. This ugen is now buffer-based, rather than using a delay line to granulate a live input signal. Also adds a minor refactoring of the audio file parser to support atypical file extensions.
  gh-30: Better grain allocation. Also removes granulatorTest unit generator now that Mayank has his working nicely.
  gh-30: Working but still inefficient granulator with trigger.
  gh-30: Updated granulator to support modulation of alli inputs. Also added test ugen implementation for Mayank.
  gh-30: Minor performance optimization, ensuring the envelope buffer only gets allocated once.
  gh-30: Grain length is now modulatable.
  gh-30: Adds support for changing the grain length and delayLineLength inputs. Note that these inputs still aren't yet modulatable.
  gh-30: Basic modelization.
  ...
d6f7ccd
@colinbdclark colinbdclark added a commit that referenced this issue Jan 7, 2013
@colinbdclark Merge branch 'master' into ff-output
* master: (46 commits)
  Added TODOs prior to merge.
  Added stride utility to all ugens, and updated them to use it. Moved default data (such as initial model data) into ugen defaults blocks. Tweaked demos.
  gh-30: Adds interpolation to flock.ugen.triggerGrains. This implementation is achieved by a set of core interpolation functions. They need to be inlined for performance reasons.
  gh-30: Simplification of triggerGrains.gen
  gh-30: Adds modulatable grain speed parameter to triggerGrains.
  Sample accurate grain triggering in triggerGrains. Fixed freq bug in print.
  Fixes Firefox regression caused by exposing webkitAudioContext.
  The W3C AudioContext is now a flocking-wide singleton. This is due to the fact that webkit implementation refuses to allow instantiation of more than one audio context per page. What a terrible API!
  gh-30: Fixes to triggerGrains and bufferDuration.
  Unit tests for flock.ugen.loop and lfNoise interpolation.
  Fixes accumulation bug in triggerGrains. Also adds support for negative buffer indexing.
  Fixes failure in ugen tests due to previous change in flock.enviro.clearBuses().
  Adds new loop, bufferDuration, and sampleRate ugens. Adds linear interpolation to LFNoise. Substantial refactoring of buffer resolution process to enable multiple ugens listening for changes to the same buffer id.
  gh-30: Totally refactors flock.ugen.triggerGrains. This ugen is now buffer-based, rather than using a delay line to granulate a live input signal. Also adds a minor refactoring of the audio file parser to support atypical file extensions.
  Refactors audio file demo styles. Micro optimization to environment.clearBuses()
  gh-30: Better grain allocation. Also removes granulatorTest unit generator now that Mayank has his working nicely.
  gh-30: Working but still inefficient granulator with trigger.
  gh-30: Updated granulator to support modulation of alli inputs. Also added test ugen implementation for Mayank.
  gh-23: Refactoring to make polyphonic synth tests more declarative.
  gh-23: Adds basic unit tests for flock.synth.polyphonic().
  ...
59bde54
@colinbdclark colinbdclark added a commit that referenced this issue Apr 7, 2013
@colinbdclark Merge branch 'master' into granulator
* master: (50 commits)
  Updates whiteNoise demo to use newer biquad filter impl.
  Stylistic and options tweaks.
  Added TODOs prior to merge.
  Added stride utility to all ugens, and updated them to use it. Moved default data (such as initial model data) into ugen defaults blocks. Tweaked demos.
  gh-30: Adds interpolation to flock.ugen.triggerGrains. This implementation is achieved by a set of core interpolation functions. They need to be inlined for performance reasons.
  gh-30: Simplification of triggerGrains.gen
  gh-30: Adds modulatable grain speed parameter to triggerGrains.
  Sample accurate grain triggering in triggerGrains. Fixed freq bug in print.
  Fixes Firefox regression caused by exposing webkitAudioContext.
  The W3C AudioContext is now a flocking-wide singleton. This is due to the fact that webkit implementation refuses to allow instantiation of more than one audio context per page. What a terrible API!
  gh-30: Fixes to triggerGrains and bufferDuration.
  Unit tests for flock.ugen.loop and lfNoise interpolation.
  Fixes accumulation bug in triggerGrains. Also adds support for negative buffer indexing.
  Fixes failure in ugen tests due to previous change in flock.enviro.clearBuses().
  Adds new loop, bufferDuration, and sampleRate ugens. Adds linear interpolation to LFNoise. Substantial refactoring of buffer resolution process to enable multiple ugens listening for changes to the same buffer id.
  gh-30: Totally refactors flock.ugen.triggerGrains. This ugen is now buffer-based, rather than using a delay line to granulate a live input signal. Also adds a minor refactoring of the audio file parser to support atypical file extensions.
  Refactors audio file demo styles. Micro optimization to environment.clearBuses()
  gh-30: Better grain allocation. Also removes granulatorTest unit generator now that Mayank has his working nicely.
  gh-30: Working but still inefficient granulator with trigger.
  gh-30: Updated granulator to support modulation of alli inputs. Also added test ugen implementation for Mayank.
  ...

Conflicts:
	flocking/flocking-ugens.js
1aed8c0
@colinbdclark colinbdclark added a commit that referenced this issue Apr 7, 2013
@colinbdclark Merge branch 'granulator'
* granulator:
  Removes stray DS_Store file.
  gh-30: Adds thanks to Mayank for the granulator ugen in README.
  gh-30: Fixes bug when modulating numGrains.
  gh-30: Adds mul/add support to granulator.
  gh-30: Whitespace fixes.
  gh-30: Bug fixes and minor stylistic tweaks to granulator and demo.
  gh-30: Addes granular demo (from Mayank). Fixes a few minor bugs.
  changes according to colins feb 3 comments
  added granulator with control rates for all params
  Added first pass at Granulator
6fa60a6
@colinbdclark
Owner

Thanks to Mayank Sanganeria for his delay line granulator. Flocking now has to complementary granular synthesis ugens: triggerGrains and granulator. Additional ugens can be filed under separate, more specific tickets.

@colinbdclark colinbdclark was assigned Apr 7, 2013
@colinbdclark colinbdclark added a commit that referenced this issue Apr 21, 2013
@colinbdclark Merge branch 'master' into infusion
* master:
  Removes stray DS_Store file.
  gh-30: Adds thanks to Mayank for the granulator ugen in README.
  gh-30: Fixes bug when modulating numGrains.
  gh-30: Adds mul/add support to granulator.
  gh-30: Whitespace fixes.
  gh-30: Bug fixes and minor stylistic tweaks to granulator and demo.
  gh-30: Addes granular demo (from Mayank). Fixes a few minor bugs.
  changes according to colins feb 3 comments
  added granulator with control rates for all params
  Added first pass at Granulator

Conflicts:
	flocking/flocking-ugens.js
1dafa1e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment