xxxxxxxxxx
99
// Six oscillators
let osc1, osc2, osc3, osc4, osc5, osc6;
// Six amplitude envelopes
let ampEnv1, ampEnv2, ampEnv3, ampEnv4, ampEnv5, ampEnv6;
//six phase variables
let phase1, phase2, phase3, phase4, phase5, phase6; //in degrees (0 to 360)
ampEnv1 = new Tone.AmplitudeEnvelope({
"attack": 0.1,
"decay": 0.6,
"sustain": 1.0,
"release": 0.8
}).toMaster();
osc1 = new Tone.Oscillator(440, "sine")
osc1.connect(ampEnv1);
osc1.start();
osc1.volume = 1;
ampEnv2 = new Tone.AmplitudeEnvelope({
"attack": 0.5,
"decay": 0.25,
"sustain": 1.0,
"release": 0.3
}).toMaster();
osc2 = new Tone.Oscillator(440 * 3, "sine");
osc2.connect(ampEnv2);
osc2.start();
osc2.volume = 1;
ampEnv3 = new Tone.AmplitudeEnvelope({
"attack": 0.25,
"decay": 0.4,
"sustain": 1.0,
"release": 0.1
}).toMaster();
osc3 = new Tone.Oscillator(440 * 4, "sine");
osc3.connect(ampEnv3);
osc3.start();
osc3.volume = 1;
ampEnv4 = new Tone.AmplitudeEnvelope({
"attack": 0.1,
"decay": 0.3,
"sustain": 1.0,
"release": 0.3
}).toMaster();
osc4 = new Tone.Oscillator(440 * 5, "sine");
osc4.connect(ampEnv4);
osc4.start();
osc4.volume = 0.8;
ampEnv5 = new Tone.AmplitudeEnvelope({
"attack": 0.6,
"decay": 0.2,
"sustain": 0.4,
"release": 0.3
}).toMaster();
osc5 = new Tone.Oscillator(440 * 7, "sine");
osc5.connect(ampEnv5);
osc5.start();
osc5.volume = 1;
ampEnv6 = new Tone.AmplitudeEnvelope({
"attack": 0.1,
"decay": 0.8,
"sustain": 1.0,
"release": 0.2
}).toMaster();
osc6 = new Tone.Oscillator(440*8, "sine");
ampEnv1 = new Tone.AmplitudeEnvelope({
"attack": 0.1,
"decay": 0.6,
"sustain": 0.8,
"release": 0.4
}).toMaster();
function setup() {}
function keyPressed() {
ampEnv1.triggerAttack();
ampEnv2.triggerAttack();
ampEnv3.triggerAttack();
ampEnv4.triggerAttack();
ampEnv5.triggerAttack();
ampEnv6.triggerAttack();
}
function keyReleased() {
ampEnv1.triggerRelease();
ampEnv2.triggerRelease();
ampEnv3.triggerRelease();
ampEnv4.triggerRelease();
ampEnv5.triggerRelease();
ampEnv6.triggerRelease();
}