Event flow puzzle
Hello all,
I'm battling to solve an event flow problem which I can't seem to get around.
I have four Switch (Sequenced) modules with 8 steps.
I have 8 buttons on a control interface midi learnt to 8 switches in my patch.
I wish to be able to use the 8 buttons to set any of the 8 steps in any of the 4 switch sequencers.
Like this
I decide to control Switch Sequencer 3 with my buttons - so I select 3, from a List Button for instance - All the switches (with the midi learns) light up according to the prevailing switch positions in Sequencer 3. I can use my interface buttons to change those 8 switch positions. Then I might use my mouse to change some of the sequenced switches and I'd like the midi learnt switches to light up accordingly.
Then I change to - say - controlling Switch Sequencer 1. Again, all the midi learnt switches change status accordingy etc. etc.
I hope I'm clear enough in my intentions.
Anyways, I seem to fail to get this right. It's a bit of an event flow puzzle. I've been trying a lot with using arrays cause I thought it might make it easier to build - but with no more luck.
Thanks for any assistance.
antwan
I'm battling to solve an event flow problem which I can't seem to get around.
I have four Switch (Sequenced) modules with 8 steps.
I have 8 buttons on a control interface midi learnt to 8 switches in my patch.
I wish to be able to use the 8 buttons to set any of the 8 steps in any of the 4 switch sequencers.
Like this
I decide to control Switch Sequencer 3 with my buttons - so I select 3, from a List Button for instance - All the switches (with the midi learns) light up according to the prevailing switch positions in Sequencer 3. I can use my interface buttons to change those 8 switch positions. Then I might use my mouse to change some of the sequenced switches and I'd like the midi learnt switches to light up accordingly.
Then I change to - say - controlling Switch Sequencer 1. Again, all the midi learnt switches change status accordingy etc. etc.
I hope I'm clear enough in my intentions.
Anyways, I seem to fail to get this right. It's a bit of an event flow puzzle. I've been trying a lot with using arrays cause I thought it might make it easier to build - but with no more luck.
Thanks for any assistance.
antwan
-
martignasse
- Site Admin
- Posts: 611
- Location: Lyon, FRANCE
- Contact:
hi,
I think i see what you want, is it something like this ?

here you can see the logic for controling three SeqQwitch modules by a ComboList.
- notice that i use preset module to store the config for each track sel value of the data in module (on the left) plugged directly on the ComboList module.
- has the list is about 20 entry, i have to use three Preset module, on the middle, and the logic to control them (maybe simplified with next usine version).
- you can add Switch controls to the sequencers if you need, they will be stored in the presets.
hope it help.
I think i see what you want, is it something like this ?

here you can see the logic for controling three SeqQwitch modules by a ComboList.
- notice that i use preset module to store the config for each track sel value of the data in module (on the left) plugged directly on the ComboList module.
- has the list is about 20 entry, i have to use three Preset module, on the middle, and the logic to control them (maybe simplified with next usine version).
- you can add Switch controls to the sequencers if you need, they will be stored in the presets.
hope it help.
Martin FLEURENT - Usine Developer - SDK maintainer
-
martignasse
- Site Admin
- Posts: 611
- Location: Lyon, FRANCE
- Contact:
in fact, if you want to control the three SeqSwitch modules with only 8 switch, routed by the listbox, it's little more complex.
to resume, you have to make some logic to route the switch to the appropriate SeqSwitch from the list entry number, with a counter and some pass module.
i have some related patch at home, i'll have to look into tonight.
to resume, you have to make some logic to route the switch to the appropriate SeqSwitch from the list entry number, with a counter and some pass module.
i have some related patch at home, i'll have to look into tonight.
Martin FLEURENT - Usine Developer - SDK maintainer
In fact it's more simple than appears.
In the sequenced Switch there is a "value" inlet/outlet (in red). It contain an array of value which represent the values of the each switches.
On your patch
- add another seq switch module, we call 'master' and make it invisible. on your patch there is now a master seqswitches and 3 "slaves"
- add a data/dispatch module
- create a ctrl (ctrl+drag) on the dispatch - select; this control will select witch "slave" is active.
- connect your 8 learned switch on master - val1, master - val2 ...master- val 8
- connect the master - values (in red) to dispatch - in
- connect dispatch - out 1 to slave1 - values (in red)
- connect dispatch - out 2 to slave2 - values (in red)
- connect dispatch - out 3 to slave3 - values (in red)
something like that?
In the sequenced Switch there is a "value" inlet/outlet (in red). It contain an array of value which represent the values of the each switches.
On your patch
- add another seq switch module, we call 'master' and make it invisible. on your patch there is now a master seqswitches and 3 "slaves"
- add a data/dispatch module
- create a ctrl (ctrl+drag) on the dispatch - select; this control will select witch "slave" is active.
- connect your 8 learned switch on master - val1, master - val2 ...master- val 8
- connect the master - values (in red) to dispatch - in
- connect dispatch - out 1 to slave1 - values (in red)
- connect dispatch - out 2 to slave2 - values (in red)
- connect dispatch - out 3 to slave3 - values (in red)
something like that?
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Hi,
yes, your first reply didn't quite catch what I'm trying to do but your second post seems to be on track. If you have anything related to this at home I'm very interested.
My feeling would be to use some Array (display or set) -modules in conjuction with the "values" inlets and outlets of the SeqSwitch modules - together with some Events Control. But it seems that the values outlet connected to in inlet of the Array module doesn't really seem to transfer the values of the SeqSwitch to the Array.
Maybe Olivier can clarify some of this...?
Cheers,
antwan
EDIT:
Seems like Olivier posted at the same time as I:)
Thanks, I'll give that a shot. Just to add... I need to add to that the functionality that each slave updates the master when switched to.
Eventhough I might get this to work according to your suggestion I'm still interested to know why the Array (display or set) module doesn't receive from the SeqSwitch's red values outlet eventhough the array size is the same.
thanks,
antwan
yes, your first reply didn't quite catch what I'm trying to do but your second post seems to be on track. If you have anything related to this at home I'm very interested.
My feeling would be to use some Array (display or set) -modules in conjuction with the "values" inlets and outlets of the SeqSwitch modules - together with some Events Control. But it seems that the values outlet connected to in inlet of the Array module doesn't really seem to transfer the values of the SeqSwitch to the Array.
Maybe Olivier can clarify some of this...?
Cheers,
antwan
EDIT:
Seems like Olivier posted at the same time as I:)
Thanks, I'll give that a shot. Just to add... I need to add to that the functionality that each slave updates the master when switched to.
Eventhough I might get this to work according to your suggestion I'm still interested to know why the Array (display or set) module doesn't receive from the SeqSwitch's red values outlet eventhough the array size is the same.
thanks,
antwan
Hi,
yes I got this to work.
With Oliviers tip - plus the addition that I had also a Selector connected to the same Select as the dispatch with inputs coming from all SeqSwitches. A few Pass If Changed in between and the thing works fine.
The main reason that I'm interested why I can't use Array modules instead of this invisible master SeqSwitch is the fact that now I'm limited to doing this on maximum 16 steps SeqSwitches. If I could use Array modules (set array element value etc...) together with the values inlets and outlets of the SeqSwitch I could work with buttons controlling more than 16 steps.
Thanks,
antwan
EDIT:
In fact it's not quite perfectly working as I described. Because:
The moment when the Select (connected to both Selector and Dispatch) is changed, there is some "bleeding" of values from one SeqSwitch to the other. There something I don't quite get in the event flow ordering that causes this even though the target of both the Selector and Dispatch is changed simultaneously. Don't get it...
/a
yes I got this to work.
With Oliviers tip - plus the addition that I had also a Selector connected to the same Select as the dispatch with inputs coming from all SeqSwitches. A few Pass If Changed in between and the thing works fine.
The main reason that I'm interested why I can't use Array modules instead of this invisible master SeqSwitch is the fact that now I'm limited to doing this on maximum 16 steps SeqSwitches. If I could use Array modules (set array element value etc...) together with the values inlets and outlets of the SeqSwitch I could work with buttons controlling more than 16 steps.
Thanks,
antwan
EDIT:
In fact it's not quite perfectly working as I described. Because:
The moment when the Select (connected to both Selector and Dispatch) is changed, there is some "bleeding" of values from one SeqSwitch to the other. There something I don't quite get in the event flow ordering that causes this even though the target of both the Selector and Dispatch is changed simultaneously. Don't get it...
/a
you can do a lot of stuffs with arrays and have more than 16 steps:
Add any "master" you want and use the module "array/concat array" to increase the size. (concatenation of each "master" values)
something like that...
Add any "master" you want and use the module "array/concat array" to increase the size. (concatenation of each "master" values)
something like that...
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Hey,
Ok, so whether I would use a master / invisible SeqSwitch or some Array modules I think my problem still remains this:
Here's my current setup (you can't see it all but you can imagine the rest of SeqSwitch modules):

The problem is:
when I use the select-fader to change which SeqSwitch I control with the set of 16 switches - there's some problem of values "bleeding" from SeqSwitch to another. You will see what I mean if you set this up like in the image. Some event flow order problem. I would very much appreciate it if you could have a look. I'm already very confused!
Thanks a million!
antwan
Ok, so whether I would use a master / invisible SeqSwitch or some Array modules I think my problem still remains this:
Here's my current setup (you can't see it all but you can imagine the rest of SeqSwitch modules):

The problem is:
when I use the select-fader to change which SeqSwitch I control with the set of 16 switches - there's some problem of values "bleeding" from SeqSwitch to another. You will see what I mean if you set this up like in the image. Some event flow order problem. I would very much appreciate it if you could have a look. I'm already very confused!
Thanks a million!
antwan
there is probably an event loop?
did you try to insert "pass only if has changed" in red wire feedback?
did you try to insert "pass only if has changed" in red wire feedback?
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Hi,
Yes. I still have the same problem even if I add a "pass only if has changed" module everywhere where there wasn't one in the previous image i posted. I.e.:
A) 4 x between the SeqSwitch modules and the Selector
B) 1 x between the SeqSwitch "master" module and the Dispatch module
So still a problem...
It's quite complicated because one might do adjustments to the SeqSwitches by mouse or by the set of switches - and - one controls all 4 SeqSwitches with the same set of switches... So there's many moving parts.
thanks again for any help.
antwan
Yes. I still have the same problem even if I add a "pass only if has changed" module everywhere where there wasn't one in the previous image i posted. I.e.:
A) 4 x between the SeqSwitch modules and the Selector
B) 1 x between the SeqSwitch "master" module and the Dispatch module
So still a problem...
It's quite complicated because one might do adjustments to the SeqSwitches by mouse or by the set of switches - and - one controls all 4 SeqSwitches with the same set of switches... So there's many moving parts.
thanks again for any help.
antwan
there is probably an event loop?
did you try to insert "pass only if has changed" in red wire feedback?
did you try to insert "pass only if has changed" in red wire feedback?
Olivier Sens
www.brainmodular.com
www.brainmodular.com
If you mean did I try to insert "pass only if has changed" modules in between the four SeqSwitch's values outlets and the Selector's inlets then yes, i tried that.
Cheers,
antwan
Cheers,
antwan
I need more info to help you !
send me your patch by mail contact@sensomusic.com
If I have a couple of minutes I'll take a look.
send me your patch by mail contact@sensomusic.com
If I have a couple of minutes I'll take a look.
Olivier Sens
www.brainmodular.com
www.brainmodular.com
-
martignasse
- Site Admin
- Posts: 611
- Location: Lyon, FRANCE
- Contact:
very interesting thread.
has i have the same kind of probleme, i think i'll make some workspace to illustrate the probleme.
but not at home for now....
a+
has i have the same kind of probleme, i think i'll make some workspace to illustrate the probleme.
but not at home for now....
a+
Martin FLEURENT - Usine Developer - SDK maintainer
Yes,
I too find it a very interesting puzzle. Yet to solve it myself. If you come up with anything, let me know...
antwan
I too find it a very interesting puzzle. Yet to solve it myself. If you come up with anything, let me know...
antwan
Just a copy of the mail I sent to Antwan
An example of the patch will be posted as add-on soon, with the authorization of Antwan of course!as there is a feedback loop, you're right the order of the scheduling is very important. In Usine, some events are handled immediately and some of them are queued, depending on a internal priority. This point is very dark in Usine, and not so well documented... I know, but sometime I have to sleep a little..
We could find a lots of different ways to solve your problem: rewrite the patch in a new style, use scripts, etc... but I found that it was easier to rewrite a part of the Usine code to change the priority off events in the Sequencer Switch module.
So You'll find a new version of your patch, joined to this mail, but it doesn't work properly with the actual version of Usine 3.62. You have to wait for the next release, which will come out very soon.
Olivier Sens
www.brainmodular.com
www.brainmodular.com
This thread became even more interesting along with Olivier's response. It's indeed a interesting territory of patching.
And sure, you may post an example. Of course!
antwan
And sure, you may post an example. Of course!
antwan
Hey.
Thanks a lot Olivier for the new release. It indeed did solve the remaining problem. Now that it works I'm again interested in making this work with SeqSwitches of 32 steps. I can see how to use the concat array module to join two 16 step "master" SeqSwitches but how do I get it to work on the input side. I.e. inputting the array from thefour "slave" SeqSwitches. The array (of 32 values) should somehow be split and rerouted to these two 16 step masters?
thanks
antwan
Thanks a lot Olivier for the new release. It indeed did solve the remaining problem. Now that it works I'm again interested in making this work with SeqSwitches of 32 steps. I can see how to use the concat array module to join two 16 step "master" SeqSwitches but how do I get it to work on the input side. I.e. inputting the array from thefour "slave" SeqSwitches. The array (of 32 values) should somehow be split and rerouted to these two 16 step masters?
thanks
antwan
I am slowly beginning to realize that, having been assiduously working in SynthEdit, that I can make things in Usine I never thought I'd understand how to do using the native modules. I am stunned. This thread was very informative, thanks.
I'm not sure you have to split the 32array. Just connect it to slaves inlets.
something like that?
something like that?
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Hi,
in a way you're correct...
The only problem is where to connect the (in this case, 32) switches?
This is the reason why I was inclined to use two 16step SeqSwitches as masters, so i would have a place to connect all 32 midi learnt switches. If I have a Array (set or display) module it will only have 16 inlets as do the SeqSwitch modules.
Any other ideas to try?
Thanks.
antwan
in a way you're correct...
The only problem is where to connect the (in this case, 32) switches?
This is the reason why I was inclined to use two 16step SeqSwitches as masters, so i would have a place to connect all 32 midi learnt switches. If I have a Array (set or display) module it will only have 16 inlets as do the SeqSwitch modules.
Any other ideas to try?
Thanks.
antwan
You can take two master seqswitch.
16 +16 = 32
16 +16 = 32
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Hi,
yes I know, that was the plan. The question was how to distribute the incoming 32Array (coming from the left, from the 4 x SeqSwitches, the slaves) into those two master 16-step SeqSwitches...
cheers
antwan
yes I know, that was the plan. The question was how to distribute the incoming 32Array (coming from the left, from the 4 x SeqSwitches, the slaves) into those two master 16-step SeqSwitches...
cheers
antwan
Hi,
ok I hacked it. So for those interested, here's the solution for the last problem. I still have only 16 switches but i connected them to every second inlet - all the same, this is how to set it up for 32-step SeqSwitches:

