"use_strict"; var tsk = new Task(repeater_function, this); var s = ""; function text(val){ s = val; var length = s.length; tsk.cancel(); tsk.interval = 200; tsk.repeat(length); } function repeater_function() { var index = tsk.iterations; outlet(0,s.slice(0,index)); }
Category Archives: js
HSL to RGB 変換 JS オブジェクト #max7
JSオブジェクト用コード
function rgbToHsl(r, g, b){ r /= 255, g /= 255, b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if(max == min){ h = s = 0; // achromatic }else{ var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch(max){ case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } outlet(0, h, s, l); } function hslToRgb(h, s, l){ var r, g, b; if(s == 0){ r = g = b = l; // achromatic }else{ function hue2rgb(p, q, t){ if(t < 0) t += 1; if(t > 1) t -= 1; if(t < 1/6) return p + (q - p) * 6 * t; if(t < 1/2) return q; if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; return p; } var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hue2rgb(p, q, h + 1/3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1/3); } r = Math.round(r*255); g = Math.round(g*255); b = Math.round(b*255); outlet(0,r, g, b); }
引用元
Max for Liveのデバイス内でトラック番号を取得 : #maxforlive
目的
Max for Live のデバイス .amxd 内で自信 が挿入されているトラック番号を、jsオブジェクトで取得してみます。
jsオブジェクトコード
//init "use strict"; inlets = 1; outlets = 1; autowatch = 1; function bang(){ var api = new LiveAPI(this.patcher); api.path = "this_device"; var pathStr = api.path; var paths = pathStr.split(" "); outlet(0,parseInt(paths[2])); }
解説
LiveAPIのインスタンスへ”this_device”を指定する事で、api.pathはLive Object Modelにおける自信が挿入されている箇所の絶対パスを返します (例えば “live_set tracks 2 devices 1” になり、.amxdのパスが2番めのトラックの1番目のデバイスと分かる)。pathをスプリットしてトラック番号をゲットできました!