// Drone from the mind of ScottG, coded by Les Hall // Copyright 2009 Les Hall 10 => float fBase; // base frequency 1 => float gainMax; // maximum osc gain [1, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47] @=> int harmonics[]; harmonics.cap() => int n; // number of oscillators 5 => float fModGain; // frequency modulation gain Noise noise[n]; LPF filter[n]; SinOsc osc[n]; Noise fNoise[n]; LPF fFilter[n]; Gain mod; for (int i; i filter[i] => blackhole; osc[i] => dac; 1 => filter[i].freq; harmonics[i] * fBase => osc[i].freq; fNoise[i] => fFilter[i] => blackhole; 1 => fFilter[i].freq; } adc => dac; fun void modulate() { while (true) { for (int i; i osc[i].gain; fModGain * harmonics[i] * fFilter[i].last() + harmonics[i] * fBase => osc[i].freq; } 10::ms => now; } } spork ~ modulate(); day => now; // recording interface //dac => Gain attenuate => WvOut wvout => blackhole; //0.5 => attenuate.gain; //"SpaceMusic.wav" => wvout.wavFilename; //3::minute => now; // save file //"SpaceMusic.wav" => wvout.closeFile;