thanks for all the help. now im happy
antwan
EDIT:
I forgot to specify these details for the solution to be complete:
- The two SetArraySize modules are set to 16
- The one ShiftArray module is set to -16 and
- The two Arrays - that took the place of 'master' SeqSwitches - are set to 16
antwan
ok I hacked it. So for those interested, here's the solution for the last problem. I still have only 16 switches but i connected them to every second inlet - all the same, this is how to set it up for 32-step SeqSwitches:

thanks for all the help. now im happy
antwan
EDIT:
I forgot to specify these details for the solution to be complete:
- The two SetArraySize modules are set to 16
- The one ShiftArray module is set to -16 and
- The two Arrays - that took the place of 'master' SeqSwitches - are set to 16
antwan
Hi,
I just updated from version 3.63 up to 3.68f.
I'm happy I did, it's packed with great new features.
...
But, I had to dig up this thread because what I solved here, doesn't work anymore. Senso - or some other kind soul - any idea what's changed in event processing since 3.63 to cause that this patch doesn't work anymore?
Thanks once again,
antwan
I just updated from version 3.63 up to 3.68f.
I'm happy I did, it's packed with great new features.
...
But, I had to dig up this thread because what I solved here, doesn't work anymore. Senso - or some other kind soul - any idea what's changed in event processing since 3.63 to cause that this patch doesn't work anymore?
Thanks once again,
antwan
nothing has changed but the scheduling is more precise.
send me your patch and I'll tell you how to proceed to fix it.
send me your patch and I'll tell you how to proceed to fix it.
Olivier Sens
www.brainmodular.com
www.brainmodular.com
Who is online
Users browsing this forum: No registered users and 76 guests
