ArrayArrayArrayArrayArray BrainModular BrainModular Users Forum 2015-01-13T17:15:45+02:00 https://brainmodular.com/forums/app.php/feed/topic/4659 2015-01-13T17:15:45+02:00 2015-01-13T17:15:45+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31085#p31085 <![CDATA[scripting made easier]]>
lazarus code

CODE:

program test;var pattern&#58;array of integer;var counts&#58;array of integer;var remainders&#58;array of integer;var c&#58;integer;procedure build&#40;l&#58;integer&#41;;var i&#58;integer;begin     if&#40;&#40;l>-1&#41;&#41;then     begin          for i&#58;=0 to &#40;counts&#91;l&#93;-1&#41; do          begin               build&#40;l-1&#41;;          end;          if&#40;remainders&#91;l&#93;<>0&#41; then          begin               build&#40;l-2&#41;;          end;     end     else if &#40;l=-1&#41;then     begin          pattern&#91;c&#93;&#58;=0;          c&#58;=c+1;     end     else if &#40;l=-2&#41; then     begin          pattern&#91;c&#93;&#58;=1;          c&#58;=c+1;     end;end;procedure bjorklund&#40;steps&#58;integer;pulses&#58;integer&#41;;var level&#58;integer;var st&#58;boolean;var divisor&#58;integer;var i&#58;integer;begin     divisor&#58;=steps-pulses;     level&#58;=0;     st&#58;=true;     SetLength&#40;pattern,steps&#41;;     SetLength&#40;remainders,level+1&#41;;     remainders&#91;level&#93;&#58;=pulses;     while&#40;st=true&#41; do     begin          SetLength&#40;counts,level+1&#41;;//in usine this should be SetArrayLength          counts&#91;level&#93;&#58;= divisor div remainders&#91;level&#93;;          SetLength&#40;remainders,level+2&#41;;          remainders&#91;level+1&#93;&#58;=divisor mod remainders&#91;level&#93;;          divisor&#58;=remainders&#91;level&#93;;          level&#58;=level+1;          if&#40;remainders&#91;level&#93;<=1&#41; then          begin               st&#58;=false;          end;     end;     SetLength&#40;counts,level+1&#41;;     counts&#91;level&#93;&#58;=divisor;     c&#58;=0;     build&#40;level&#41;;     for i&#58;=0 to steps-1 do     begin          write&#40;pattern&#91;&#40;steps-1&#41;-i&#93;&#41;;     end;end;beginbjorklund&#40;5,5&#41;;readln;//you should removend.
hollyhock code

CODE:

