ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray BrainModular BrainModular Users Forum 2008-01-15T14:56:36+02:00 https://brainmodular.com/forums/app.php/feed/topic/668 2008-01-15T14:56:36+02:00 2008-01-15T14:56:36+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3614#p3614 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> By default, midi learn of Usine works fine with endless controllers, if you choose the learn mode "relative".
There is only a problem with the Axiom keyboard.

Statistics: Posted by senso — 15 Jan 2008, 13:56


]]>
2008-01-15T14:49:27+02:00 2008-01-15T14:49:27+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3611#p3611 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
I have now uploaded this package to the add-ons. Give it a try if you have endless encoders...

antwan

Statistics: Posted by antwan — 15 Jan 2008, 13:49


]]>
2008-01-15T12:19:21+02:00 2008-01-15T12:19:21+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3607#p3607 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
cheers! i'll give it a try in a couple of hours. thanks.

antony

Statistics: Posted by antwan — 15 Jan 2008, 11:19


]]>
2008-01-15T12:12:01+02:00 2008-01-15T12:12:01+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3604#p3604 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> you have

CODE:

active &#58;= ReceivedMidi.data2 - cc_first;
and after

CODE:

GetValue&#40;fader&#91;active&#93;&#41;
in that case you have to verify that active is >= 0 and <= 7.
add a test line like

CODE:

active &#58;= ReceivedMidi.data2 - cc_first;  if &#40;active>=0&#41;and &#40;active<=7&#41;then begin              if &#40;ReceivedMidi.data1 = 96&#41;        and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_max&#41;        then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; + 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;       if &#40;ReceivedMidi.data1 = 97&#41;       and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_min&#41;       then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; - 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;endelse writeln&#40;'error ACTIVE out of range'&#41;;

Statistics: Posted by senso — 15 Jan 2008, 11:12


]]>
2008-01-15T11:42:15+02:00 2008-01-15T11:42:15+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3603#p3603 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
thanks for the suggestions - makes sense!
I'll make those improvements and prepare it for upload to the add-ons section.
The error message is really annoying though because it basically makes it impossible to use the trace window for anything else. I'll try and have another look today if I can give a specific moment when the error starts.

antwan

Statistics: Posted by antwan — 15 Jan 2008, 10:42


]]>
2008-01-15T09:40:10+02:00 2008-01-15T09:40:10+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3599#p3599 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
Can't say I understand why you get the error message, but I have a suggestion for a (small!) improvement CPU-wise: Put "cc_first := trunc(GetValue(first));" outside of the loop, or drop the first parameter alltogether and use a constant instead.

Statistics: Posted by bsork — 15 Jan 2008, 08:40


]]>
2008-01-15T08:59:26+02:00 2008-01-15T08:59:26+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3597#p3597 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> The add-on section is a good place for your script ??!!!

Statistics: Posted by senso — 15 Jan 2008, 07:59


]]>
2008-01-14T20:45:22+02:00 2008-01-14T20:45:22+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3592#p3592 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
returning to this question. I made a script for myself which (together with some fancy "pass if has changed" -patching) works nicely with the endless rotary knobs of the axiom, controlling VSTs.
The only problem is that suddenly sometimes the script starts giving a continuous never-ending error message:
"Script Error: Out of Record Fields Range in 0"
I think it might be initiated by some other controllers on the axiom unrelated to the script.
It doesn't really stop the script from working but i am nontheless interested as to what this error message is about.

Here's the script:
For your information i have an endless rotary setup in Axiom that gives out a controller 96 for an increase and 97 for a decrease.

CODE:

