ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray BrainModular BrainModular Users Forum 2017-10-30T12:18:58+02:00 https://brainmodular.com/forums/app.php/feed/topic/5884 2017-10-30T12:18:58+02:00 2017-10-30T12:18:58+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38227#p38227 <![CDATA[Array Element Pass if Change]]> Can solve many things here or here but for big arrays it isn't very efficient virtually having internally 1024 pass if changes wired for ex, and a pain to wire those 1024 outputs, while we could finds hacks with iml auto wiring, solving this on the vst module in this case would be the only user friendly solution im affraid

Statistics: Posted by 23fx23 — 30 Oct 2017, 11:18


]]>
2017-10-30T09:46:19+02:00 2017-10-30T09:46:19+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38224#p38224 <![CDATA[Array Element Pass if Change]]>
I would find a module for pass if changed per array element very very useful. Currently, pass if change module only turns the entire flow on or off.
Maybe as a module or perhaps a script guru can make this?
this does the trick doesn't it ?

or did I miss something ?

File uploaded: http://www.sensomusic.com/forums/upload ... change.pat

Statistics: Posted by oli_lab — 30 Oct 2017, 08:46


]]>
2017-10-30T07:39:00+02:00 2017-10-30T07:39:00+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38223#p38223 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 30 Oct 2017, 06:39


]]>
2017-10-30T02:32:01+02:00 2017-10-30T02:32:01+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38220#p38220 <![CDATA[Array Element Pass if Change]]>
I also had that idea of 'brute force'^^ wiring all params and script pass if change for individual outs, wich seems the best workable solution indeed curently, but it seems bit heavy to me..., ( but since nearly all ingredients are there, why not push it up^^).
Im quite sure a ('sounds simple*) modification of the vst module code, meaning on array in change, scan and modifiy only the vst values that changed would solve a lot of things we face here with just one array wire to plug, (ideally would also need a way to make ui take over input in case a param is manupulated both on ui and input at the same time, wich might be slighly more complex, but sounds like 'on mouse down on vst, get manipulated id, stop that id from array in and use ui value', relase on mouse up and let pass back input value if it changes again..)

Statistics: Posted by 23fx23 — 30 Oct 2017, 01:32


]]>
2017-10-30T01:53:11+02:00 2017-10-30T01:53:11+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38219#p38219 <![CDATA[Array Element Pass if Change]]>
Not as clean as just one-wire....but could be automatic...set-and-forget.
I haven't approached it yet...but the last piece I am looking for is a fast-scripted IML.
If I have a scripted IML that can find out the plugin located in the patch, and the starting point params name...Then sequentially wire my script to plugin.
Well skip the array to VST, just put a front end Wire-Wire Interface controlled by Array.

Thinking about your want for the ability to access VST Parameters with a pass-if-change in order to have control...both ways and constant modulation.................
Right now I have the following LFO modulating the Cutoff and I can grab other parameters and modify simultaneously. If this is something you are looking for, I will finish the IML and find a clean solution for integrating with Plugins, or if you have some ideas...let me know. I remember 23fx23 using his IML Global Bus VST controller, maybe figure something similar to package up.
Looking at I am going to have to revisit if 23fx23 ever finished it...I know the IML stuff was turning out cool and quite fast from what I remember.

Get this dynamic adapter idea figured, i'll create a module for it.....or this could be the solution for senso to implement inside the VST module....since all parameters are individually accessible...well a little code and it can be adapted to have this adapter built-in and only have one-array to access. Maybe a mode switch to change the behavior of the array nodes from classic to pass-if-changed.

I see have access to a plugin-wrapper...so maybe I can get dangerous...lol :lol:

Image

Statistics: Posted by sephult — 30 Oct 2017, 00:53


]]>
2017-10-28T20:31:33+02:00 2017-10-28T20:31:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38191#p38191 <![CDATA[Array Element Pass if Change]]>
More discussion about this here:
http://www.sensomusic.org/forums/viewtopic.php?id=5889

p.s. here is a nice little solution to make it easier to locate vst parameters to map to VSTDAD knob. Simply connect like this and change a control on the plugin ui. :)