//////////////////////////// /////////////////////////// parameters declarationvar o_arr&#58;tParameter;var i_steps&#58;tParameter;  var i_pulses&#58;tParameter;   var counts&#58; array of integer;             var pattern&#58; array of integer; var remainders&#58; array of integer;var c&#58;integer;var steps&#58;integer;var pulses&#58;integer;var has_changed&#58;boolean;                              procedure get_steps;begin   steps&#58;=round&#40;GetValue&#40;i_steps&#41;&#41;;   has_changed&#58;=true;end;                   procedure get_pulses;begin         pulses&#58;=round&#40;GetValue&#40;i_pulses&#41;&#41;;   has_changed&#58;=true;  end;procedure build&#40;l&#58;integer&#41;;var i&#58;integer;begin     if&#40;&#40;l>-1&#41;&#41;then     begin          for i&#58;=0 to &#40;counts&#91;l&#93;-1&#41; do          begin               build&#40;l-1&#41;;          end;          if&#40;remainders&#91;l&#93;<>0&#41; then          begin               build&#40;l-2&#41;;          end;     end     else if &#40;l=-1&#41;then     begin          pattern&#91;c&#93;&#58;=0;          c&#58;=c+1;     end     else if &#40;l=-2&#41; then     begin          pattern&#91;c&#93;&#58;=1;          c&#58;=c+1;     end;end;                                   procedure bjorklund&#40;s&#58;integer;p&#58;integer&#41;;var level&#58;integer;var st&#58;boolean;var divisor&#58;integer;var i&#58;integer;begin     divisor&#58;=s-p;        level&#58;=0;     st&#58;=true;     SetArrayLength&#40;remainders,level+1&#41;;     remainders&#91;level&#93;&#58;=p;     while&#40;st=true&#41; do     begin          SetArrayLength&#40;counts,level+1&#41;;          counts&#91;level&#93;&#58;= divisor div remainders&#91;level&#93;;          SetArrayLength&#40;remainders,level+2&#41;;          remainders&#91;level+1&#93;&#58;=divisor mod remainders&#91;level&#93;;          divisor&#58;=remainders&#91;level&#93;;          level&#58;=level+1;          if&#40;remainders&#91;level&#93;<=1&#41; then          begin               st&#58;=false;          end;     end;     SetArrayLength&#40;counts,level+1&#41;;     counts&#91;level&#93;&#58;=divisor;     c&#58;=0;     build&#40;level&#41;;      end;         // initialisation &#58; create parametersprocedure init;begin   o_arr &#58;= CreateParam&#40;'cells out', ptArray&#41;; SetIsInput&#40;o_arr,false&#41;;   i_steps&#58;=CreateParam&#40;'steps', ptDataField&#41;; SetIsOutPut&#40;i_steps,false&#41;; i_pulses&#58;=CreateParam&#40;'pulses', ptDataField&#41;; SetIsOutPut&#40;i_pulses,false&#41;; get_steps&#40;&#41;; get_pulses&#40;&#41;;end;                           // Callback procedureProcedure Callback&#40;n&#58;integer&#41;; begin                      CASE n OF      i_steps&#58;get_steps&#40;&#41;;      i_pulses&#58;get_pulses&#40;&#41;;   END;end;                                                        //////////////////////////////// main proc                                  //////////////////////////////Procedure Process;     var arr_l&#58;integer;var i&#58;integer;begin   arr_l&#58;=0;                  if&#40;has_changed=true&#41; then   begin                         SetArrayLength&#40;pattern,steps&#41;;      get_steps&#40;&#41;;      get_pulses&#40;&#41;;      bjorklund&#40;steps,pulses&#41;;        for i&#58;=0 to steps-1 do      begin          SetDataArrayValue&#40;o_arr,i,pattern&#91;&#40;steps-1&#41;-i&#93;&#41;;          //SetDataArrayValue&#40;o_arr,i,1&#41;;      end;      arr_l&#58;=steps;      has_changed&#58;=false;   end;   SetLength&#40;o_arr,arr_l&#41;;end;

Statistics: Posted by drakh — 13 Jan 2015, 16:15


]]>
2015-01-12T14:59:43+02:00 2015-01-12T14:59:43+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31073#p31073 <![CDATA[scripting made easier]]>
-S

Statistics: Posted by sephult — 12 Jan 2015, 13:59


]]>
2015-01-12T13:07:18+02:00 2015-01-12T13:07:18+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31071#p31071 <![CDATA[scripting made easier]]> Statistics: Posted by karl-marci — 12 Jan 2015, 12:07


]]>
2015-01-12T11:15:33+02:00 2015-01-12T11:15:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31069#p31069 <![CDATA[scripting made easier]]> Statistics: Posted by nay-seven — 12 Jan 2015, 10:15


]]>
2015-01-12T11:00:58+02:00 2015-01-12T11:00:58+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31067#p31067 <![CDATA[scripting made easier]]> the thing is i love it and hate it.

love it because i cand do lot of stuf much easier by writing a script - i am more familiar with code than with visual boxes, and the signal flow is not always working as expected. and now with controllers like akai apc or launchpad it is better to write script than patch it thru modules.

I hate it because of, ahm Pascal. And poor debuging options. I understand that make script debuging possible will bring lot of unnecessary stuff into hollyhock - actually a whole IDE. I tried rearJS VST - as webdeveloper i am more familiar with JavaScript, so in fact this plugin should be what i need. But i dindt find it useful with hollyhock, as hollyhock scripting provides me somehow easy way to prepare inputs/outputs bound to internal formats of signal in hollyhock.

So i made some smal research, and installed Lazarus - http://www.lazarus.freepascal.org/ which is nice multipilatform pascal IDE. there are some slight differences - like when you ar eusing dynamic arrays in Lazarus you have to use SetLength function, in hollyhock SetArrayLength. but overall it makes writing sripts for hollyhock much more easier. I recommend it for everyone who is writing own scripts.

