xxxxxxxxxx
// new album remote control releasing june 2022
// https://mangangs.bandcamp.com/
var snare;
var kick;
var hat;
var bass;
var sine;
var osc;
var img;
let fft;
let font;
function preload() {
snare = loadSound('snare.wav')
kick = loadSound('kick.wav')
hat = loadSound('hat.wav')
bass = loadSound('bass.wav')
img = loadImage('phone.jpeg');
font = loadFont('font.otf');
}
function setup(){
createCanvas(900,900,WEBGL);
imageMode(CENTER);
textAlign(CENTER,CENTER);
textFont(font);
frameRate(2);
noFill();
fft = new p5.FFT();
osc = new p5.SinOsc()
osc.amp(0.9);
osc.start();
snare.amp(0.5);
hat.amp(0.5);
bass.amp(0.5);
voice = new p5.Speech(floor(random(7)));
voice.speak('remote control coming out in june two thousand and twenty two');
}
let phonex=0;
let phoney=0;
function draw(){
background(122);
//image(img,0,0,width,height);
textSize(72);
var col1 = color('teal');
var col2 = color('white');
var sine = map(sin(radians(frameCount*3)),-1,1,0,1);
var terp = lerpColor(col1,col2,sine);
strokeWeight(4);
stroke(terp);
fill(terp);
text('remote control',0,-height/2+100);
translate(-width/2,-height/2);
//waveform
let amp_map = map(mouseX,0,width,0,0.5);
amp_map = constrain(amp_map,0,1);
osc.amp(amp_map);
let waveform = fft.waveform();
var sine2 = map(sin(radians(frameCount*3)),-1,1,1,5);
strokeWeight(sine2);
noFill();
playr();
frameRate(6);
var flip = frameCount%4;
if (flip == 0){
snare.play();
}
else if (flip == 1){
kick.play();
}
else if (flip == 2){
hat.play()
}
else if (flip == 3){
kick.play();
}
beginShape();
for (let i = 0; i < waveform.length; i+=2){
let x = map(i, 0, waveform.length, 50, width-50);
let y = map( waveform[i], -1, 1, 50, height-50);
curveVertex(x,y);
}
endShape();
push();
translate(width/2,height/2,222);
let scale_wave = map(sin(radians(frameCount*22)),-1,1,0.8,1.23);
scale(scale_wave);
rotateX((mouseX/2)+frameCount*0.22);
rotateY((mouseY/2)+frameCount*0.2);
rotateZ((mouseX/2)-frameCount*0.2);
texture(img);
noStroke();
//box(122);
/*
textSize(42);
stroke('red');
fill('red');
text('remote control',0,-200);
text('remote control',0,150);
*/
pop();
}
function playr(){
var c = 523.25;
var d = 587.33;
var e = 659.25;
var f = 698.46;
var g = 783.99;
var flipp = int(random(0,5));
var flipp2 = int(random(1,5));
frameRate(flipp2);
//console.log(flipp2);
var hld = [c,d,e,f,g]
//var ampp = frameCount%10;
osc.freq(hld[flipp]);
}