xxxxxxxxxx
52
let tempArray;
let cloudArray;
let lat = 34.05;
let lng = -118.24;
let url ="https://api.open-meteo.com/v1/forecast?latitude=" +lat +"&longitude=" +lng +"&hourly=temperature_2m&temperature_unit=fahrenheit&hourly=cloudcover";
let index = 0;
function preload() {
loadJSON(url, (weatherData) => {
tempArray = weatherData.hourly.temperature_2m;
cloudArray = weatherData.hourly.cloudcover;
console.log(tempArray, cloudArray);
});
}
function setup() {
createCanvas(400, 400);
startButton = createButton("start transport");
stopButton = createButton("stop transport");
startButton.mousePressed(startTransport);
stopButton.mousePressed(stopTransport);
}
function draw() {
background(220);
}
const myLoop = new Tone.Loop((time) => {
let temp = tempArray[index];
let cloudCover = cloudArray[index];
let tempMap = floor(map(temp, 40, 70, 0, notes.length, true));
let cloudMap = floor(map(cloudCover, 0, 100, 6000, 200));
let note = notes[tempMap];
filter.frequency.value = cloudMap;
fmSynth.triggerAttackRelease(note, "1n", time);
index++;
if (index > tempArray.length - 1) {
index = 0;
stopTransport();
}
}, "1n").start(0);
function startTransport() {
Tone.start();
Tone.Transport.start();
}
function stopTransport() {
Tone.Transport.stop();
fmSynth.triggerRelease();
}