123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- var pan_midi_ch = script.addIntParameter("pan midi channel", "", 0);
- var pan_midi={channel:pan_midi_ch.get(), MSB:0, LSB:0, target:root.customVariables.unitValues.variables.pan.pan };
- var tilt_midi_ch = script.addIntParameter("tilt midi channel", "", 1);
- var tilt_midi={channel:tilt_midi_ch.get(), MSB:0, LSB:0, target:root.customVariables.unitValues.variables.tilt.tilt};
- var delCue_Trigger = script.addTrigger("clear cues", "clear all cues in the timeline");
- var clearTL_Trigger = script.addTrigger("clear timeline", "clear all cues and keys in the timeline");
- var createKeyGroup_Trigger = script.addTrigger("create group","create key group @ current time");
- var createKeyGroupInOut_Trigger = script.addTrigger("create InOut group","create key group @ current time and key group ten seconds later, with constant values inbetween");
- var myFile = script.addFileParameter("textFile", "this is a text file");
- var myTrigger = script.addTrigger("My Trigger", "Trigger description");
- var tl_keyframes = {cues : {}, keys : {}} ;
- var tl_groups = {groups: 0
-
- } ;
- var file_keyframes = {groups : 0} ;
- var myFloatParam = script.addFloatParameter("My Float Param","Description of my float param",.1,0,1);
- function checkAxe(CC){
- if(CC==pan_midi.channel || CC==pan_midi.channel+32){
- return pan_midi;
- }
- else return 0;
- }
- function updateAxe(axe, CC, value){
- if(CC==axe.channel){
- axe.MSB = value;
-
- }
- if(CC==axe.channel+32){
- axe.LSB = value;
-
- }
- axe.target=(128*axe.MSB+axe.LSB)/16383.0;
- script.log(axe.target);
- }
- function refresh_tl_keys_list(){
-
- if(root.sequences.keys.cues.items.length){
- for (var i = 0 ; i < root.sequences.keys.cues.items.length ; i++){
- tl_keyframes['cues']['cue'+i] = {index : i};
- tl_keyframes['cues']['cue'+i]['name'] = root.sequences.keys.cues.items[i].name;
- tl_keyframes['cues']['cue'+i]['time'] = root.sequences.keys.cues.items[i].time.get();
-
- }
- }
- if(root.sequences.keys.layers.items.length){
- for (var i = 0 ; i < root.sequences.keys.layers.items.length ; i++){
- var currentLayer = root.sequences.keys.layers.items[i] ;
- tl_keyframes['keys'][currentLayer.name] = {};
-
- if(currentLayer.automation.items.length){
-
- for (var j = 0 ; j < currentLayer.automation.items.length ; j++){
- var currentkey = currentLayer.automation.items[j] ;
- tl_keyframes['keys'][currentLayer.name][currentkey.name] = {
- position : currentkey.position.get(),
- value : currentkey.value.get()
- };
-
- }
- }
- }
- }
-
- }
- function apply_tl_groups() {
- if(tl_groups.groups){
- for(var i=0 ; i<tl_groups.groups ; i++){
-
- var tempGroup = tl_groups['group'+i];
- var hasOut= typeof tempGroup.cueOut.pan!='undefined' ;
- var layers = root.sequences.keys.layers.items ;
- var inTime = root.sequences.keys.cues[tempGroup.cueIn.cue].time.get();
- var outTime;
- if(hasOut){ outTime = root.sequences.keys.cues[tempGroup.cueOut.cue].time.get();}
- if(layers.length){
- for(var j = 0 ; j<layers.length ; j++){
- var tempLayer=layers[j].name;
- var inKey = tempGroup.cueIn[tempLayer];
- root.sequences.keys.layers[tempLayer].automation[inKey].position.set(inTime);
- if (hasOut) {
- var outKey = tempGroup.cueOut[tempLayer];
- root.sequences.keys.layers[tempLayer].automation[outKey].position.set(outTime);
-
- root.sequences.keys.layers[tempLayer].automation[outKey].value.set(root.sequences.keys.layers[tempLayer].automation[inKey].value.get());
- }
- }
- }
- }
- }
-
-
- }
- function clear_tl_cues(){
- if(root.sequences.keys.cues.items.length){
- for (var i = root.sequences.keys.cues.items.length-1 ; i>=0 ; i--){
- root.sequences.keys.cues.removeItem(root.sequences.keys.cues.items[i].name);
- }
- script.log("Cleared all cues");
- }
- else {script.log("no cues to clear");}
- }
- function clear_tl_keys(){
- if(root.sequences.keys.layers.items.length){
- for (var i = root.sequences.keys.layers.items.length-1 ; i >=0 ; i--){
- if(root.sequences.keys.layers.items[i].automation.items.length){
- for (var j = root.sequences.keys.layers.items[i].automation.items.length-1 ; j >= 0 ; j--){
- root.sequences.keys.layers.items[i].automation.removeItem(root.sequences.keys.layers.items[i].automation.items[j].name);
- }
- }
-
- }
- script.log("Cleared all keys");
- }
- else{script.log("no keys to clear");}
- }
- function clear_tl_full(){
- clear_tl_cues();
- clear_tl_keys();
- tl_groups = {groups: 0};
- myFile.writeFile(JSON.stringify(tl_groups), 1);
- }
- function create_keyGroup(mode){
-
- var tempValues = {
- position: root.sequences.keys.currentTime.get() ,
- pan : root.customVariables.unitValues.variables.pan.pan.get(),
- tilt : root.customVariables.unitValues.variables.tilt.tilt.get(),
- zoom : root.customVariables.unitValues.variables.zoom.zoom.get(),
- dim : root.customVariables.unitValues.variables.dimmer.dimmer.get(),
- focus: root.customVariables.unitValues.variables.focus.focus.get(),
- speed : root.customVariables.unitValues.variables.speed.speed.get(),
- };
-
-
- var groupIndex = tl_groups.groups;
- script.log("creating group # : " + groupIndex);
- tl_groups['group'+groupIndex] ={cueIn: {}};
- var inCue = root.sequences.keys.cues.addItem();
- inCue.time.set(tempValues.position);
- tl_groups['group'+groupIndex].cueIn.cue = inCue.name;
-
- if(mode){
- tl_groups['group'+groupIndex].cueOut = {} ;
- var outCue = root.sequences.keys.cues.addItem();
- outCue.time.set(tempValues.position+10.);
- tl_groups['group'+groupIndex].cueOut.cue = outCue.name;
- }
-
- var layers = root.sequences.keys.layers.items ;
- if(layers.length){
- for(var i = 0 ; i<layers.length ; i++){
- tempKeyIn = root.sequences.keys.layers.items[i].automation.addItem();
- tempKeyIn.value.set(tempValues[root.sequences.keys.layers.items[i].name]);
- tempKeyIn.position.set(inCue.time.get());
- tl_groups['group'+groupIndex].cueIn[root.sequences.keys.layers.items[i].name]=tempKeyIn.name;
- if(mode) {
- tempKeyOut = root.sequences.keys.layers.items[i].automation.addItem();
- tempKeyOut.value.set(tempValues[root.sequences.keys.layers.items[i].name]);
- tempKeyOut.position.set(outCue.time.get());
- tl_groups['group'+groupIndex].cueOut[root.sequences.keys.layers.items[i].name]=tempKeyOut.name;
- }
-
-
-
-
-
-
-
-
-
-
-
- }
- }
- tl_groups.groups += 1;
- myFile.writeFile(JSON.stringify(tl_groups), 1);
- }
- function init()
- {
- script.log("Reading key group file");
- tl_groups = JSON.parse(myFile.readFile());
- script.log (tl_groups.groups);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- function scriptParameterChanged(param)
- {
-
- script.log("Parameter changed : "+param.name);
- if(param.is(myTrigger)){
- script.log(root.sequences.keys.layers.items[0].automation.items.length);
- for (var j = 0 ; j<root.sequences.keys.layers.items[0].automation.items.length ; j++){
- script.log(root.sequences.keys.layers.items[0].automation.items[j].name);
- }
-
-
-
-
- }
- else if (param.is(delCue_Trigger)){clear_tl_cues();}
- else if (param.is(clearTL_Trigger)){clear_tl_full();}
- else if (param.is(createKeyGroup_Trigger)){create_keyGroup(0);}
- else if (param.is(createKeyGroupInOut_Trigger)){create_keyGroup(1);}
- else if (param.is(myFloatParam)){
-
-
- }
- else if(param.is(myEnumParam)) script.log("Label = "+param.get()+", data = "+param.getData());
-
-
- }
- var tl_refresh_delta = 0.;
- var tl_refresh_rate = 0.5;
- function update(deltaTime)
- {
- tl_refresh_delta += deltaTime ;
- if (tl_refresh_delta > tl_refresh_rate){
- tl_refresh_delta = 0. ;
- refresh_tl_keys_list();
- apply_tl_groups();
-
- }
- }
- function moduleParameterChanged(param)
- {
-
-
-
-
-
-
-
- }
- function moduleValueChanged(value)
- {
-
-
-
-
-
-
-
- }
- function ccEvent(channel, number, value)
- {
-
-
- local.sendCC(channel, number, value);
- var currentAxe=checkAxe(number);
- if (currentAxe){updateAxe(currentAxe, number, value);}
-
-
-
-
-
-
-
-
- }
|