Statistics: Posted by drakh — 12 Jan 2015, 10:00


]]>
BrainModular BrainModular Users Forum 2015-01-13T17:15:45+02:00 https://brainmodular.com/forums/app.php/feed/topic/4659 2015-01-13T17:15:45+02:00 2015-01-13T17:15:45+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31085#p31085 <![CDATA[scripting made easier]]>
lazarus code

CODE:

program test;var pattern&#58;array of integer;var counts&#58;array of integer;var remainders&#58;array of integer;var c&#58;integer;procedure build&#40;l&#58;integer&#41;;var i&#58;integer;begin     if&#40;&#40;l>-1&#41;&#41;then     begin          for i&#58;=0 to &#40;counts&#91;l&#93;-1&#41; do          begin               build&#40;l-1&#41;;          end;          if&#40;remainders&#91;l&#93;<>0&#41; then          begin               build&#40;l-2&#41;;          end;     end     else if &#40;l=-1&#41;then     begin          pattern&#91;c&#93;&#58;=0;          c&#58;=c+1;     end     else if &#40;l=-2&#41; then     begin          pattern&#91;c&#93;&#58;=1;          c&#58;=c+1;     end;end;procedure bjorklund&#40;steps&#58;integer;pulses&#58;integer&#41;;var level&#58;integer;var st&#58;boolean;var divisor&#58;integer;var i&#58;integer;begin     divisor&#58;=steps-pulses;     level&#58;=0;     st&#58;=true;     SetLength&#40;pattern,steps&#41;;     SetLength&#40;remainders,level+1&#41;;     remainders&#91;level&#93;&#58;=pulses;     while&#40;st=true&#41; do     begin          SetLength&#40;counts,level+1&#41;;//in usine this should be SetArrayLength          counts&#91;level&#93;&#58;= divisor div remainders&#91;level&#93;;          SetLength&#40;remainders,level+2&#41;;          remainders&#91;level+1&#93;&#58;=divisor mod remainders&#91;level&#93;;          divisor&#58;=remainders&#91;level&#93;;          level&#58;=level+1;          if&#40;remainders&#91;level&#93;<=1&#41; then          begin               st&#58;=false;          end;     end;     SetLength&#40;counts,level+1&#41;;     counts&#91;level&#93;&#58;=divisor;     c&#58;=0;     build&#40;level&#41;;     for i&#58;=0 to steps-1 do     begin          write&#40;pattern&#91;&#40;steps-1&#41;-i&#93;&#41;;     end;end;beginbjorklund&#40;5,5&#41;;readln;//you should removend.
hollyhock code

CODE:

