xxxxxxxxxx
52
var sound, amplitude, prevTime = 0
var levels = [], maxLevel = 0
var fontSizes = [12, 16, 18, 24, 36, 60]
function preload() {
sound = loadSound("sounds/bicycle.m4a")
}
function setup() {
createCanvas(400, 400)
amplitude = new p5.Amplitude()
sound.play()
}
function draw() {
background(255);
var level = amplitude.getLevel()
if (level > maxLevel) {
maxLevel = level
}
var time = sound.currentTime()
if (Math.floor(time) !== 0 &&
Math.floor(time) !== prevTime) {
prevTime = Math.floor(time)
levels.push({
level: parseFloat(level).toFixed(2),
time: Math.floor(time),
})
}
if (!sound.isPlaying()) {
for (var i = 0; i < levels.length; i++) {
var size = findClosestSize(levels[i].level)
console.log(`Time: ${levels[i].time}s, Level: ${levels[i].level}, Size: ${size}px`)
textSize(size)
text("clackkkk", 100, (height/levels.length) * i)
}
save("screenshot.png")
noLoop()
}
}
function findClosestSize(level) {
var maxFontSize = fontSizes[fontSize.length - 1]
var size = map(level, 0, maxLevel, 0, maxFontSize)
for (var i = 0; i < fontSizes.length; i++) {
if (size <= fontSizes[i]) return fontSizes[i]
}
return maxFontSize
}