xxxxxxxxxx
170
let colonne, righe;
let scala = 20;
let rumore_perlin = [];
let altezza = 200;
let perlin_x = 0, perlin_y = 0;
let incr_perlin = 0.06;
let movimento = 0;
let vel_movimento = 0.065;
let rumore;
let numero_filtri = 10;
let banco_filtri = [];
let amp_filtro = [];
let salto_filtro;
let freq_filtro = 200;
let cnv;
let riverbero;
let amp_perlin = [];
let fs = false;
let mouse_pre = false, mouse_ora = false;
function setup() {
createCanvas(windowWidth, windowHeight);
colonne = width * 2 / scala;
righe = height * 1.3 / scala;
altezza = height * 0.8;
frameRate(20);
/*
rumore = new p5.Noise('white');
rumore.amp(1);
rumore.start();
rumore.disconnect();
riverbero = new p5.Reverb();
for (let i = 0; i < numero_filtri; i++) {
banco_filtri[i] = new p5.BandPass();
rumore.connect(banco_filtri[i]);
banco_filtri[i].disconnect();
riverbero.process(banco_filtri[i], 2, 40); //tempo rev, decayRate %
banco_filtri[i].freq(freq_filtro + freq_filtro * i);
// banco_filtri[i].pan(map(i, 0, (numero_filtri - 1), -1, 1));
banco_filtri[i].res(10);
banco_filtri[i].amp(0);
}
riverbero.drywet(0.5); */
}
function draw() {
movimento -= vel_movimento;
perlin_x = 0;
for (let i = 0; i < colonne; i++) {
rumore_perlin[i] = [];
perlin_y = movimento;
for (let j = 0; j < righe; j++) {
rumore_perlin[i][j] = map(noise(perlin_x, perlin_y), 0, 1, - altezza * 2, altezza);
perlin_y += incr_perlin;
}
perlin_x += incr_perlin;
}
background(0);
stroke(255);
noFill();
for (let j = 0; j < righe - 1; j++) {
beginShape(TRIANGLE_STRIP);
for (let i = 0; i < colonne; i++) {
vertex(i * scala, j * scala * rumore_perlin[i][j]);
vertex(i * scala, (j + 1) * scala * rumore_perlin[i][j + 1]);
if (j * scala * rumore_perlin[i][j] < height &&
j * scala * rumore_perlin[i][j] > 0 &&
i * scala < width &&
i * scala > 0) {
text(rumore_perlin[i][j], i * scala, j * scala * rumore_perlin[i][j]);
amp_perlin[i] = rumore_perlin[i][j] * scala;//j * scala * rumore_perlin[i][j];
}
} //fine for colonne
endShape();
} //fine for righe
/*
for (let i = 0; i < numero_filtri; i++) {
if (amp_perlin[i] < height) {
let indice = floor(i + i * numero_filtri/colonne);
banco_filtri[i].freq(freq_filtro + freq_filtro * i);
// amp_perlin[i] = map(amp_perlin[i], - altezza * 2, altezza, 0, 1);
amp_perlin[indice] = map(amp_perlin[indice], 0.2, 1, 0, 1);
let reso = map(amp_perlin[indice], 0, 2, 2, 1);
banco_filtri[i].res(reso);
banco_filtri[i].amp( -amp_perlin[indice] / 700 );
// print (amp_perlin[indice]);
}
else {
banco_filtri[i].res(0);
banco_filtri[i].amp(0);
}
}
*/
if (!fullscreen()) {
noFill();
stroke(255, 0, 0);
rectMode(CORNER);
rect(10, 10, 100, 30)
textAlign(LEFT);
fill(255, 0, 0);
text("FULL SCREEN", 20, 30);
}
mouse_ora = mouseIsPressed;
if (mouse_ora == true && mouse_pre == false) {
if (mouseX > 10 && mouseX < 100 && mouseY > 10 && mouseY < 30) {
fs = fullscreen();
fullscreen(!fs);
}
}
mouse_pre = mouse_ora;
} //fine draw
function windowResized() {
resizeCanvas(windowWidth, windowHeight);
}