//////////////////////////// /////////////////////////// parameters declarationvar o_arr&#58;tParameter;var i_steps&#58;tParameter;  var i_pulses&#58;tParameter;   var counts&#58; array of integer;             var pattern&#58; array of integer; var remainders&#58; array of integer;var c&#58;integer;var steps&#58;integer;var pulses&#58;integer;var has_changed&#58;boolean;                              procedure get_steps;begin   steps&#58;=round&#40;GetValue&#40;i_steps&#41;&#41;;   has_changed&#58;=true;end;                   procedure get_pulses;begin         pulses&#58;=round&#40;GetValue&#40;i_pulses&#41;&#41;;   has_changed&#58;=true;  end;procedure build&#40;l&#58;integer&#41;;var i&#58;integer;begin     if&#40;&#40;l>-1&#41;&#41;then     begin          for i&#58;=0 to &#40;counts&#91;l&#93;-1&#41; do          begin               build&#40;l-1&#41;;          end;          if&#40;remainders&#91;l&#93;<>0&#41; then          begin               build&#40;l-2&#41;;          end;     end     else if &#40;l=-1&#41;then     begin          pattern&#91;c&#93;&#58;=0;          c&#58;=c+1;     end     else if &#40;l=-2&#41; then     begin          pattern&#91;c&#93;&#58;=1;          c&#58;=c+1;     end;end;                                   procedure bjorklund&#40;s&#58;integer;p&#58;integer&#41;;var level&#58;integer;var st&#58;boolean;var divisor&#58;integer;var i&#58;integer;begin     divisor&#58;=s-p;        level&#58;=0;     st&#58;=true;     SetArrayLength&#40;remainders,level+1&#41;;     remainders&#91;level&#93;&#58;=p;     while&#40;st=true&#41; do     begin          SetArrayLength&#40;counts,level+1&#41;;          counts&#91;level&#93;&#58;= divisor div remainders&#91;level&#93;;          SetArrayLength&#40;remainders,level+2&#41;;          remainders&#91;level+1&#93;&#58;=divisor mod remainders&#91;level&#93;;          divisor&#58;=remainders&#91;level&#93;;          level&#58;=level+1;          if&#40;remainders&#91;level&#93;<=1&#41; then          begin               st&#58;=false;          end;     end;     SetArrayLength&#40;counts,level+1&#41;;     counts&#91;level&#93;&#58;=divisor;     c&#58;=0;     build&#40;level&#41;;      end;         // initialisation &#58; create parametersprocedure init;begin   o_arr &#58;= CreateParam&#40;'cells out', ptArray&#41;; SetIsInput&#40;o_arr,false&#41;;   i_steps&#58;=CreateParam&#40;'steps', ptDataField&#41;; SetIsOutPut&#40;i_steps,false&#41;; i_pulses&#58;=CreateParam&#40;'pulses', ptDataField&#41;; SetIsOutPut&#40;i_pulses,false&#41;; get_steps&#40;&#41;; get_pulses&#40;&#41;;end;                           // Callback procedureProcedure Callback&#40;n&#58;integer&#41;; begin                      CASE n OF      i_steps&#58;get_steps&#40;&#41;;      i_pulses&#58;get_pulses&#40;&#41;;   END;end;                                                        //////////////////////////////// main proc                                  //////////////////////////////Procedure Process;     var arr_l&#58;integer;var i&#58;integer;begin   arr_l&#58;=0;                  if&#40;has_changed=true&#41; then   begin                         SetArrayLength&#40;pattern,steps&#41;;      get_steps&#40;&#41;;      get_pulses&#40;&#41;;      bjorklund&#40;steps,pulses&#41;;        for i&#58;=0 to steps-1 do      begin          SetDataArrayValue&#40;o_arr,i,pattern&#91;&#40;steps-1&#41;-i&#93;&#41;;          //SetDataArrayValue&#40;o_arr,i,1&#41;;      end;      arr_l&#58;=steps;      has_changed&#58;=false;   end;   SetLength&#40;o_arr,arr_l&#41;;end;

Statistics: Posted by drakh — 13 Jan 2015, 16:15


]]>
2015-01-12T14:59:43+02:00 2015-01-12T14:59:43+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31073#p31073 <![CDATA[scripting made easier]]>
-S

Statistics: Posted by sephult — 12 Jan 2015, 13:59


]]>
2015-01-12T13:07:18+02:00 2015-01-12T13:07:18+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31071#p31071 <![CDATA[scripting made easier]]> Statistics: Posted by karl-marci — 12 Jan 2015, 12:07


]]>
2015-01-12T11:15:33+02:00 2015-01-12T11:15:33+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31069#p31069 <![CDATA[scripting made easier]]> Statistics: Posted by nay-seven — 12 Jan 2015, 10:15


]]>
2015-01-12T11:00:58+02:00 2015-01-12T11:00:58+02:00 https://brainmodular.com/forums/viewtopic.php?t=4659&p=31067#p31067 <![CDATA[scripting made easier]]> the thing is i love it and hate it.

love it because i cand do lot of stuf much easier by writing a script - i am more familiar with code than with visual boxes, and the signal flow is not always working as expected. and now with controllers like akai apc or launchpad it is better to write script than patch it thru modules.

I hate it because of, ahm Pascal. And poor debuging options. I understand that make script debuging possible will bring lot of unnecessary stuff into hollyhock - actually a whole IDE. I tried rearJS VST - as webdeveloper i am more familiar with JavaScript, so in fact this plugin should be what i need. But i dindt find it useful with hollyhock, as hollyhock scripting provides me somehow easy way to prepare inputs/outputs bound to internal formats of signal in hollyhock.

So i made some smal research, and installed Lazarus - http://www.lazarus.freepascal.org/ which is nice multipilatform pascal IDE. there are some slight differences - like when you ar eusing dynamic arrays in Lazarus you have to use SetLength function, in hollyhock SetArrayLength. but overall it makes writing sripts for hollyhock much more easier. I recommend it for everyone who is writing own scripts.

Statistics: Posted by drakh — 12 Jan 2015, 10:00


]]>