k y m a • t w e a k y — the kyma collective || view the current website || February 2015 Archive

/ WebHome / Sounds / Share.StructureBuildingScriptsDiscussion

Search


Share Section


Sounds
Samples
Timelines
Tools
Microsounds

Home 
Topics 
More... 

All Sections


Products
Order
Company
Community
Share
Learn

Login / Register 
Change password
Forgot password?
%SESSION_IF_AUTHENTICATED% Site Map
%SESSION_ENDIF%

Symbolic Sound


Home
Kyma Forum
Eighth Nerve

TWiki Links


%SESSION_IF_AUTHENTICATED% TWiki Shorthand
TWiki Formatting FAQ
What is TWiki?
%SESSION_ENDIF% twiki.org

Structure Building Scripts Discussion

This is an idea for building Sound structures according to rules and random number generators. One of them builds chains of processing elements; the other one can also "branch" by creating internal Mixers. It is based on the assumption that the first three inputs to the Script can function as 'sources' and that the next four can function as 'modifiers'. Each of the modifiers has a variable parameter called ?freq. Here's the annotated Script:

Declare variables
| son rando srcIndex modIndex freqRange |

Ask user to supply a seed for random number generator (or you could just use Random new and leave off the seed to get a new result each time you play it).
rando := Random newForKymaWithSeed: (self getValueFromUser: 'Enter an integer between 0 and 65536').

A block that computes an index for selecting a random 'source' from among inputs 1 to 3.
srcIndex := [:r | (r * 2 + 1) rounded].

Block to compute an index for a 'modifier' Sounds (4th through 7th inputs to the Script).
modIndex := [:r | (r * 3 + 4) rounded].

Block to compute a random frequency parameter value for the modifier Sounds.
freqRange := [:r | r * 500 + 30].

Use random index to select source Sound from the array of inputs.
son := inputs at: (srcIndex value: rando next).

For a random number of times, feed the source into a randomly chosen modifier Sound (and then feed that Sound into another modifier, etc.).
[rando next < 0.9] whileTrue: [ son := (inputs at: (modIndex value: rando next)) freq: (freqRange value: rando next) input: son].

Finally, add the constructed Sound to the Script and play it.
self addSound: son atTime: 0 s.

-- CarlaScaletti - 18 Oct 2003

 
 
© 2003-2014 by the contributing authors. / You are TWikiGuest