• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum
FORUM

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    [LOGGED] Control Panel Data Routing Using Address System

    Feature Requests
    control ids control panel
    3
    6
    1164
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jtsteph last edited by Woland

      Overview

      Implement a new system for routing data between actors and control panel items using an address-based approach, similar to the recently implemented SHOW/HIDE control functionality. This would complement the existing CTL# system while providing flexible and programmatic control panel data routing.

      Current Control Panel Data Routing

      • Users manually assign CTL# values to inputs/outputs of actors to connect with control panels
      • In complex patches (especially those using many nestled User Actors or state changes like controlling layer or channel based media mixing), assigning and managing CTL# assignments becomes challenging
      • The current system makes it complex to implement dynamic routing or state-based control panel configurations

      Proposed Solution

      Introduce two new actors that leverage the existing controller address system:

      1. Send Controller Data
        • Sends data to control panel items using an address-based system
        • Uses the same addressing syntax as SHOW/HIDE controls
        • Allows for programmatic assignment of data routes
      2. Receive Controller Data
        • Receives data from control panel items using the same addressing system
        • Enables dynamic routing of control panel data to different parts of the patch

      Key Benefits

      1. Programmatic Control
        • Enable dynamic assignment of control panel connections
        • Allow for programmatic state change and lookup table-based routing systems
      2. Flexible State Management
        • Enable the same controls to serve different functions based on patch state
        • Facilitate easier management of multi-layer/multi-track systems

      Technical Considerations

      • The system would maintain compatibility with the existing CTL# functionality
      • Implementation would leverage the established osc-like show/hide controller address syntax
      • Support for wildcards and pattern matching in addresses

      Impact

      This feature could significantly improve workflow for:

      • Complex performance systems
      • Multi-layer video setups
      • Installations requiring dynamic control routing
      • Projects using extensive nestled User Actor networks
      • Systems requiring monitoring of multiple parameter sets using the same control panels

      Compatibility

      • Maintains backward compatibility with existing CTL# system
      • Builds upon familiar OSC-style addressing already implemented in SHOW/HIDE controls

      Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
      Website: http://justinstephenson.com

      DusX 1 Reply Last reply Reply Quote 2
      • DusX
        DusX Tech Staff @jtsteph last edited by

        @jtsteph

        Thank you for the comprehensive write-up, as you might have gathered the current/new addressing is the first step towards a system much like this. We have exciting plans for this and intend to base it somewhat on osc.

        For now that's probably all I should say ;)

        Troikatronix Technical Support

        • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
        • My Add-ons: https://troikatronix.com/add-ons/?u=dusx
        • Profession Services: https://support.troikatronix.com/support/solutions/articles/13000109444-professional-services

        Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

        J 2 Replies Last reply Reply Quote 1
        • J
          jtsteph @DusX last edited by

          @dusx, oh very cool. This sounds amazing. Working with actors using text addressing could open all kinds of possibilities!

          Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
          Website: http://justinstephenson.com

          1 Reply Last reply Reply Quote 1
          • J
            jtsteph @DusX last edited by jtsteph

            @dusx As I work through learning more about Python development, I have learned about using a "message bus" to send things back and forth from modules.

            I'm making a modular Python project for some housekeeping here and have made some stateless utility modules to do things like generate xxhash values, read csv files, update SQlite records etc. I learned about working with these modules using a "message bus" through Python pubsub. It's super cool as you can make things that don't need to be integrated into everything else, you can just publish messages to a topic in one module and then subscribe to the topic in another to get the operation return values. Mind blown.

            This made me think about the Isadora Control Panels and our conversation about using a text-base addressing system. Something flexible like Python pubsub would be amazing to send and receive parameter values to the Control Panels. It might also be a useful flexible alternate concept to send things around an Isadora project alongside globals and broadcast/listener networks in a programmatic way.

            Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
            Website: http://justinstephenson.com

            Woland 1 Reply Last reply Reply Quote 1
            • Woland
              Woland Tech Staff @jtsteph last edited by

              @jtsteph said:

              @dusx As I work through learning more about Python development, I have learned about using a "message bus" to send things back and forth from modules. I'm making a modular Python project for some housekeeping here and have made some stateless utility modules to do things like generate xxhash values, read csv files, update SQlite records etc. I learned about working with these modules using a "message bus" through Python pubsub. It's super cool as you can make things that don't need to be integrated into everything else, you can just publish messages to a topic in one module and then subscribe to the topic in another to get the operation return values. Mind blown.

               If you ever end up documenting your discoveries online in the form of a tutorial or their results in the form of a showcase, let us know and we'll happily signal-boost it on our socials :)


              @jtsteph said:

              This made me think about the Isadora Control Panels and our conversation about using a text-base addressing system. Something flexible like Python pubsub would be amazing to send and receive parameter values to the Control Panels. It might also be a useful flexible alternate concept to send things around an Isadora project alongside globals and broadcast/listener networks in a programmatic way.

              Yes, I'm very much looking forward to the implementation of more programmatic control of various aspects of the program. Isadora is already so flexible, but once more programmatic control is possible there will be even more possibilities

              TroikaTronix Technical Support
              New Support Ticket: https://support.troikatronix.com/support/tickets/new
              Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
              Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
              Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

              | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

              1 Reply Last reply Reply Quote 1
              • J
                jtsteph last edited by jtsteph

                @woland said:

                 If you ever end up documenting your discoveries online in the form of a tutorial or their results in the form of a showcase, let us know and we'll happily signal-boost it on our socials :)

                 I am afraid that the python work is exciting to me but a bit on the boring side: 

                I am migrating 20 years worth of studio archives on LTO5 and HDD. I had been using Tolis BRU for the LTO archives which is now, of course, out of business. I've upgraded to LTO8 and don't ever want use a proprietary system again so I moving to completely open standards for the tape archives - Python, Linux, CSV, SQLite and GNU PAX TAR. (LTFS has show stopping limitations for me)

                I am finding it a really rewarding project - I'm getting a better understanding of modular multi-layer development in python and have really been excited about what you can accomplish with Github Copilot. It's a bit buggy, but it is so much better than copy/paste/repeat from an LLM. You can really refine the context, have it asses your modules and codebase when building and refactoring etc. Up to this point, I've spent most of my time planning, building GUI drafts and developing the architecture to make things super clear for me and for co-pilot.

                The crossover with Isadora is learning more about python and about programming concepts in general. I have done lots of bits of Javascript for AfterEffects/Isadora and Python for Resolve and Blender on my own and using Claude and GPT. I can't wait to use VS Code and Copilot to continue that work - there is so much less back and forth when the context is clarified. I am also excited to work with the Pythoner actor, too.

                Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
                Website: http://justinstephenson.com

                1 Reply Last reply Reply Quote 1
                • First post
                  Last post