Page 1 of 1
Posted: 03 Apr 2008, 12:11
by antwan
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
Posted: 03 Apr 2008, 19:13
by martignasse
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.
Posted: 04 Apr 2008, 10:13
by martignasse
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.
Posted: 04 Apr 2008, 15:44
by senso
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?
Posted: 04 Apr 2008, 15:49
by antwan
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
Posted: 04 Apr 2008, 16:14
by 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
Posted: 04 Apr 2008, 16:58
by senso
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...
Posted: 04 Apr 2008, 17:28
by antwan
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
Posted: 04 Apr 2008, 18:52
by senso
there is probably an event loop?
did you try to insert "pass only if has changed" in red wire feedback?
Posted: 04 Apr 2008, 19:21
by antwan
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
Posted: 04 Apr 2008, 19:43
by senso
there is probably an event loop?
did you try to insert "pass only if has changed" in red wire feedback?
Posted: 04 Apr 2008, 19:47
by antwan
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
Posted: 04 Apr 2008, 21:29
by senso
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.
Posted: 05 Apr 2008, 10:51
by martignasse
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+
Posted: 05 Apr 2008, 14:05
by antwan
Yes,
I too find it a very interesting puzzle. Yet to solve it myself. If you come up with anything, let me know...
antwan
Posted: 09 Apr 2008, 09:10
by senso
Just a copy of the mail I sent to Antwan
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.
An example of the patch will be posted as add-on soon, with the authorization of Antwan of course!
Posted: 09 Apr 2008, 10:32
by antwan
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
Posted: 12 Apr 2008, 12:37
by 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
Posted: 13 Apr 2008, 05:15
by runagate
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.
Posted: 13 Apr 2008, 09:10
by senso
I'm not sure you have to split the 32array. Just connect it to slaves inlets.
something like that?
Posted: 13 Apr 2008, 11:31
by antwan
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
Posted: 14 Apr 2008, 08:52
by senso
You can take two master seqswitch.
16 +16 = 32
Posted: 14 Apr 2008, 09:21
by antwan
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
Posted: 14 Apr 2008, 20:16
by 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
Posted: 08 Aug 2008, 20:32
by 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
Posted: 08 Aug 2008, 21:53
by senso
nothing has changed but the scheduling is more precise.
send me your patch and I'll tell you how to proceed to fix it.