• 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

Navigation

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

    OSC listener not responding to almost simultaneous messages

    Interfacing
    5
    7
    2011
    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.
    • K
      kappuz last edited by

      Hi all,

      I am receiving OSC messages with Isadora, messages are generated via a hardware I made with a PIC32 microcontroller, so they are accurate and precise. I am monitoring packets using Wireshark in the Apple computer which have Isadora, and packets are arriving fine. 
      The problem arises when two packets are received one after another, I connected the OSC listener to a particle system to trigger new particles, so when I receive two messages very fast, sometimes the particle system just triggers one particle, like if messages were lost. 
      I re-checked the hardware, and the receiver with Wireshark and packets are arriving fine. ¿any suggestions? ¿buffer sizes, etc?
      I am using Isadora Core 2.
      Thank you very much for your great software.
      1 Reply Last reply Reply Quote 0
      • bonemap
        bonemap Izzy Guru last edited by

        It sounds amazing! I am not familiar with the PIC32, but have been putting together an Isadora project using OSC generated by iPod accelerometer to interact with 3D particles, 3D Player and Virtual Stage node actors. The OSC data stream for X,Y, Z accelerometer arrives at a channel as (0.982, -0.2491, -0.0642). For example, channel 1 is assigned in the communications drop down panel, however it requires an individual OSC Listener actor for each of the X, Y and Z streams - being assigned channel 1,2 and 3 respectively in separate OSC Listener actors. I have not had any issues of dropped OSC streams using this method to interact with the 3D actor nodes. Perhaps you are already aware of this and your issue is something else entirely. Good luck with your project.

        http://bonemap.com | Australia
        Izzy STD 4.2 | USB 3.6 | + Beta
        MBP 16” 2019 2.4 GHz Intel i9 64GB AMD Radeon Pro 5500 8 GB 4TB SSD | 14.5 Sonoma
        Mac Studio 2023 M2 Ultra 128GB | OSX 15.3 Sequoia
        A range of deployable older Macs

        1 Reply Last reply Reply Quote 0
        • jhoepffner
          jhoepffner last edited by

          @kappuz

          If you want a fast communication via OSC, use bundles instead of simple OSC message.
          From Isadora you must use OSC Multi transmit actor, I dont know how to do it with PIC32.
          Bundles are OSC messages including sequential values (integer, float, text). If you read the reception of OSC message in Show Monitor, you can see that the value is a little part of a very verbose UDP message. So, grouping message to reduce bandwidth is a good method.
          Have you tried to analyse reception with Show Monitor?
          Jacques

          Jacques Hoepffner http://hoepffner.info
          GigaByte 550b / Ryzen 7 3800X / Ram 64 Go / RTX 3090 24 Go / SSD 2 To / raid0 32 To
          MBP 13' i5 2.6 Ghz 16 Go / Intel Iris / macOs 10.11.6 / izzy 2.6.1 + 3.0.3b2
          MBP 15' i7 2.6 Ghz 16 Go / GTX 650M 1Go/ MacOs10.13.3 / Izzy 2.6.1
          MSI GS65 i7 3.6 Ghz 32 Go / GTX 1070 8 Go / Windows 10 / Izzy 3.0.3b2

          1 Reply Last reply Reply Quote 0
          • K
            kappuz last edited by

            Hi, I have just checked in the input Monitor of Isadora. I am sending three messages from the microcontroller to Isadora, Three messages arrive and almost every time I see three particles flying in space. But sometimes, I only see two, I checked the case and the monitor receives three messages and just triggers two particles from time to time.

            I can not bundle messages because my microcontroller is translating midi notes to OSC messages, so if I play a chord, every note is one message and should be sent inmediatly, I am sending an integer to /midi/2/noteon/. Which corresponds to MIDI channel No. 2, so the integer value is the note byte of the MIDI protocol. If I bundle, I think I will have the same problem, how to trigger the particle system to send two particles almost at the same time.
            So, if the monitor is receiving three messages, and the OSC listener is sending only two triggers, where is the problem? in the speed of the input of the particle system? or in the speed of the output of the listener?.
            Thank you for your quick response.
            1 Reply Last reply Reply Quote 0
            • Fred
              Fred last edited by

              Can you test the receiving without the particles? I would guess that the processing of the particles takes longer than the gap between the messages, they may well be coming in, but Isadora is busy drawing the frame reacting to message A when the message B comes and then C arrives in time to control the next frame. This would appear that message B is lost.

              Maybe a simple patch that just adds a number when a new message arrives. 
              If you can get all these messages you may be able to alter your target framerate to try and catch the messages in time, or create some kind of buffer to store the messages. 
              At any rate frames will be prepared and then drawn by Isadora at the framerate you set. Lets say this is 25 fps, which means 40ms for a frame. In music 40ms is a long time, at some point you will have to decide how to quantise or ignore messages that arrive more regularly than the frame interval.

              http://www.fredrodrigues.net/
              https://github.com/fred-dev
              OSX 13.6.4 (22G513) MBP 2019 16" 2.3 GHz 8-Core i9, Radeon Pro 5500M 8 GB, 32g RAM
              Windows 10 7700K, GTX 1080ti, 32g RAM, 2tb raided SSD

              1 Reply Last reply Reply Quote 0
              • DusX
                DusX Tech Staff last edited by

                @kappuz
                I don't know how exactly you have your messages formatted, but I think it they are moving fast enough, and use the same addresses, it is possible for a set of messages to be missed, if another come in before the last was used.

                To speed up Isadora's processing of messages, you can increase the Cycle rate in the preferences.
                This is how many times per frame the data/messages are processed. This may help eliminate the possibility of a triggerable value being overwritten by a non-triggerable value.
                Again, I don't know if this will apply since I don't know how your messages/values are structured.. but it seems like a good place to start.

                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.

                1 Reply Last reply Reply Quote 0
                • K
                  kappuz last edited by

                  Thanks @DusX, It is a very simple OSC message: /something/ with an integer as paramter. That is.

                  I will try to increase the Cycle rate, sounds reasonable. Greetings :)
                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post