Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Grain
- builds a signal path, plays a sound for a time period
and then disconnects the nodes in the signal path
- master context, cloud gain node passed in
- grain buffer source node created from buffer
- envelope node created (gain node)
- panner node created
- source node connect to panner node
- panner node connect to envelope gain node
- envelope gain node connect to cloud gain node
Cloud
- periodically creates a grain of a certain length & other params
- sound resource passed in
- set of grains
- grain parameters
- density -> rate of new grain creation
- position -> relative waveform position
- jitter -> random waveform position offset
- spread -> random pan amount (default center)
- length -> length of grain (including attack & release)
- attack -> initial volume ramp
- release -> final volume ramp
- trans -> grain pitch
Zone
- cloud of grains is toggled via user gps relative to zone center gps
- cloud params passed in
- center: gps center of circle, relative to user-initialized map 'center'
- radius: radius of circle boundary
- distance: meters from user-initialized map 'center'
- heading: direction to center from user-initialized map 'center'
- occupied: boolean usable for UI interests (show title of all occupied zones)
- registers gps event handler
- new gps coords checks if it should start/stop cloud's grains
- manages cloud play state
- playing (unplayable)
- stopped (ready)
TODO:
Control Signals
√ % of the screen is an x/y touch pad
√ alpha, beta, gamma of accelerometer to grain length, pan, grain density
gps long/lat changes file position
proximity to center of zone toggles zone's cloud
Audio
create or choose sounds for each zone
define various cloud configs for each zone
one sound - gps position changes grain window
sound for each