Forum rss-feed

Forum

Software: Bug Report - Talkers in rigs don't accept actions , 2.0.74

Most Recent

written by: TheTechnobear

Thanks for the explanation, i can imagine the issues - as you have mentioned the talker dependency issue before.

My personal thoughts (from a limited understanding of eigenD!)
Id have put a 'micro interpreter' in each rig, this would only be responsible for communicating to components within the rig. the outer interpreter would talk to this micro interpreters when necessary for actions to happen within the rig.
- this would continue the symmetry you have of rigs being the same as the outer container.
- it would allow you to make rigs 'remoteable/out of process' in the future, as you have a defined boundary.

Going back shorter term, I think it would be reasonable and should be enforced, that talkers within rigs can only talk to components within that rig. Yes, it enforces structure, but without some kind of structure setups will just become a tangled mess of spaghetti.

Anyway, you guys having been living and breathing this for years, so im sure this has been discussed many times.

I continue to dig through eigenD and learn more every day, and now with agent development im getting more hands on, but unfortunately there are large parts that i don't understand yet (the whole rpc structure and querying is black magic at the moment) and not really commented or documented, so not sure i can really help just yet ... but hopefully in time it will become clear!

written by: TheTechnobear

Thu, 4 Jul 2013 14:13:48 +0100 BST

Hi,
Ive discovered what i think is a bug in 2.0.74

You are able to create talkers within rigs ok, and then you can create the key and also the action.
However, whenever you add the belcanto action, when you press ok on the dialog the belcanto disappears.

reproduction:
a) create talker in sampler rig 1
b) try to add belcanto to say start the metronome (or anything else)

This fails , in both workbench and also when executed directly from belcanto.

This would be a really useful feature as I want to put my agent in its own rig, to avoid adding more complexity to the main workspace.

Can you confirm? and also let me know if its likely to fixed, or is just a 'feature'

Thanks
Mark Harris


written by: geert

Thu, 4 Jul 2013 16:35:21 +0100 BST

Actually it's a restriction, talkers in rigs are still unsupported afaik :-)


written by: TheTechnobear

Thu, 4 Jul 2013 17:19:24 +0100 BST

bug/enhancement - same to me :o)

perhaps it shouldnt allow creation, if they arent going to work... and its not mentioned in the documenation afaik ;o)

would be very handy, i really do prefer putting stuff in rigs, its makes setups alot tidier ... this is the only thing ive found so far that doesnt like being in a rig...
keygroup seems ok, and i have a mixer in my looper setup, so on the whole most it works well.

btw, the reason, I dont want to leave the talkers outside, as I use keygroups within the rig, to allow transparent key mappings across devices.
i.e. the rigs is the same across pico/tau/alpha, and then i just change key mappings upstream to allow for differences in devices
(hmm, i thought that was going to same less complex than it did - oh well;))



written by: john

Thu, 4 Jul 2013 20:05:12 +0100 BST

The Rig/Talker issue was one that got a lot of thought when we first designed Rigs. The first thing to remember is that Rigs are designed to become pluggable and in fact we are not terribly far from this being a reality (as in a few days work according to Jim). This is a very nice feature to aim for, but has a few difficult implications, the most difficult of which is how to make Talkers play nicely in a more dynamic environment.

We considered two different approaches. The first was to have some kind of 'action' connection on the Rig boundary and route talker connections through these intermediates. The second was to allow Talkers to be re-evaluated when the contents of a Rig are changed. Quite a bit of discussion when around these two approaches but it eventually became obvious that to keep the power of Talkers, which is largely there due to their apparent orthogonality to the connection system, we'd have to implement the second option. For a number of reasons that implementation is difficult. Not impossible, just hard - it involves implementing a reliable dependency management system for Talkers as a first step (ie, knowing what a given Talker action object depends upon) then making the re-evaulation of the Talkers that get tagged as invalid after an internal Rig change a sane process, ie; one that doesn't glitch your processing for ten minutes while it happens.

As you have discovered, this has not yet been done. An initial first step will be to simply re-evaluate all Talkers when a rig is changed. Perhaps the best approach will be to make this a manual thing, so that the large CPU crunch it will cause is not a surprise. I'm sure there's probably a middle ground before we need full dependency management. I think that after we have the Conductor running, getting Rigs to be pluggable with functional Talkers has to be near the top of the development wish list. If anyone want's to have a look at this issue who knows their way around EigenD internals then please talk to me and I'll see if I can get you some help.

I agree we should probably have disabled making Talkers in Rigs somehow for the meantime, but the work that could go into that logic could also go into something else and the priority was spent elsewhere. And things like that that sound simple nearly always end up as giant time sinks, it seems to be a rule of the software universe.

John


written by: TheTechnobear

Thu, 4 Jul 2013 21:40:41 +0100 BST

Thanks for the explanation, i can imagine the issues - as you have mentioned the talker dependency issue before.

My personal thoughts (from a limited understanding of eigenD!)
Id have put a 'micro interpreter' in each rig, this would only be responsible for communicating to components within the rig. the outer interpreter would talk to this micro interpreters when necessary for actions to happen within the rig.
- this would continue the symmetry you have of rigs being the same as the outer container.
- it would allow you to make rigs 'remoteable/out of process' in the future, as you have a defined boundary.

Going back shorter term, I think it would be reasonable and should be enforced, that talkers within rigs can only talk to components within that rig. Yes, it enforces structure, but without some kind of structure setups will just become a tangled mess of spaghetti.

Anyway, you guys having been living and breathing this for years, so im sure this has been discussed many times.

I continue to dig through eigenD and learn more every day, and now with agent development im getting more hands on, but unfortunately there are large parts that i don't understand yet (the whole rpc structure and querying is black magic at the moment) and not really commented or documented, so not sure i can really help just yet ... but hopefully in time it will become clear!



Please log in to join the discussions