//////////////////////////// Receives endless rotary encoder data and turns it into a fader// Also takes into account mouse-operated changes if fader is routed back into input// Note&#58; Change constants fad_min and fad_max for fader range/////////////////////////// parameters declarationvar input   &#58; Tparameter;var fader   &#58; Array of Tparameter;var first   &#58; integer;var i       &#58; integer;const num_ch = 8;const fad_min = 0;const fad_max = 1;// initialisation &#58; create parametersprocedure init;begin    input &#58;= CreateParam&#40;'In',ptMidi&#41;; first &#58;= CreateParam&#40;'First CC', ptdataFader&#41;;  SetArrayLength&#40;fader, num_ch&#41;;  SetIsOutPut&#40;Input,false&#41;; SetIsOutPut&#40;first,false&#41;; SetMax&#40;first, 127&#41;; for i &#58;= 0 to &#40;num_ch - 1&#41; do begin    fader&#91;i&#93; &#58;= CreateParam&#40;'fader'+IntToStr&#40;i+1&#41;, ptdataFader&#41;;    SetMin&#40;fader&#91;i&#93;, fad_min&#41;;    SetMax&#40;fader&#91;i&#93;, fad_max&#41;; end;end;// Global variablesvar j,    nbOfMidi,    active,    cc_first       &#58; integer;var ReceivedMidi &#58; TMidi;var fader_val    &#58; Array of Single;//////////////////////////////// main proc//////////////////////////////begin SetArrayLength&#40;fader_val, num_ch&#41;; nbOfMidi &#58;= GetLength&#40;input&#41;;  // get the number of incoming midi codes  if nbOfMidi > 0 then begin   for j &#58;= 0 to nbOfMidi-1    do begin     cc_first &#58;= trunc&#40;GetValue&#40;first&#41;&#41;;     GetMidiArrayValue&#40;input, j, ReceivedMidi&#41;;      if &#40;ReceivedMidi.msg = 176&#41; and &#40;ReceivedMidi.data2 >= cc_first&#41; and &#40;ReceivedMidi.data2 <= &#40;cc_first + num_ch&#41;&#41; then begin       active &#58;= ReceivedMidi.data2 - cc_first;       if &#40;ReceivedMidi.data1 = 96&#41; and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_max&#41; then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; + 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;       if &#40;ReceivedMidi.data1 = 97&#41; and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_min&#41; then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; - 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;     end;   end; end;end.
Thanks for any insights.

antwan

Statistics: Posted by antwan — 14 Jan 2008, 19:45


]]>
2007-11-29T23:02:53+02:00 2007-11-29T23:02:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3359#p3359 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
If you assign a rotary controller as endless control (for example n°150) the axiom sends CC96 when it goes up and CC95 when down!!!!
Can you believe it? It's so stupid !
In usine it's impossible to assign an increase value to a CC and a decrease to another.
So use 'normal' control with CC values from 0 to 127.

PS:
personal opinion:
The axiom is the worst keyboard I've never had.
- totally non-ergonomic.
- the doc is a 'collector', in the category 'why make simple if can make it complex?'
- very limited compare to the behringer BCF2000 or Roland PCR serie

Statistics: Posted by senso — 29 Nov 2007, 22:02


]]>
2007-11-29T21:16:26+02:00 2007-11-29T21:16:26+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3353#p3353 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> I'll take a look.

Statistics: Posted by senso — 29 Nov 2007, 20:16


]]>
2007-11-29T11:34:10+02:00 2007-11-29T11:34:10+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3337#p3337 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
1) the fader was increasing when rotating the encoder either way
or
2) the fader was increasing when the encoder was rotating one way and nothing happened when it was rotated the other way.

antwan

Statistics: Posted by antwan — 29 Nov 2007, 10:34


]]>
2007-11-29T10:01:29+02:00 2007-11-29T10:01:29+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3333#p3333 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
(see P45 of the Usine Manuel)

Statistics: Posted by cmodica — 29 Nov 2007, 09:01


]]>
2007-11-28T21:14:22+02:00 2007-11-28T21:14:22+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3324#p3324 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
I'm just learning to change the mode of the rotary encoders on my m-audio axiom 61 to increment/decrement mode.
I can't get them to work though, it seems Usine can't understand the inc/dec messages correctly.

Here's the link to the manual (this part is covered on page 19 of the PDF):
http://www.m-audio.com/images/global/ma ... G_EN01.pdf

I guess I could make a subpatch to correct this but am I missing something?

Any insights?

antwan

Statistics: Posted by antwan — 28 Nov 2007, 20:14


]]>
BrainModular BrainModular Users Forum 2008-01-15T14:56:36+02:00 https://brainmodular.com/forums/app.php/feed/topic/668 2008-01-15T14:56:36+02:00 2008-01-15T14:56:36+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3614#p3614 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> By default, midi learn of Usine works fine with endless controllers, if you choose the learn mode "relative".
There is only a problem with the Axiom keyboard.

