chataigne
This is an old revision of the document!
Table of Contents
Chataigne
GrandMa2 fader automation
midi module script
function init() {}
var params_container = script.addContainer("Parameters");
var log_data = params_container.addBoolParameter("LogData", "Choose if you want to see a translation of the sysex", false);
var faders_container = script.addContainer("Faders");
function sysExEvent(data) {
parseSysex(data);
}
function logData(data) {
script.log("-------- sysex message start ---------");
script.log("universal_sysex > "+ data[0]);
script.log("device_id > "+ data[1]);
script.log("msc > "+ data[2]);
script.log("command_format > "+ data[3]);
script.log("command > "+ data[4]);
script.log("fader > "+ data[5]);
script.log("fader_page > "+ data[6]);
script.log("fine_value > "+ data[7]);
script.log("coarse_value > "+ data[8]);
script.log("-------- sysex message end ---------");
}
function hexToFader(coarse, fine) {
return Math.floor(((fine / 128) + coarse) / 1.28);
}
function parseSysex(data) {
if (data[4] == 6) {
if (log_data.get())logData(data);
var fader_level = hexToFader(data[8], data[7]);
var parameter_name = "FaderValue"+data[5];
faders_container.addFloatParameter(parameter_name,"Value of the fader Exec "+data[5],fader_level,0,100);
var param = faders_container.getChild(parameter_name);
param.set(fader_level);
/*if (typeof param === "void") {
script.log("Creating the fader parameter.");
faders_container.addFloatParameter(parameter_name,"Value of the fader Exec "+data[5],fader_level,0,100);
}
else {
param.set(fader_level);
}*/
}
}
sequence mapping filter
Create a custom variable group named “Execs” first.
function fixedIt(precision, value, num) {
var num = "" + (Math.round(value * Math.pow(10, precision)));
//return num.substring(0, num.length - precision) + "." + num.substring(num.length - precision, num.length);
return "0."+num.substring(num.length - precision, num.length);
}
function faderToHex(fader_value) {
var temp_coarse = fader_value * 1.28;
var coarse = parseInt(Math.floor(temp_coarse));
var coarse_hex = Integer.toHexString(coarse);
if (coarse < 16) coarse_hex = "0"+ coarse_hex;
//var coarse_decimals = (temp_coarse %1).toFixed(2);
var coarse_decimals = parseFloat(fixedIt(2,temp_coarse %2));
var temp_fine = coarse_decimals * 128;
var fine = parseInt(Math.floor(temp_fine));
var fine_hex = Integer.toHexString(fine);
if (fine < 16) fine_hex = "0"+ fine_hex;
return {
'coarse': ""+coarse,
'fine': ""+fine
}
}
function filter(inputValue, min, max) {
var hex_values = faderToHex(Math.abs(inputValue[0]));
var parameter_name = script.getParent().getParent().getParent().getParent().getParent().name;
//root.customVariables.execs.variables.addStringParameter(parameter_name+ "_coarse","Hex coarse value of mapping "+parameter_name,hex_values.coarse);
root.customVariables.execs.variables.addStringParameter(parameter_name+ "_coarse","Hex coarse value of mapping "+parameter_name,hex_values.coarse);
var param = root.customVariables.execs.variables.getChild(parameter_name+ "_coarse");
param.set(hex_values.coarse);
root.customVariables.execs.variables.addStringParameter(parameter_name+ "_fine","Hex fine value of mapping "+parameter_name,hex_values.coarse);
var param = root.customVariables.execs.variables.getChild(parameter_name+ "_fine");
param.set(hex_values.fine);
return inputValue;
}
chataigne.1675391078.txt.gz · Last modified: by ssm2017
