|
|
@ -9,7 +9,7 @@ SynthDef(\flicker, { |automate = 1, bufs = #[0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
// end times / fade outs (must be same length as fadeInTimes with fadeInTimes[i] < fadeOutTimes[i])
|
|
|
|
// end times / fade outs (must be same length as fadeInTimes with fadeInTimes[i] < fadeOutTimes[i])
|
|
|
|
var fadeOutTimes = [47, 106] * 60;
|
|
|
|
var fadeOutTimes = [47, 106] * 60;
|
|
|
|
// These are the times to wake up with a flourish of activity and the reading of an entry in the journal
|
|
|
|
// These are the times to wake up with a flourish of activity and the reading of an entry in the journal
|
|
|
|
var wakeTimes = [4, 9, 17, 24, 34, 44, 53, 57, 73, 97, 101, 106] * 60;
|
|
|
|
var wakeTimes = [4, 9, 17, 24, 34, 44, 53, 57, 73, 97, 101] * 60;
|
|
|
|
// These are the frequency ratios of the ensemble parts
|
|
|
|
// These are the frequency ratios of the ensemble parts
|
|
|
|
var freqRatios = [2, 3/2, 5/4, 7/4, 11/8, 13/8, 17/16, 19/16, 23/16];
|
|
|
|
var freqRatios = [2, 3/2, 5/4, 7/4, 11/8, 13/8, 17/16, 19/16, 23/16];
|
|
|
|
// Triggers
|
|
|
|
// Triggers
|
|
|
@ -34,7 +34,7 @@ SynthDef(\flicker, { |automate = 1, bufs = #[0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
// Triggers for wakeTimes
|
|
|
|
// Triggers for wakeTimes
|
|
|
|
wakeUpTrigs = Select.kr(automate, [InTrig.kr(wakeTrigBusNum), timedTrigger.value(wakeTimes)]);
|
|
|
|
wakeUpTrigs = Select.kr(automate, [InTrig.kr(wakeTrigBusNum), timedTrigger.value(wakeTimes)]);
|
|
|
|
|
|
|
|
|
|
|
|
//~~~~~ Rich-get-richer Algorithm ~~~~~
|
|
|
|
//~~~~~ Rich-Get-Richer Algorithm ~~~~~
|
|
|
|
// Update resolution
|
|
|
|
// Update resolution
|
|
|
|
pulse = Impulse.kr(30);
|
|
|
|
pulse = Impulse.kr(30);
|
|
|
|
// State of consciousness: asleep or awake; a wake up lasts 60 seconds plus a bit of a tail
|
|
|
|
// State of consciousness: asleep or awake; a wake up lasts 60 seconds plus a bit of a tail
|
|
|
@ -55,7 +55,7 @@ SynthDef(\flicker, { |automate = 1, bufs = #[0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
// Feedback binary representation
|
|
|
|
// Feedback binary representation
|
|
|
|
LocalOut.kr({|i| (i <= selects) * (selects <= i) } ! 9);
|
|
|
|
LocalOut.kr({|i| (i <= selects) * (selects <= i) } ! 9);
|
|
|
|
|
|
|
|
|
|
|
|
//~~~~~ Control signals ~~~~~
|
|
|
|
//~~~~~ Control Signals ~~~~~
|
|
|
|
// The norms are basically the amount of energy to each element
|
|
|
|
// The norms are basically the amount of energy to each element
|
|
|
|
energy = norms;
|
|
|
|
energy = norms;
|
|
|
|
// In a toy model manner, this mimics voltage to the system
|
|
|
|
// In a toy model manner, this mimics voltage to the system
|
|
|
@ -87,10 +87,10 @@ SynthDef(\flicker, { |automate = 1, bufs = #[0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
// Final mix currently set to output stereo where the multiplier is the final output level
|
|
|
|
// Final mix currently set to output stereo where the multiplier is the final output level
|
|
|
|
// Send to separate channel for more control of the indivuals sounds (e.g. with a mixer)
|
|
|
|
// Send to separate channel for more control of the indivuals sounds (e.g. with a mixer)
|
|
|
|
// The lamentations of a 50 / 50 chance of sounding at all
|
|
|
|
// The lamentations of a 50 / 50 chance of sounding at all
|
|
|
|
Out.ar([0,1], Mix.new(lamentations) * fadeInOutEnv * wakeEnv * 0.75 * TIRand.kr(0, 1, wakeUpTrigs));
|
|
|
|
Out.ar([0,1], Mix.new(lamentations) * fadeInOutEnv * wakeEnv * 0.8 * TIRand.kr(0, 1, wakeUpTrigs));
|
|
|
|
Out.ar([0,1], Mix.new(hums) * fadeInOutEnv * wakeEnv * 0.075);
|
|
|
|
Out.ar([0,1], Mix.new(hums) * fadeInOutEnv * wakeEnv * 0.075);
|
|
|
|
Out.ar([0,1], Mix.new(ensemble) * fadeInOutEnv * wakeEnv * 0.125);
|
|
|
|
Out.ar([0,1], Mix.new(ensemble) * fadeInOutEnv * wakeEnv * 0.12);
|
|
|
|
Out.ar([0,1], Mix.new(drone) * fadeInOutEnv * 0.25);
|
|
|
|
Out.ar([0,1], Mix.new(drone) * fadeInOutEnv * 0.2);
|
|
|
|
|
|
|
|
|
|
|
|
//~~~~~ Visualization Control ~~~~~
|
|
|
|
//~~~~~ Visualization Control ~~~~~
|
|
|
|
// Send signals to visualizer (these could be sent and scaled appropriated to control real lights)
|
|
|
|
// Send signals to visualizer (these could be sent and scaled appropriated to control real lights)
|
|
|
|