マイク音量と3D描写
let angleX = 0;
let angleY = 0;
let rotationSpeed = 0.01; // 回転速度
let scaleValue = 1; // 初期のスケール
let mic; // マイク入力を受けるための変数
function setup() {
// キャンバスをWEBGLモードで作成
createCanvas(windowWidth, windowHeight, WEBGL);
// マイク入力
mic = new p5.AudioIn();
mic.start();
}
function draw() {
background(0);
//線だけ描写したいので背景色は無し
noFill();
// マウスの位置に基づいて色を設定
let r = map(mouseX, 0, width, 0, 255);
let g = map(mouseY, 0, height, 0, 255);
stroke(r, g, 255);
// 欲しい情報はマイクボリュームだけ
let volume = mic.getLevel();
// スケールを音量に応じて変更
// マイクボリュームを0〜1の範囲から、1〜20の範囲に変換
scaleValue = map(volume, 0, 1, 1, 20);
scale(scaleValue);
// X軸、Y軸の回転
rotateX(angleX);
rotateY(angleY);
// 角度に回転速度を足し算
angleX += rotationSpeed;
angleY += rotationSpeed;
// 立方体を生成
box(200);
}