Statistics: Posted by senso — 15 Jan 2008, 13:56


]]>
2008-01-15T14:49:27+02:00 2008-01-15T14:49:27+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3611#p3611 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
I have now uploaded this package to the add-ons. Give it a try if you have endless encoders...

antwan

Statistics: Posted by antwan — 15 Jan 2008, 13:49


]]>
2008-01-15T12:19:21+02:00 2008-01-15T12:19:21+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3607#p3607 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
cheers! i'll give it a try in a couple of hours. thanks.

antony

Statistics: Posted by antwan — 15 Jan 2008, 11:19


]]>
2008-01-15T12:12:01+02:00 2008-01-15T12:12:01+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3604#p3604 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> you have

CODE:

active &#58;= ReceivedMidi.data2 - cc_first;
and after

CODE:

GetValue&#40;fader&#91;active&#93;&#41;
in that case you have to verify that active is >= 0 and <= 7.
add a test line like

CODE:

active &#58;= ReceivedMidi.data2 - cc_first;  if &#40;active>=0&#41;and &#40;active<=7&#41;then begin              if &#40;ReceivedMidi.data1 = 96&#41;        and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_max&#41;        then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; + 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;       if &#40;ReceivedMidi.data1 = 97&#41;       and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_min&#41;       then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; - 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;endelse writeln&#40;'error ACTIVE out of range'&#41;;

Statistics: Posted by senso — 15 Jan 2008, 11:12


]]>
2008-01-15T11:42:15+02:00 2008-01-15T11:42:15+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3603#p3603 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
thanks for the suggestions - makes sense!
I'll make those improvements and prepare it for upload to the add-ons section.
The error message is really annoying though because it basically makes it impossible to use the trace window for anything else. I'll try and have another look today if I can give a specific moment when the error starts.

antwan

Statistics: Posted by antwan — 15 Jan 2008, 10:42


]]>
2008-01-15T09:40:10+02:00 2008-01-15T09:40:10+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3599#p3599 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
Can't say I understand why you get the error message, but I have a suggestion for a (small!) improvement CPU-wise: Put "cc_first := trunc(GetValue(first));" outside of the loop, or drop the first parameter alltogether and use a constant instead.

Statistics: Posted by bsork — 15 Jan 2008, 08:40


]]>
2008-01-15T08:59:26+02:00 2008-01-15T08:59:26+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3597#p3597 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> The add-on section is a good place for your script ??!!!

Statistics: Posted by senso — 15 Jan 2008, 07:59


]]>
2008-01-14T20:45:22+02:00 2008-01-14T20:45:22+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3592#p3592 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
returning to this question. I made a script for myself which (together with some fancy "pass if has changed" -patching) works nicely with the endless rotary knobs of the axiom, controlling VSTs.
The only problem is that suddenly sometimes the script starts giving a continuous never-ending error message:
"Script Error: Out of Record Fields Range in 0"
I think it might be initiated by some other controllers on the axiom unrelated to the script.
It doesn't really stop the script from working but i am nontheless interested as to what this error message is about.

Here's the script:
For your information i have an endless rotary setup in Axiom that gives out a controller 96 for an increase and 97 for a decrease.

CODE:

