83 lines
2.5 KiB
JavaScript
83 lines
2.5 KiB
JavaScript
var dist2_2;
|
|
var filter2_2;
|
|
var reverb2_2 = 1;
|
|
synth2 = new Tone.FMSynth({
|
|
oscillator: {
|
|
type: "sawtooth",
|
|
detune: 0,
|
|
},
|
|
envelope: {
|
|
attack: 0,
|
|
decay: 0,
|
|
sustain: 0,
|
|
release: 0,
|
|
},
|
|
}).toDestination();
|
|
|
|
piano.on('change',function(keyValue) {
|
|
if (keyValue.state == true) { // If Key is down
|
|
synth2.triggerAttackRelease(Tone.Frequency(keyValue.note, "midi").toNote()); // Play note
|
|
}
|
|
})
|
|
// Midi input
|
|
function midiNote2(note, vel){
|
|
if(vel !=0){ // Skip Key up, If velocity is 0 then play
|
|
synth2.triggerAttackRelease(Tone.Frequency(note, "midi").toNote()); // Play note
|
|
}
|
|
}
|
|
//filters
|
|
function updateFilter2(){
|
|
var filter2 = new Tone.AutoFilter(filter2_2).start(); //LFO
|
|
var reverb2 = new Tone.Reverb(reverb2_2);
|
|
var distortion2 = new Tone.Distortion(dist2_2); //DIST
|
|
// connect the player to the filter, distortion and then to the master output
|
|
synth2.chain(filter2, distortion2, reverb2, Tone.Destination);
|
|
}
|
|
|
|
|
|
// Controls
|
|
var sus2_d = new Nexus.Dial('#sustain2', dial_settings1)
|
|
var dec2_d = new Nexus.Dial('#decay2', dial_settings1)
|
|
var atk2_d = new Nexus.Dial('#attack2', dial_settings1)
|
|
var rel2_d = new Nexus.Dial('#release2', dial_settings1)
|
|
// var tune2_d = new Nexus.Dial('#tune2', dial_settings2)
|
|
var select2 = new Nexus.Select('#osc2', dropdown_osc)
|
|
|
|
var dist2 = new Nexus.Dial('#dist2', distortion_settings)
|
|
var lfo2 = new Nexus.Dial('#lfo2', dial_settings1)
|
|
var reverb2_d = new Nexus.Dial('#reverb2', reverb_settings)
|
|
// When controls change
|
|
|
|
sus2_d.on('change',function(value) {
|
|
synth2.envelope.attack = value;
|
|
});
|
|
dec2_d.on('change',function(value) {
|
|
synth2.envelope.decay = value;
|
|
});
|
|
atk2_d.on('change',function(value) {
|
|
synth2.envelope.attack = value;
|
|
});
|
|
rel2_d.on('change',function(value) {
|
|
synth2.envelope.release = value;
|
|
});
|
|
// tune2_d.on('change',function(value) {
|
|
// synth2.oscillator.detune = value;
|
|
// });
|
|
select2.on('change',function(value) {
|
|
synth2.oscillator.type = value.value;
|
|
});
|
|
//Effect knobs
|
|
dist2.on('change',function(value) {
|
|
dist2_2 = value.toFixed(1);
|
|
typewatch(function(){updateFilter2();}, 100 );
|
|
|
|
});
|
|
lfo2.on('change',function(value) {
|
|
filter2_2 = value.toFixed(1);
|
|
typewatch(function(){updateFilter2();}, 100 );
|
|
});
|
|
reverb2_d.on('change',function(value) {
|
|
reverb2_2 = value.toFixed(0);
|
|
typewatch(function(){updateFilter2();}, 100 );
|
|
});
|