Image

As far as general pass if change for array, I can see other interesting opportunities for arrays manipulation that would benefit but that is for the future maybe.. For now the main interest for me is better interfacing options for VST.

Statistics: Posted by gurulogic — 28 Oct 2017, 20:31


]]>
2017-10-28T02:55:50+02:00 2017-10-28T02:55:50+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38173#p38173 <![CDATA[Array Element Pass if Change]]>
As far as disconnecting incoming array unless values have changed...for the array of a VST:
Are you just wanting control from both external UI objects, and the Plugin interface?
If so the VST Plugin with Learn option, I have it so you can have multi-control without problem.
Just drop a vst into an empty patch and select the "open with Learn" option.

Was just curious what you were looking to do.

-s

Statistics: Posted by sephult — 28 Oct 2017, 02:55


]]>
2017-10-27T19:39:42+02:00 2017-10-27T19:39:42+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38165#p38165 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 27 Oct 2017, 19:39


]]>
2017-10-27T16:04:52+02:00 2017-10-27T16:04:52+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38158#p38158 <![CDATA[Array Element Pass if Change]]> there is no way to make Usine ignore an array element and let pass others.

For the vst suggestion, I'll study this question and see If I can do it.

Statistics: Posted by senso — 27 Oct 2017, 16:04


]]>
2017-10-11T20:49:53+02:00 2017-10-11T20:49:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37981#p37981 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 11 Oct 2017, 20:49


]]>
2017-10-04T07:49:59+02:00 2017-10-04T07:49:59+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37925#p37925 <![CDATA[Array Element Pass if Change]]> as i understand, midi flow were designed as delphi 'records' from the begining, kindof arrays of arrays, while arrays are just simple arrays, if changing the type that would mean all the wires, datas flows and modules using arrays would have to readapt, wich doesn't sound that simple, but maybe (hope) im wrong^^.

Statistics: Posted by 23fx23 — 04 Oct 2017, 07:49


]]>
2017-10-04T01:12:08+02:00 2017-10-04T01:12:08+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37923#p37923 <![CDATA[Array Element Pass if Change]]> Also note, in general size 0 means nothing flowing, and size -1 means "unconnected". I have found this to matter sometimes.

Statistics: Posted by sm_jamieson — 04 Oct 2017, 01:12


]]>
2017-10-03T12:18:31+02:00 2017-10-03T12:18:31+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37921#p37921 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by 23fx23 — 03 Oct 2017, 12:18


]]>
2017-10-03T11:12:46+02:00 2017-10-03T11:12:46+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37918#p37918 <![CDATA[Array Element Pass if Change]]>
Also, the array size would need to recognize automatically or by sending a value to a size parameter inlet.

Statistics: Posted by gurulogic — 03 Oct 2017, 11:12


]]>
2017-10-03T10:22:13+02:00 2017-10-03T10:22:13+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37917#p37917 <![CDATA[Array Element Pass if Change]]>

CODE:

