xxxxxxxxxx
198
let cnv;
let gui;
let pos_x, pos_y;
let dist1, dist2, dist3, dist4;
let vol1, vol2, vol3, vol4;
let alfa1, alfa2, alfa3, alfa4;
let sample1, sample2, sample3, sample4;
let diagonale;
let master_vol = 1;
let sample_master;
let stato_audio = 'suspended', stato_audio_pre;
let prima_interazione = false;
let looppa = false, looppa_pre;
function preload() {
soundFormats('ogg', 'mp3');
sample1 = loadSound('Loop1.mp3');
sample2 = loadSound('Loop2.mp3');
sample3 = loadSound('Loop3.mp3');
sample4 = loadSound('Loop4.mp3');
}
function setup() {
createCanvas(windowWidth, windowHeight);
cnv = createCanvas(windowWidth, windowHeight);
cnv.mouseClicked(attiva_audio);
getAudioContext().suspend();
/*
sample1.loop();
sample2.loop();
sample3.loop();
sample4.loop(); */
sample1.setVolume(1);
sample2.setVolume(1);
sample3.setVolume(1);
sample4.setVolume(1);
diagonale = sqrt(width * width + height * height);
}
function draw() {
background("#e0e1dd");
pos_x = mouseX;
pos_y = mouseY;
dist1 = dist(pos_x, pos_y, 0, 0);
dist2 = dist(pos_x, pos_y, width, 0);
dist3 = dist(pos_x, pos_y, width, height);
dist4 = dist(pos_x, pos_y, 0, height);
/*
vol1 = map(dist1, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol2 = map(dist2, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol3 = map(dist3, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol4 = map(dist4, 0.00, diagonale, 1.00, 0.00) * master_vol;
sample1.setVolume(vol1, 0.1);
sample2.setVolume(vol2, 0.1);
sample3.setVolume(vol4, 0.1);
sample4.setVolume(vol3, 0.1); */
stato_audio = getAudioContext().state;
stroke("#415a77");
textAlign(CENTER);
textSize(20);
strokeWeight(0.25);
stroke("#415a77");
fill("#415a77");
// if (stato_audio !== 'running') {
if (looppa == false) {
text("P L A Y", width * 0.5, height * 0.5 - 5);
}
else {
vol1 = map(dist1, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol2 = map(dist2, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol3 = map(dist3, 0.00, diagonale, 1.00, 0.00) * master_vol;
vol4 = map(dist4, 0.00, diagonale, 1.00, 0.00) * master_vol;
stroke("#415a77");
fill("#415a77");
text("M O V E", pos_x, pos_y);
text("&", pos_x, pos_y + 20);
text("L I S T E N", pos_x, pos_y + 40);
rectMode(CENTER);
noStroke();
fill("#415a77");
rect(width - 45, height - 20, 90, 40);
stroke("#e0e1dd");
fill("#e0e1dd");
textAlign(CENTER);
text("S T O P", width - 43, height - 10);
stroke("#415a77");
fill("#415a77");
textSize(8);
textAlign(LEFT);
text("Estratto Soundscape PIAZZA DEGLI EROI di Thomas Bernhard", 5, height - 5);
}
/*
if (stato_audio == 'running' && stato_audio_pre == 'suspended') {
sample1.loop();
sample2.loop();
sample3.loop();
sample4.loop();
}
if (stato_audio == 'suspended' && stato_audio_pre == 'running') {
sample1.stop();
sample2.stop();
sample3.stop();
sample4.stop();
} */
if (looppa == true && looppa_pre == false) {
sample1.loop();
sample2.loop();
sample3.loop();
sample4.loop();
}
if (looppa == false && looppa_pre == true) {
vol1 = 0;
vol2 = 0;
vol3 = 0;
vol4 = 0;
sample1.setVolume(vol1, 0.1);
sample2.setVolume(vol2, 0.1);
sample3.setVolume(vol4, 0.1);
sample4.setVolume(vol3, 0.1);
sample1.stop(0.2);
sample2.stop(0.2);
sample3.stop(0.2);
sample4.stop(0.2);
}
sample1.setVolume(vol1, 0.1);
sample2.setVolume(vol2, 0.1);
sample3.setVolume(vol4, 0.1);
sample4.setVolume(vol3, 0.1);
stato_audio_pre = stato_audio;
looppa_pre = looppa;
}
function attiva_audio() {
if (dist(pos_x, pos_y, width * 0.5, height * 0.5) <= 100) {
if (getAudioContext().state !== 'running' && prima_interazione == false) {
userStartAudio();
prima_interazione = true;
}
if (looppa == false) {
looppa = true;
stato_audio = 'running';
}
}
if (dist(pos_x, pos_y, width - 10, height - 25) <= 50) {
// getAudioContext().suspend();
looppa = false;
stato_audio = 'suspended';
}
}