HISE Logo Forum
    • Categories
    • Register
    • Login

    Making plugins that network with each other

    Scheduled Pinned Locked Moved General Questions
    20 Posts 5 Posters 1.5k Views
    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.
    • ustkU
      ustk @ustk
      last edited by

      @ustk Got it! You can allow the user to choose between groups of communication... I'm on it...

      Can't help pressing F5 in the forum...

      1 Reply Last reply Reply Quote 1
      • ustkU
        ustk @d.healey
        last edited by

        @d-healey said in Making plugins that network with each other:

        @ustk But they may switch projects.

        that's where the grouping thing can be helpfull...

        Can't help pressing F5 in the forum...

        1 Reply Last reply Reply Quote 1
        • ustkU
          ustk
          last edited by

          Here we go:
          (still not saved in preset though)

          HiseSnippet 1411.3ocwXE0aaaCDlJIJK1ctXEXXOy4mjAxbscx51ZvvbiSRg2ZSLp6BJPPPAsDkMajI8jnShWP.1Os8394r8KX6NJIK4FGiDuVTYCXQx66tu6NRdjtSnxkGEoBIVEd8jQbh0ma2chTOn0.lPRZuGw5qraKizLIH2dLMq6.VnP1mr6jQrnHtGwxZ0mixZUXMh44u+ocYAn7YcQHGqDt7WHFJzY81o4uHBBNf4wesXXNo2tYaWkrkJPMF30p10HiXtmw5yOjghshMwZ888DZUXWMSyiHVqsqxaR2ApKjwxerHRzKfiMpS5BJJt6CTAdHiwdIsFHB75j5+QDPKcxhFqFGM9R6WJ7DS6OKp7ElAnYHxGOrVYQzqdd5U6tSOqbzasX58H6ttghQ5rQPt8.Hio4g9LHEjmVwxRV4uV2tkBjPpqNjcF+fPnwTDNOoVsMoMpUqxNkJBhEoB3UcC3rPGrG7CjbhzzyYgTMj2B6HCn+HMUiLOuNLIOvob5fk2r1lFsk1Q0HHTfxGpBb7YAQ7ap4dZYDn0SRUaettkZ3HkDZ3Td2wZsRVubkMKUjdimEgowRfYqk.y1kqb5Ny5RRt94gpwi1cgtVeTj5fL2hQWrwMnaXPeZRLEMsoazlXmIg21dWB8bUYg2kke5Imdch3BYfPxo9iktZgRRUx9IjNMi4lZtMA2JXLuRohWUpXAgO0ItM1BoXpUy63UERO9kG4mokJ6Trv0kJh12WERc5QExYfTg1qZD5kFy2hEDzC1Nv4FDCmDkDbhck44LnBWrif3mwWnSUZ5aYSj0pQ3dWwqMtofXnVXhy8tEeednxdKNMUETwIFm8z6ol1W1G7+pdiGN5YQ+b2iNzIViaRK6A6kW8cQkmOvbdHKTG6h0i2S.G9F4qdKJOkKlmtPG+jYCdrElBIMe4To3UEKfAQjsuhy7.+OwmBTLOXmqgFuZFuo.78wOl11mpGvQlgD72FyiLSADQTkuex7U5WaX9IopOWj9Tbk0w3b.mJSmQm7Cn8WwAVSABGuSkBLU3EhH9Ta1ZW5EP0Mp5bXfPgNdj2EojYJoGGhfb5Eb5.14bJi5N.qaR0JJpcDPekxCl1xS.M2HdLKMIm7r718roXpaV7U7Z3mEjwys74PkleTRdo30Eou+P99ycrjre.tPYNCmrD51A5HGOrGOLccZpfPcvYKzZe6EZyeN.238NyInR1VJzGMhKusxujjMbgBwqmvJPTsoL7CSJCGu0OQ3g0fmtQNwP57mOhb2UPibJv1xf+N.tfcRExo1dcqzShcOf2HCNYIfu0+O3aOG3+Za7Ln3ggRRGPJZDOTKvru0d7ygSYFeznB16wiNC1elXswzBjPLL1rkRO3DdTEiUKZmtBfbYZndR5KmmNOxZURNk8YyprWv5knrMrMuWOVU9op5AvKZ9kZ73iGx0WnBOiZJy8ThO3NcE+dtoI0Zxg41r4X1MtSy5Ll1wJwzODz3EBO8foF3ONn4.tn+fbGH+GZFx7DJCkv0AMRXK918h.MlRf+g7gg.0IyIvuvY9WlYntMmjYiiaNKMZd76SCfX4owLqauGTnQNJPDeRnvV4n.U+IgBamiB+4UennvMuJDbgLk23.ld1aogWMMY.nhxLWGBuxiLRnmjWyeTt51cktOxtiP6NX97ck4vWXivO17M4hvkr222m6pyH6Z1G7lO925k7J0XsP1+kLcn.2Q4vwC6pFG5xAlHgMuwp9VqfUVhaWKcO6tbomow+BOICVGaakLX8zAICYtgp25FWZBup8Fld.NIM+iCEreI1lNsbpscsp0HCEdh255hghuA397wzXIvr0RfY6k.y2tDXdxRf46VBLe+Bwf+4KOarVMLdYBzQm8MmLvxZeIVyzLij7eoeKByC
          

          Untitled-4.gif

          Can't help pressing F5 in the forum...

          LindonL 1 Reply Last reply Reply Quote 4
          • LindonL
            Lindon @ustk
            last edited by

            @ustk oh thats quite cool...

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 0
            • N
              NotHereAnymore
              last edited by

              Well, that was an educational attempt at the usage of json files. But I can't help but wonder if there's a cleaner, more 'proper' way to do this. One less prone to bugs rising up from working on multiple projects.

              Maybe @Christoph-Hart can chime in before we go too far and start designing an even more convoluted solution...

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @NotHereAnymore
                last edited by

                @Trivalve There is no "Comms" protocol in HISE - or JUCE for that matter. So you would have to wrap your own. @Christoph-Hart could chime in but I'd be surprised if this request was close to the top of the scheduled enhancements - given we have a fairly big list of stuff we all want - and this is very niche and seems to have a (partial at least) solution outlined above....

                HISE Development for hire.
                www.channelrobot.com

                N 1 Reply Last reply Reply Quote 1
                • N
                  NotHereAnymore @Lindon
                  last edited by

                  @Lindon As interesting as it is, that solution would be hard to work into anything more than a personal use plugin, unless there's a way to detect if plugins are loaded in different project files in order to create 'channels' as lined out in the above experiment. Maybe I should check some JUCE forums to try and see what other people might be trying.

                  ustkU 1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @NotHereAnymore
                    last edited by ustk

                    @Trivalve Found that:
                    https://forum.juce.com/t/communication-between-plug-in-instances-multi-input-fx/17315/3

                    Can't help pressing F5 in the forum...

                    1 Reply Last reply Reply Quote 1
                    • Christoph HartC
                      Christoph Hart
                      last edited by

                      I wouldn't try to use the JSON file approach in a real project, seems way too hacky.

                      The problem with interprocess communication is memory management and since there is no one single solution it usually requires getting your hands dirty in C++ (or even C) with the specs you had in mind.

                      N 1 Reply Last reply Reply Quote 0
                      • N
                        NotHereAnymore @Christoph Hart
                        last edited by

                        @Christoph-Hart My thoughts exactly, it just seemed pretty hacky. I wouldn't know where to even begin on adding C++ code to a HISE project, I'm honestly very new to working with open-source software of any kind, but that seems to be the solution - JUCE's SharedResourcePointer thingamajig. I've worked with code before, including C++ (not that I remember much of it because it's been so long), so I'm confident I could learn, but I haven't got the foggiest clue where to start. Or even where the C++ would get put, I don't know if HISE itself has support for C++ or if I'd need to do that within JUCE.

                        I noticed that when all instances of the plugin are closed the memory shared is deleted - but is there a way to do that when a single instance is closed? Just deleting the data that plugin was contributing? I assume there is, but I've not worked with JUCE before at all aside from a brief attempt.

                        1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart
                          last edited by

                          Yes I am already using the SharedResourcePointer class in a few things - it's used to share image resources and other stuff across plugin instances.

                          However this is just a tool for sharing data and to setup a communication between instances with callbacks and complex data transfers is way more complex (especially if it needs to be a wrapper for HiseScript). Also there are hosts who run each plugin instance in a different process (AFAIK Bitwig does this), so you'll run into many troubles even if you get it working on your system.

                          I would strongly suggest to stay away from trying to implement this feature unless it is the core feature of your plugin (like it is with MIR).

                          If you really need is, go C++, use HISE as C++ framework and build your inter-plugin communcation system from the ground up.

                          N 1 Reply Last reply Reply Quote 1
                          • N
                            NotHereAnymore @Christoph Hart
                            last edited by

                            @Christoph-Hart Well, suppose it's time to start another attempt to learn JUCE. Thanks for all the info; I wasn't even aware that documentation existed!

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

                            21

                            Online

                            1.7k

                            Users

                            11.8k

                            Topics

                            102.7k

                            Posts