////////////////////////////////////////////////////////////////////////////////////////////// Pass If Chg Array //// HH3 FX23   03/10/17////////////////////////////////////////////////////////////////////////////////////////////const SIZE = 8;          // nb of out wanted = size of arrayconst PREFIX = 'OUT_';   // PREFIX for outputs names, folowed by Integer;var ArrayIn&#58; Tparameter;var OUTPUTS&#58; Array Of Tparameter;     var i, l, count&#58; integer;                 var ArrayLast&#58; Array of single;                                            /////////////////////////////////////PROCEDURE INIT;BEGIN  ArrayIn &#58;= CreateParam&#40;'ArrayIn',PtArray&#41;; SetIsOutput&#40;ArrayIn,False&#41;; setMin&#40;arrayIn,-Maxint&#41;; setMax&#40;ArrayIn,maxint&#41;;   SetArrayLength&#40;OUTPUTS,SIZE&#41;;       // we set the arraylength to create N outputs of size defined by constant on top                                      // of script.   for i&#58;=0 to SIZE -1 do begin    OUTPUTS&#91;i&#93;&#58;= CreateParam&#40;PREFIX+IntToStr&#40;i&#41;,PtDataField&#41;; SetIsInput&#40;OUTPUTS&#91;i&#93;,false&#41;;    end;  setArrayLength&#40;ArrayLast,SIZE&#41;;   setdontsave&#40;arrayIn,false&#41;;       END;//INit                                                             //////////////////////////////PROCEDURE Callback&#40;N&#58;integer&#41;; BEGIN     if &#40;n=arrayIn&#41; then begin       l&#58;= getlength&#40;ArrayIn&#41;;       count&#58;=-1;                      end;END;//callback//////////////////////////////PROCEDURE PROCESS;var valin&#58; single;            BEGIN if count > -2 then begin        //start counting when callback has set count to -1     inc&#40;count&#41; ;               // -1+1=0 so at first bloc count is 0   end;                                                                               if count < 2 then begin       //for 2 blocs compare  2nd bloc to reset length to 0 if a value passe in first        for i&#58;=0 to l-1 do begin     valin&#58;= getDataArrayValue&#40;ArrayIn,i&#41;;                                                    if &#40;ArrayLast&#91;i&#93; - valin<>0&#41; then begin              setValue&#40;OUTPUTS&#91;i&#93;,valin&#41;;                              setLength&#40;OUTPUTS&#91;i&#93;,1&#41;;            ArrayLast&#91;i&#93;&#58;= valin;       end      else begin                                          setLength&#40;OUTPUTS&#91;i&#93;,0&#41;;                     end;      end;      end;                                       if count = 2 then begin  count&#58;=-2;  end; end;

Statistics: Posted by 23fx23 — 03 Oct 2017, 10:22


]]>
2017-10-03T02:31:00+02:00 2017-10-03T02:31:00+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37916#p37916 <![CDATA[Array Element Pass if Change]]> Maybe as a module or perhaps a script guru can make this?

Statistics: Posted by gurulogic — 03 Oct 2017, 02:31


]]>
BrainModular BrainModular Users Forum 2017-10-30T12:18:58+02:00 https://brainmodular.com/forums/app.php/feed/topic/5884 2017-10-30T12:18:58+02:00 2017-10-30T12:18:58+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38227#p38227 <![CDATA[Array Element Pass if Change]]> Can solve many things here or here but for big arrays it isn't very efficient virtually having internally 1024 pass if changes wired for ex, and a pain to wire those 1024 outputs, while we could finds hacks with iml auto wiring, solving this on the vst module in this case would be the only user friendly solution im affraid

Statistics: Posted by 23fx23 — 30 Oct 2017, 11:18


]]>
2017-10-30T09:46:19+02:00 2017-10-30T09:46:19+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38224#p38224 <![CDATA[Array Element Pass if Change]]>
I would find a module for pass if changed per array element very very useful. Currently, pass if change module only turns the entire flow on or off.
Maybe as a module or perhaps a script guru can make this?
this does the trick doesn't it ?

or did I miss something ?

File uploaded: http://www.sensomusic.com/forums/upload ... change.pat

Statistics: Posted by oli_lab — 30 Oct 2017, 08:46


]]>
2017-10-30T07:39:00+02:00 2017-10-30T07:39:00+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38223#p38223 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 30 Oct 2017, 06:39


]]>
2017-10-30T02:32:01+02:00 2017-10-30T02:32:01+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38220#p38220 <![CDATA[Array Element Pass if Change]]>
I also had that idea of 'brute force'^^ wiring all params and script pass if change for individual outs, wich seems the best workable solution indeed curently, but it seems bit heavy to me..., ( but since nearly all ingredients are there, why not push it up^^).
Im quite sure a ('sounds simple*) modification of the vst module code, meaning on array in change, scan and modifiy only the vst values that changed would solve a lot of things we face here with just one array wire to plug, (ideally would also need a way to make ui take over input in case a param is manupulated both on ui and input at the same time, wich might be slighly more complex, but sounds like 'on mouse down on vst, get manipulated id, stop that id from array in and use ui value', relase on mouse up and let pass back input value if it changes again..)

Statistics: Posted by 23fx23 — 30 Oct 2017, 01:32


]]>
2017-10-30T01:53:11+02:00 2017-10-30T01:53:11+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38219#p38219 <![CDATA[Array Element Pass if Change]]>
Not as clean as just one-wire....but could be automatic...set-and-forget.
I haven't approached it yet...but the last piece I am looking for is a fast-scripted IML.
If I have a scripted IML that can find out the plugin located in the patch, and the starting point params name...Then sequentially wire my script to plugin.
Well skip the array to VST, just put a front end Wire-Wire Interface controlled by Array.

