xxxxxxxxxx
147
let myFont;
let letter = 'M';
let points = [];
let mic;
let c1, c2;
let currentFactor = 4;
//let slider;
//let checkbox;
let maxLevel = 0;
function preload() {
myFont = loadFont('FuturaLTPro-Bold.otf');
mic = new p5.AudioIn();
mic.start();
}
function setup() {
createCanvas(500, 500);
points = myFont.textToPoints(letter, 0, 0, 340, {
sampleFactor: 0.1
});
frameRate(10)
//slider = createSlider(0, 100, 0);
//slider.position(10, 10);
//slider.style('width', '200px');
//checkbox = createCheckbox('Enable Slider', false);
// slider.style('display', 'none');
//checkbox.style('display', 'none');
}
function draw() {
setGradientColors();
setGradient(c1, c2, currentFactor); // change ra
fill('white');
textAlign(CENTER, CENTER);
//stroke('white')
//noStroke();
// Displays frameCount at top left
text(hour(), 20, 20);
let level = mic.getLevel();
//if(checkbox.checked())
// level = slider.value() / 100;
if(level > maxLevel)
maxLevel = level;
text('Level: ' + Math.round(level * 100) + '%', 465, 20);
text('Max: ' + Math.round(maxLevel * 100) + '%', 465, 40);
translate(90, 390);
let stretch = level; //map(level, 0, 1, 0, 1);
let change = map(level, 0, 1, 0, 20); // vibration change
scale(1, 1 + stretch); // sets the height
// to comment out if static background is required
currentFactor = map(level * 1, 0, 0.65 , 0, height); // for gradient
//currentFactor = height + (map(level, 0, 1, 0, height) * -1);
for (let i = 0; i < points.length; i++) {
let pt = points[i];
let rx = random(-change, change); // random change in x for each ellipse
ellipse(pt.x + rx, pt.y, 10, 10);
}
}
function setGradient(c1, c2, factor) {
// noprotect
if(factor >= height)
factor = height-1;
noFill();
for (var y = 0; y < height; y++) {
var inter = map(y, 0, height-factor, 0, 1);
var c = lerpColor(c1, c2, inter); // inter = 01
stroke(c);
line(0, y, width, y);
}
}
function setGradientColors() {
// sunset 8 to 5 / sunrise
let currentHour = hour();
//currentHour = 20; // 0-23
switch (currentHour) {
// sunrise
case 6:// 6am
case 7:// 7am
case 8:// 8am
case 9:// 9am
case 10://10am
case 11:// 11am
c1 = color('lightyellow');
c2 = color('sandybrown');
break;
case 12:// 12pm
case 13:// 1pm
case 14:// 2pm
case 15:// 3pm
case 16:// 4pm
case 17:// 5pm
c1 = color('sandybrown');
c2 = color('rosybrown');
break;
//sunset
case 18:// 6pm
case 19: // 7pm
case 20: // 8pm
case 21:// 9pm
case 22:// 10pm
case 23:// 11pm
c1 = color('rosybrown');
c2 = color('navy');
break;
case 0:// 12am
case 1:// 1am
case 2:// 2am
case 3:// 3am
case 4:// 4am
case 5:// 5am
c1 = color('navy');
c2 = color('darkgray');
break;
}
}