I thought I’d start a new topic, s I now have a working external that amyone is most welcome to try out.
The object has 6 attributes;
@fval – the object value, the only attribute to be stored/recalled.
@min – the low boundary for the object value. @max – the high boundary for the object value.
@enc – receives remote +- values that inc/dec the fval.
@mod – a secondary mod, basicly a + routine with either input triggering output.
@ffinal – the final output value, available either at the outlet, or at a pattr object bound to the ffinal attribute.
It’s not a process that cannot be done with the standard max objects, but in a patch which is going to end up with over 1000 parameter values, it saves on alot of extra connections for the inc/dec and modulation, which I have tried handling with send/receive, forwarding, a massive pattr system, handling the calculations in the modulation and encoder subpatches. This does seem like the best option yet.
Any comments/suggestions would be gratefully received. I included the .c file in the zip in case anyone fancies taking a look and telling me where it might all fall down! My biffest test so far was to instantiate 2048 instances of the object in a patch. Max hiccuped for half a sec on the last duplicate, but no issues whatsoever ensued.
One thing i would ask advice on. I have been looking to add naming the object as either an attribute, or as the first argument, like you can with pattr, so I can name the object at creation without opening the inspector, but from the regobex example in pattr sdk, I can’t make out just how I’m meant to do this. I see the object_register, object_attach, and the complementary detach and unregister, but I’m not sure how that translates into what I want to do. I guessign I might have to wait until my C skills have improved a nit!
A big thanks to Jeremy for clearing up a number of newbie blunders on this for me.