Thinking about your want for the ability to access VST Parameters with a pass-if-change in order to have control...both ways and constant modulation.................
Right now I have the following LFO modulating the Cutoff and I can grab other parameters and modify simultaneously. If this is something you are looking for, I will finish the IML and find a clean solution for integrating with Plugins, or if you have some ideas...let me know. I remember 23fx23 using his IML Global Bus VST controller, maybe figure something similar to package up.
Looking at I am going to have to revisit if 23fx23 ever finished it...I know the IML stuff was turning out cool and quite fast from what I remember.

Get this dynamic adapter idea figured, i'll create a module for it.....or this could be the solution for senso to implement inside the VST module....since all parameters are individually accessible...well a little code and it can be adapted to have this adapter built-in and only have one-array to access. Maybe a mode switch to change the behavior of the array nodes from classic to pass-if-changed.

I see have access to a plugin-wrapper...so maybe I can get dangerous...lol :lol:

Image

Statistics: Posted by sephult — 30 Oct 2017, 00:53


]]>
2017-10-28T20:31:33+02:00 2017-10-28T20:31:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38191#p38191 <![CDATA[Array Element Pass if Change]]>
More discussion about this here:
http://www.sensomusic.org/forums/viewtopic.php?id=5889

p.s. here is a nice little solution to make it easier to locate vst parameters to map to VSTDAD knob. Simply connect like this and change a control on the plugin ui. :)

Image

As far as general pass if change for array, I can see other interesting opportunities for arrays manipulation that would benefit but that is for the future maybe.. For now the main interest for me is better interfacing options for VST.

Statistics: Posted by gurulogic — 28 Oct 2017, 20:31


]]>
2017-10-28T02:55:50+02:00 2017-10-28T02:55:50+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38173#p38173 <![CDATA[Array Element Pass if Change]]>
As far as disconnecting incoming array unless values have changed...for the array of a VST:
Are you just wanting control from both external UI objects, and the Plugin interface?
If so the VST Plugin with Learn option, I have it so you can have multi-control without problem.
Just drop a vst into an empty patch and select the "open with Learn" option.

Was just curious what you were looking to do.

-s

Statistics: Posted by sephult — 28 Oct 2017, 02:55


]]>
2017-10-27T19:39:42+02:00 2017-10-27T19:39:42+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38165#p38165 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 27 Oct 2017, 19:39


]]>
2017-10-27T16:04:52+02:00 2017-10-27T16:04:52+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=38158#p38158 <![CDATA[Array Element Pass if Change]]> there is no way to make Usine ignore an array element and let pass others.

For the vst suggestion, I'll study this question and see If I can do it.

Statistics: Posted by senso — 27 Oct 2017, 16:04


]]>
2017-10-11T20:49:53+02:00 2017-10-11T20:49:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37981#p37981 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by gurulogic — 11 Oct 2017, 20:49


]]>
2017-10-04T07:49:59+02:00 2017-10-04T07:49:59+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37925#p37925 <![CDATA[Array Element Pass if Change]]> as i understand, midi flow were designed as delphi 'records' from the begining, kindof arrays of arrays, while arrays are just simple arrays, if changing the type that would mean all the wires, datas flows and modules using arrays would have to readapt, wich doesn't sound that simple, but maybe (hope) im wrong^^.

Statistics: Posted by 23fx23 — 04 Oct 2017, 07:49


]]>
2017-10-04T01:12:08+02:00 2017-10-04T01:12:08+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37923#p37923 <![CDATA[Array Element Pass if Change]]> Also note, in general size 0 means nothing flowing, and size -1 means "unconnected". I have found this to matter sometimes.

