Saturday April 22nd 2017, 7:56 pm
Filed under: Realtime
Filed under: Realtime
"use strict";
// ~ ~ ~ these variables are built-in ~ ~ ~
inlets = 3;
outlets = 3;
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
var nowTime = 0;
var lastTime = 0;
var deltaTime = 0;
var timeCounter = 0;
var timeMax = 10;
var firstRun = true;
// ~ ~ ~ these functions are built-in ~ ~ ~
// this runs when the object is first loaded
function loadbang() {
init();
}
// this runs each time the object receives a bang
function bang() {
if (inlet === 0) {
update();
} else if (inlet === 2) {
init();
}
}
// this runs when the object receives a float message
function msg_float(data) {
if (inlet === 1) {
timeMax = data;
outlet(1, timeMax);
post("new max: " + timeMax.toFixed(2));
}
}
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
function init() {
if (firstRun && typeof jsarguments[1] === "number") {
timeMax = jsarguments[1];
firstRun = false;
}
nowTime = new Date().getTime();
timeCounter = 0;
outlet(0, timeCounter);
outlet(1, timeMax);
outlet(2, bang);
post("reset");
}
function update() {
lastTime = nowTime;
nowTime = new Date().getTime();
deltaTime = (nowTime - lastTime) / 1000.0;
timeCounter += deltaTime;
if (timeCounter < timeMax) {
outlet(0, timeCounter);
post(timeCounter);
} else {
init();
}
}
Comments Off on JavaScript in Max/MSP/Jitter

