Welcome to %s forums

BrainModular Users Forum

Login Register

Simple Logic-style channel Inspector

Discussions about add-ons, announcements
Post Reply
woodslanding
Member
Posts: 1327
Contact:

Unread post by woodslanding » 23 Feb 2018, 16:44

I have used inspectors (ala Logic) in my workspaces since Usine V4, they are indispensible to me, as my wkps always have a bunch of similar channels, and insufficient screen space to edit all parameters from the channels themselves.

There are two big issues that come up. First, when the inspector is in a different rack, and connected by busses, it is hard to avoid 'jitter' in the controls, where two different values chase each other around the loop.

Secondly, it's easy for data from one source to mistakenly get sent to another source.

All my inspectors so far have had timers. So when the channel gets changed, data from the inspector to the old channel is blocked. Then we wait. Then we let data from the new channel in. It's been clumsy slow and complicated, but it has worked. But real 2-way communication has still not been possible. I could allow changing values either from individual channels, or from the inspector but never both, or I would end up with jitter.

But thanks to gurulogic, I have a better way to wire this:
Third example (example2waymap(alt)) is another approach where I circumnavigate the buses latency issue by having the plugin parameters kept in a local loop and sending the remote parameters data to manipulate the local loop directly.
This is now a solution for my inspector problem. Data is sent to and from the inspector, with the first item in the array being the source channel number. The script checks the channel of incoming inspector data to make sure it matches before changing anything, and when it does, it is 'injecting' inspector data into this nice tight 1-block local loop. I have managed to scale this up to many more parameters without issue, and there are no timers, so it changes as quickly as possible.

It does seem to be important to close the loop completely for all parameters, even if they only need to go one direction, or else stray values can end up in the loop (not sure how this happens....)

Don't know if anyone else might need this, but here it is, just in case:

http://www.sensomusic.com/forums/upload ... orTest.wkp
Custom Ryzen 5900x MATX build, Win10, Fireface UFX, touchscreen
Custom 2 manual midi keyboard
Usine, Kontakt, Reaktor, Synthmaster, Byome, Arturia, Soundtoys, Unify

joffo78
Member
Posts: 1033
Contact:

Unread post by joffo78 » 23 Feb 2018, 19:53

Hi woodslanding. I have the same problem than you !
i think i managed to solve it but with a very very tricky solution
here you can see an example
I know senso ask him a lot of questions about this question.
Hope (but i'm sure) he will find a very smart solution !

woodslanding
Member
Posts: 1327
Contact:

Unread post by woodslanding » 27 Feb 2018, 06:44

I think I figured out where the stray values may have been coming from.

There is a for loop in the script that has a wrong endpoint. I will try to upload a fix soon.
Custom Ryzen 5900x MATX build, Win10, Fireface UFX, touchscreen
Custom 2 manual midi keyboard
Usine, Kontakt, Reaktor, Synthmaster, Byome, Arturia, Soundtoys, Unify

gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 27 Feb 2018, 21:11

Hi, its good to see that my method for keeping parameter loops localized has given some inspiration.
In the case where not adding a dense data flow (ie: LFO's) to an array of multi parameter flows , just in case you have not considered this idea, I find the holdtime parameter on the pass if change module very useful for controlling jitter in 2 way flows.

Image

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests