HISE Logo Forum
    • Categories
    • Register
    • Login

    API for Interprocess communications

    Scheduled Pinned Locked Moved Feature Requests
    13 Posts 3 Posters 1.4k 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.
    • LevitanusL
      Levitanus
      last edited by

      I asked ones about it, but repeat: Can You add JS API for module interprocess communication (JUCE Core)?
      If I understand right, the personal plugin pipe can be initialized and be accessed by other instances of the plugin (like some VST3 fx are made. for example SD Virtual Mix Rack).
      I'm looking for something like this (or Reaper JSFX shared memory) for a long time. Till now with Kontakt I used to make something like midi-triggered synchronizing from the external file.

      1 Reply Last reply Reply Quote 0
      • LevitanusL
        Levitanus
        last edited by

        or, maybe, something like TCP sockets, don't know))

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

          Do you need a real interprocess connection or do you just want two instances of the same plugin loaded in the same host talk with each other?

          LevitanusL 1 Reply Last reply Reply Quote 1
          • LevitanusL
            Levitanus @Christoph Hart
            last edited by Levitanus

            @christoph-hart said in API for Interprocess communications:

            two instances of the same plugin loaded in the same host talk with each other

            something similar
            0_1542921514324_interprocess.gif

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

              In this case a simple static object that is shared among all plugin instances should do the trick. What data type you need and has it to be real time safe?

              d.healeyD LevitanusL 2 Replies Last reply Reply Quote 1
              • d.healeyD
                d.healey @Christoph Hart
                last edited by

                @christoph-hart Oh this could be really useful for creating divisi setups if each instance can know the current settings of the other instances :D

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                LevitanusL 1 Reply Last reply Reply Quote 1
                • LevitanusL
                  Levitanus @d.healey
                  last edited by Levitanus

                  @d-healey said in API for Interprocess communications:

                  divisi setups if each instance can know the current settings of the other instances

                  I'm implementing divisi inside instance yet and would ask for not realtime-safe objects just for synchronising preferences of the library. But the idea is so sweet...

                  @christoph-hart said in API for Interprocess communications:

                  What data type you need and has it to be real time safe?

                  There're pros as for int array as well as for float array. Int as flags holder and float as knobs holder

                  P.S. Reaper, for example, has float array of size ~100000, shared between all JSFX. So, JSFX developer choosing offset and using some of this array. scary, but still works))

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

                    Yeah thats weird. You will most likely get a Javascript var that you can fill with any data type. Do you need a callback when sending values or is polling enough?

                    And David what do you need for divisi?

                    d.healeyD 1 Reply Last reply Reply Quote 1
                    • LevitanusL
                      Levitanus @Christoph Hart
                      last edited by

                      @christoph-hart said in API for Interprocess communications:

                      And David what do you need for divisi?

                      I think, within

                      @christoph-hart said in API for Interprocess communications:

                      Javascript var that you can fill with any data type

                      we would have everything needed for divisi))

                      @christoph-hart said in API for Interprocess communications:

                      Do you need a callback when sending values or is polling enough?

                      I think a simple timer will handle that. Of course, I'll find the use-case for some sort of on_shared_changed, but it is not necessary.

                      1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @Christoph Hart
                        last edited by

                        @christoph-hart Not sure yet, it was just a fleeting thought. I remember LASS had a setup where you could load each divisi section up as a different patch but you had to check all the settings for each one to make sure they were correct. If the instances could talk to each other then all the setup could be automated - non-realtime stuff.

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        LevitanusL 1 Reply Last reply Reply Quote 0
                        • LevitanusL
                          Levitanus @d.healey
                          last edited by

                          @d-healey said in API for Interprocess communications:

                          LASS had a setup where you could load each divisi section up as a different patch but you had to check all the settings for each one to make sure they were correct.

                          as I remember there was a weird logic, that translates all midi data to every instrument, and inside it choose its part. But even if it was inside multiscript, still it was realtime midi-processor. There is no way to split parts in different plugins not connected to the shared midi-data.

                          d.healeyD 1 Reply Last reply Reply Quote 1
                          • d.healeyD
                            d.healey @Levitanus
                            last edited by

                            @levitanus Yes I think you're right. It's been a long time since I used LASS

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

                            1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey
                              last edited by

                              I thought of another use case for this. If I load in multiple instances of my plugin and I want to purge a mic position in all instances I have to go to each instance individually and click the purge button. If I could link all the instances together and just set the purge state on one it would be much faster.

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

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

                              18

                              Online

                              1.7k

                              Users

                              11.8k

                              Topics

                              102.4k

                              Posts