Statistics: Posted by sm_jamieson — 04 Oct 2017, 01:12


]]>
2017-10-03T12:18:31+02:00 2017-10-03T12:18:31+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37921#p37921 <![CDATA[Array Element Pass if Change]]> Statistics: Posted by 23fx23 — 03 Oct 2017, 12:18


]]>
2017-10-03T11:12:46+02:00 2017-10-03T11:12:46+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37918#p37918 <![CDATA[Array Element Pass if Change]]>
Also, the array size would need to recognize automatically or by sending a value to a size parameter inlet.

Statistics: Posted by gurulogic — 03 Oct 2017, 11:12


]]>
2017-10-03T10:22:13+02:00 2017-10-03T10:22:13+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37917#p37917 <![CDATA[Array Element Pass if Change]]>

CODE:

////////////////////////////////////////////////////////////////////////////////////////////// Pass If Chg Array //// HH3 FX23   03/10/17////////////////////////////////////////////////////////////////////////////////////////////const SIZE = 8;          // nb of out wanted = size of arrayconst PREFIX = 'OUT_';   // PREFIX for outputs names, folowed by Integer;var ArrayIn&#58; Tparameter;var OUTPUTS&#58; Array Of Tparameter;     var i, l, count&#58; integer;                 var ArrayLast&#58; Array of single;                                            /////////////////////////////////////PROCEDURE INIT;BEGIN  ArrayIn &#58;= CreateParam&#40;'ArrayIn',PtArray&#41;; SetIsOutput&#40;ArrayIn,False&#41;; setMin&#40;arrayIn,-Maxint&#41;; setMax&#40;ArrayIn,maxint&#41;;   SetArrayLength&#40;OUTPUTS,SIZE&#41;;       // we set the arraylength to create N outputs of size defined by constant on top                                      // of script.   for i&#58;=0 to SIZE -1 do begin    OUTPUTS&#91;i&#93;&#58;= CreateParam&#40;PREFIX+IntToStr&#40;i&#41;,PtDataField&#41;; SetIsInput&#40;OUTPUTS&#91;i&#93;,false&#41;;    end;  setArrayLength&#40;ArrayLast,SIZE&#41;;   setdontsave&#40;arrayIn,false&#41;;       END;//INit                                                             //////////////////////////////PROCEDURE Callback&#40;N&#58;integer&#41;; BEGIN     if &#40;n=arrayIn&#41; then begin       l&#58;= getlength&#40;ArrayIn&#41;;       count&#58;=-1;                      end;END;//callback//////////////////////////////PROCEDURE PROCESS;var valin&#58; single;            BEGIN if count > -2 then begin        //start counting when callback has set count to -1     inc&#40;count&#41; ;               // -1+1=0 so at first bloc count is 0   end;                                                                               if count < 2 then begin       //for 2 blocs compare  2nd bloc to reset length to 0 if a value passe in first        for i&#58;=0 to l-1 do begin     valin&#58;= getDataArrayValue&#40;ArrayIn,i&#41;;                                                    if &#40;ArrayLast&#91;i&#93; - valin<>0&#41; then begin              setValue&#40;OUTPUTS&#91;i&#93;,valin&#41;;                              setLength&#40;OUTPUTS&#91;i&#93;,1&#41;;            ArrayLast&#91;i&#93;&#58;= valin;       end      else begin                                          setLength&#40;OUTPUTS&#91;i&#93;,0&#41;;                     end;      end;      end;                                       if count = 2 then begin  count&#58;=-2;  end; end;

Statistics: Posted by 23fx23 — 03 Oct 2017, 10:22


]]>
2017-10-03T02:31:00+02:00 2017-10-03T02:31:00+02:00 https://brainmodular.com/forums/viewtopic.php?t=5884&p=37916#p37916 <![CDATA[Array Element Pass if Change]]> Maybe as a module or perhaps a script guru can make this?

Statistics: Posted by gurulogic — 03 Oct 2017, 02:31


]]>