HISE Logo Forum
    • Categories
    • Register
    • Login

    OSC has arrived.

    Scheduled Pinned Locked Moved General Questions
    15 Posts 5 Posters 961 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.
    • Christoph HartC
      Christoph Hart
      last edited by

      I'm working on a project at the moment that requires OSC support so I figured it was time to add proper OSC support to HISE. With the latest commit you get:

      • send / receive OSC messages using scripting callbacks
      • automatically pipe OSC messages in and out of global cables to access them within scriptnode.
      • OSC logger floating tile for debugging OSC input.

      The entire OSC management is done by the GlobalRoutingManager object which also contains the documentation of every aspect:

      Link Preview Image
      HISE | Docs

      favicon

      (docs.hise.audio)

      I'm pretty new to OSC but it definitely increases the fun with playing around in scriptnode when you can use the compass of your iPhone as modulation input...

      I tried to stick as closely to the standard as possible, but let me know if there is an issue with any OSC source (also you will need to resave all HISE projucer files because it includes a new JUCE module that wasn't included before).

      ulrikU Casey KolbC 2 Replies Last reply Reply Quote 5
      • ulrikU
        ulrik @Christoph Hart
        last edited by

        @Christoph-Hart exciting I think, but I have no idea what it is :)

        Hise Develop branch
        MacOs 15.3.1, Xcode 16.2
        http://musikboden.se

        Dan KorneffD 1 Reply Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff @ulrik
          last edited by

          @ulrik https://en.wikipedia.org/wiki/Open_Sound_Control

          Dan Korneff - Producer / Mixer / Audio Nerd

          ulrikU 1 Reply Last reply Reply Quote 1
          • ulrikU
            ulrik @Dan Korneff
            last edited by

            @Dan-Korneff Thanks! 👍

            Hise Develop branch
            MacOs 15.3.1, Xcode 16.2
            http://musikboden.se

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

              Excellent! @Lindon Add this to your VI-Control post ;)

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

              1 Reply Last reply Reply Quote 0
              • Casey KolbC
                Casey Kolb @Christoph Hart
                last edited by

                @Christoph-Hart Very cool! Looks like it may have broken compilation? I'll revert the commit for now

                Screen Shot 2022-09-12 at 2.49.22 PM.png

                Casey Kolb
                Founder & CEO of Lunacy Audio
                Composer | Producer | Software Developer

                d.healeyD Christoph HartC 2 Replies Last reply Reply Quote 0
                • d.healeyD
                  d.healey @Casey Kolb
                  last edited by

                  @Casey-Kolb Use xcode 13.1

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

                  Casey KolbC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @Casey Kolb
                    last edited by

                    @Casey-Kolb Make sure you resave the HISE projucer project so that it adds the new module. This looks like a linker error because it can't find the new juce_osc.cpp file.

                    1 Reply Last reply Reply Quote 1
                    • Casey KolbC
                      Casey Kolb @d.healey
                      last edited by

                      @d-healey yup already doing that

                      Casey Kolb
                      Founder & CEO of Lunacy Audio
                      Composer | Producer | Software Developer

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

                        This looks like a linker error because it can't find the new juce_osc.cpp file.

                        Definitely this, I checked without resaving and it gives me the same linker errors. Resave and open in Xcode then build again.

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

                          Can OSC be used to communicate between plugin instances?

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

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

                            Let me check...

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

                              So you can send OSC messages between two HISE instances, so I guess it should work between plugins too.

                              HISE 1:

                              const var rm = Engine.getGlobalRoutingManager();
                              
                              rm.connectToOSC({
                              	"SourcePort": 6666,
                              	"TargetPort": 6667,
                              	"Domain": "/interhise"
                              }, 0);
                              
                              rm.sendOSCMessage("/funky", "Hallo");
                              
                              rm.addOSCCallback("/funky", function(id, value)
                              {
                              	Console.print(value);	
                              });
                              

                              HISE 2:

                              const var rm = Engine.getGlobalRoutingManager();
                              
                              rm.connectToOSC({
                              	"SourcePort": 6667, // Note how the source port and target port are
                              	"TargetPort": 6666, // reversed here to allow bidirectional communication
                              	"Domain": "/interhise"
                              }, 0);
                              
                              // Compile the other script and it will show up here
                              rm.addOSCCallback("/funky", function(id, value)
                              {
                              	Console.print(value);
                              	
                              	rm.sendOSCMessage("/funky", "Back at you");
                              });
                              
                              d.healeyD 1 Reply Last reply Reply Quote 5
                              • d.healeyD
                                d.healey @Christoph Hart
                                last edited by

                                @Christoph-Hart Ooo this opens up a lot of possibilities. I'm thinking of a real-time divisi system :)

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

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

                                  Yes now that you mention it, it definitely improves the interprocess abilities. Not sure what happens if you use the same port for input / output, but if you're brave you can find it out yourself.

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

                                  52

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  101.8k

                                  Posts