//////////////////////////// Receives endless rotary encoder data and turns it into a fader// Also takes into account mouse-operated changes if fader is routed back into input// Note&#58; Change constants fad_min and fad_max for fader range/////////////////////////// parameters declarationvar input   &#58; Tparameter;var fader   &#58; Array of Tparameter;var first   &#58; integer;var i       &#58; integer;const num_ch = 8;const fad_min = 0;const fad_max = 1;// initialisation &#58; create parametersprocedure init;begin    input &#58;= CreateParam&#40;'In',ptMidi&#41;; first &#58;= CreateParam&#40;'First CC', ptdataFader&#41;;  SetArrayLength&#40;fader, num_ch&#41;;  SetIsOutPut&#40;Input,false&#41;; SetIsOutPut&#40;first,false&#41;; SetMax&#40;first, 127&#41;; for i &#58;= 0 to &#40;num_ch - 1&#41; do begin    fader&#91;i&#93; &#58;= CreateParam&#40;'fader'+IntToStr&#40;i+1&#41;, ptdataFader&#41;;    SetMin&#40;fader&#91;i&#93;, fad_min&#41;;    SetMax&#40;fader&#91;i&#93;, fad_max&#41;; end;end;// Global variablesvar j,    nbOfMidi,    active,    cc_first       &#58; integer;var ReceivedMidi &#58; TMidi;var fader_val    &#58; Array of Single;//////////////////////////////// main proc//////////////////////////////begin SetArrayLength&#40;fader_val, num_ch&#41;; nbOfMidi &#58;= GetLength&#40;input&#41;;  // get the number of incoming midi codes  if nbOfMidi > 0 then begin   for j &#58;= 0 to nbOfMidi-1    do begin     cc_first &#58;= trunc&#40;GetValue&#40;first&#41;&#41;;     GetMidiArrayValue&#40;input, j, ReceivedMidi&#41;;      if &#40;ReceivedMidi.msg = 176&#41; and &#40;ReceivedMidi.data2 >= cc_first&#41; and &#40;ReceivedMidi.data2 <= &#40;cc_first + num_ch&#41;&#41; then begin       active &#58;= ReceivedMidi.data2 - cc_first;       if &#40;ReceivedMidi.data1 = 96&#41; and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_max&#41; then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; + 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;       if &#40;ReceivedMidi.data1 = 97&#41; and &#40;GetValue&#40;fader&#91;active&#93;&#41; <> fad_min&#41; then begin         fader_val&#91;active&#93; &#58;= &#40;GetValue&#40;fader&#91;active&#93;&#41; - 0.01&#41;;         SetValue&#40;fader&#91;active&#93;, fader_val&#91;active&#93;&#41;;       end;     end;   end; end;end.
Thanks for any insights.

antwan

Statistics: Posted by antwan — 14 Jan 2008, 19:45


]]>
2007-11-29T23:02:53+02:00 2007-11-29T23:02:53+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3359#p3359 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
If you assign a rotary controller as endless control (for example n°150) the axiom sends CC96 when it goes up and CC95 when down!!!!
Can you believe it? It's so stupid !
In usine it's impossible to assign an increase value to a CC and a decrease to another.
So use 'normal' control with CC values from 0 to 127.

PS:
personal opinion:
The axiom is the worst keyboard I've never had.
- totally non-ergonomic.
- the doc is a 'collector', in the category 'why make simple if can make it complex?'
- very limited compare to the behringer BCF2000 or Roland PCR serie

Statistics: Posted by senso — 29 Nov 2007, 22:02


]]>
2007-11-29T21:16:26+02:00 2007-11-29T21:16:26+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3353#p3353 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]> I'll take a look.

Statistics: Posted by senso — 29 Nov 2007, 20:16


]]>
2007-11-29T11:34:10+02:00 2007-11-29T11:34:10+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3337#p3337 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
1) the fader was increasing when rotating the encoder either way
or
2) the fader was increasing when the encoder was rotating one way and nothing happened when it was rotated the other way.

antwan

Statistics: Posted by antwan — 29 Nov 2007, 10:34


]]>
2007-11-29T10:01:29+02:00 2007-11-29T10:01:29+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3333#p3333 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
(see P45 of the Usine Manuel)

Statistics: Posted by cmodica — 29 Nov 2007, 09:01


]]>
2007-11-28T21:14:22+02:00 2007-11-28T21:14:22+02:00 https://brainmodular.com/forums/viewtopic.php?t=668&p=3324#p3324 <![CDATA[Midi Learn: Relative - with M-audio Axiom]]>
I'm just learning to change the mode of the rotary encoders on my m-audio axiom 61 to increment/decrement mode.
I can't get them to work though, it seems Usine can't understand the inc/dec messages correctly.

Here's the link to the manual (this part is covered on page 19 of the PDF):
http://www.m-audio.com/images/global/ma ... G_EN01.pdf

I guess I could make a subpatch to correct this but am I missing something?

Any insights?

antwan

Statistics: Posted by antwan — 28 Nov 2007, 20:14


]]>