-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hygienic layer duplication #171
Comments
Needed to implement this without completing #170: a method to change the scope of a single object in the UI. This will only be used in the Interface layer, to set the scope of widget(s) associated with a cloneable scope. |
Demo patch: a [mixer] object with an arbitrary number of tracks passed in as an initarg, and each channel having a number of aux sends configured by another initarg. So [mixer 8,3] should open up a largeish UI with 8 sets of gain and pan controls, each one having 3 smallish aux send dials next to. The object should have 8 inlets and 2 + 3 = 5 signal outlets. The aux send knobs are set up to stack vertically, the channels to stack horizontally. |
Implementation of #175 makes the patch mechanics necessary to do this a bit simpler. Now it's basically:
|
Actually, after some bug fixes and rethinking it's easier:
|
Above commit gets a big chunk of clonescope working. No UI stuff yet. |
Current state: there are still some bugs with cloned scopes, but a basic demo patch works.
|
Actually, this is a pretty wide-ranging commit. * Add --verbose-remote option to log RPC remote console output * Update logging code to always use console to send log messages * Clean up deletion code and export GUI * Address a delete/free anti-pattern that was causing stuff that boiled down to this: for epos, elt in enumerate(mylist): mylist[epos:epos+1] = [] that don't work in case you were wondering
The above commit addresses the DSP crashes, but see #179 for further work on this topic. Template expansion I'm still thinking about. The current hack, which lives in Patch.clonescope, just does a Python format expansion on any TextElement that is in the exported UI. The format is passed a dict containing just "num", "row", and "col" values. If there are no copies made, this needs to still be kludgified to show "0" as the num, so you can make an object with no specified number of copies and get something that still works |
Ok, #180 (I think) has a pretty clean solution for the template expansion: don't do anything about it explicitly, but add some support allowing it to be done in the patch. That's good enough for me to close this ticket, since the basic functionality is working. |
This is required for patches with parameterized input and output lists. A message to "self" should cause a layer to be copied into a new scope.
Items in the copied layer which are to be handled specially:
The text was updated successfully, but these errors were encountered: