Welcome! If this is your first visit, you will need to register to participate.

DO NOT use symbols in usernames. Doing so will result in an inability to sign in & post!

If you cannot sign in or post, please visit our Forum FAQs section for answers to forum related FAQs.


No announcement yet.

MIDI over IP?

  • Time
  • Show
Clear All
new posts

  • MIDI over IP?

    Is this possible? My friend across the pond and I would like to be able to have identical VSTi setups and play to each other through use of some sort of MIDI controller emulator that works over the tubes. Is this possible? I've seen MIDI over ethernet programmes but I'd rather not have to jump through hoops with a virtual network to send MIDI to him. Thanks in advance for any tips!

  • #2
    Hi Alastair,

    Now you've made me think.......?!?!?!?!?!

    - so you would have the VOIP session in place between your 2 remote PCs at an acceptable full duplex network speed with both PCs configured to share files, so there you have a daisy chain set up.....
    - you would be triggering from your module (MIDI ID #n) to your PC via a "MIDI to USB" or "MIDI direct I/O" connection;
    - your friend at the other end would have a similar setup (using MIDI #n+1) for his module;
    - you would each be running an application on your PCs with both of the MIDI modules defined in each PC (ProTools might do this)
    - you may need to run some other app to communicate MIDI over IP "protocol" if it doesn't just encapsulate it
    - you'd probably want to set them up as a domain......

    How much money do you want to spend?
    - how about an active/active cluster between your PCs over VOIP
    - you may need an extra VOIP session to run the heartbeat then......

    SuperPuss - are you reading this one? We were talking about linked virtual studios in the past......

    I used to think music was fun - now we've added computers and it has become work!


    • #3
      I haven't seen anything that works the way you want it too. Mostly because of lag issues. The best protocol would be UDP, which has reliability issues outside of a LAN.

      I could write a simple program that connects via TCP sockets and transmits the incoming MIDI signals on one end to MIDI signals on the other. But there are a few issues.

      The receiver must have a static IP address and be able to accept sockets.
      The receiver must have a MIDI port emulator like ReWire.
      And this will be in no way real-time.

      Problems to be resolved:
      Relative time-stamps to ensure MIDI playback is synched.
      MIDI port emulation.
      UDP reliability.

      This also seems like it would be best served by an intermediate server that is coordinating between two remote machines.

      Big project.


      • #4
        But it's certainly an interesting concept! I'd think getting real-time playability would be difficult. But there's plenty of real-time gaming as examples to refute that.


        • #5
          Isn't this basically what http://www.digitalmusician.net and http://www.ejamming.com do?



          • #6
            RTP provides reliability for UDP. Not in a TCP way but it does provide sequencing for UDP in VOIP depolyments.

            It is covered in RFC-1889


            • #7
              Originally posted by BarT
              Isn't this basically what http://www.digitalmusician.net and http://www.ejamming.com do?

              Good links. I had never heard of them. I would love to know what the synchronization techniques are that they use.

              csnow, doesn't RTP dispense with round trip confirmation to increase speed? Unlike TCP which plods along.


              • #8
                With TCP, you have a nailed up connection and the application can speak directly to each other. Therefore, there is a protocol-defined flow/congestion control with TCP. The problem is that it is too slow for low latency traffic types such as voip and video.

                With UDP, the sender simply forwards it and hopes it gets there. RTP provides timestamp and control mechanisms for synchronizing streams with timing properties. Basically, it is a helper protocol for data using UDP.
                Last edited by csnow; 08-08-08, 06:09 AM.


                • #9
                  Could get a whole band playing with a multicast network .


                  • #10
                    You've all delved head-first into my issue hehe.

                    I should've specified: I'm not aiming for real-time (or close to) play-back - I just want to be abel to hit the drums and have my friend hear it instead of having to have me record it and then send a midi file which he'd have to load up each time.


                    • #11
                      What about something like this? usb@nywhere If you're using a midi-usb that is.......


                      • #12
                        Originally posted by ige87
                        What about something like this? usb@nywhere If you're using a midi-usb that is.......
                        I'm not but I could pass it through my keyboard. I'll give this a try - thanks! I once tried something similar except it was LAN only and didn't want to work over a VPN. This could well.


                        • #13
                          Originally posted by BarT
                          Isn't this basically what http://www.digitalmusician.net and http://www.ejamming.com do?

                          yea ejamming works with MIDI however I found all of those online sites to lag too much and so everything is off when it comes to timing.
                          Sonic Orb Studios
                          My Youtube

                          My kit is custom running 10, 12, 14" toms, a 12" snare, 2 crash, 1 ride, 1 splash, and dual kick drum all plugged into a
                          Roland TD-6V module which runs MIDI to Superior Drummer 2


                          • #14
                            Good luck, Alastair!


                            • #15
                              Check out http://www.dnrtv.com/default.aspx?showNum=110 for an example of a piano being played using MIDI over a network.

                              Hope this helps.