Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 8 of 8

Thread: MIDI functionality on windows is MUCH worse than on OSX

  1. #1

    MIDI functionality on windows is MUCH worse than on OSX

    Hello all,

    This has nothing to do with a problem with teensy, but I was wondering if anybody had any insights regardless. I am making a project that will be running a lot of LED's being controlled by MIDI using a Teensy as the brain for it all. I was doing some stress testing on it, and on OSX it runs flawlessly. I run the exact same code, and exact same MIDI files, and it runs like garbage. It just can't keep up.

    I'm wondering if there are any solutions to this, because it would save me multiple thousands of dollars on buying a new macbook pro if I could get windows to run it just as well. Is there some kind of alternative MIDI engine? Maybe the internal MIDI engine of windows has nothing to do with it. Does anybody have any insight?

  2. #2
    Senior Member
    Join Date
    Apr 2017
    Posts
    115
    We can agree that Windows MIDI drivers suck, but there is only one of two possibilities of why I would think it’s running like garbage. Either the program you are using to send the MIDI data is having a problem or you are hitting the MIDI baudrate limit, I can only assume that you mean it runs slow when you say like garbage.

  3. #3
    Senior Member+ Theremingenieur's Avatar
    Join Date
    Feb 2014
    Location
    Colmar, France
    Posts
    2,059
    The only true solution is dropping Windows when you are seriously into multimedia and music.

  4. #4
    Quote Originally Posted by vjmuzik View Post
    We can agree that Windows MIDI drivers suck, but there is only one of two possibilities of why I would think it’s running like garbage. Either the program you are using to send the MIDI data is having a problem or you are hitting the MIDI baudrate limit, I can only assume that you mean it runs slow when you say like garbage.
    I'm not describing it properly, but for example, I have a "stress test" that I run a LOT of lights at once (Like a few hundred messages including R,G,and B data) all rapidly changing. It's running in Ableton Live which is professional music software, and if I run the session on OSX it runs PERFECT. All the lights light up just the way they should, and synchronize with music. If I run the exact same ableton live session on windows 10, all of a sudden the lights can't keep up, everything turns white/yellow because the lights of different intensities are all mixing up as it struggles to keep up, so I hit "stop" on ableton, and the lights just keep on going because it hadn't displayed all the colors yet, so it has to "catch up"

    Quote Originally Posted by Theremingenieur View Post
    The only true solution is dropping Windows when you are seriously into multimedia and music.

    I'm afraid you are correct, and am desperately trying to save myself the 3,000$ as I have actually ALREADY spent 3,000$ on a wonderful macbook pro that has a VERY strange problem. It constantly crashes unless I'm plugged into an external monitor. On this macbook pro, I do not run into this problem on bootcamp in windows, so I've essentially switched to windows despite owning a mac, and prefferring OSX strongly. It's just not reliable. It's about 800$ to fix on a "maybe this will fix it" if they replace the motherboard. I figured I'd rather just put the 800$ towards a new laptop, or maybe I can make windows work for what I want.

  5. #5
    Senior Member
    Join Date
    Apr 2017
    Posts
    115
    Quote Originally Posted by sargentpilcher View Post
    I'm not describing it properly, but for example, I have a "stress test" that I run a LOT of lights at once (Like a few hundred messages including R,G,and B data) all rapidly changing. It's running in Ableton Live which is professional music software, and if I run the session on OSX it runs PERFECT. All the lights light up just the way they should, and synchronize with music. If I run the exact same ableton live session on windows 10, all of a sudden the lights can't keep up, everything turns white/yellow because the lights of different intensities are all mixing up as it struggles to keep up, so I hit "stop" on ableton, and the lights just keep on going because it hadn't displayed all the colors yet, so it has to "catch up"




    I'm afraid you are correct, and am desperately trying to save myself the 3,000$ as I have actually ALREADY spent 3,000$ on a wonderful macbook pro that has a VERY strange problem. It constantly crashes unless I'm plugged into an external monitor. On this macbook pro, I do not run into this problem on bootcamp in windows, so I've essentially switched to windows despite owning a mac, and prefferring OSX strongly. It's just not reliable. It's about 800$ to fix on a "maybe this will fix it" if they replace the motherboard. I figured I'd rather just put the 800$ towards a new laptop, or maybe I can make windows work for what I want.
    Yeah that sounds like the Windows MIDI driver is still using the regular transfer rate for MIDI so your stress test is likely overloading the driver. If you are in the area you can try taking your MacBook to Rossmann Repair Group or send it in(https://www.rossmanngroup.com), nowadays I wouldn’t trust the Apple “Geniuses” for repairs unless it’s for iOS devices.

  6. #6
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,658
    Quote Originally Posted by sargentpilcher View Post
    because it would save me multiple thousands of dollars on buying a new macbook pro if I could get windows to run it just as well.
    Maybe give Linux a try?

  7. #7
    Senior Member+ Theremingenieur's Avatar
    Join Date
    Feb 2014
    Location
    Colmar, France
    Posts
    2,059
    Quote Originally Posted by sargentpilcher View Post
    I'm afraid you are correct, and am desperately trying to save myself the 3,000$ as I have actually ALREADY spent 3,000$ on a wonderful macbook pro that has a VERY strange problem. It constantly crashes unless I'm plugged into an external monitor. On this macbook pro, I do not run into this problem on bootcamp in windows, so I've essentially switched to windows despite owning a mac, and prefferring OSX strongly. It's just not reliable. It's about 800$ to fix on a "maybe this will fix it" if they replace the motherboard. I figured I'd rather just put the 800$ towards a new laptop, or maybe I can make windows work for what I want.
    Your MacBook Pro has 2 GPUs (Graphic processors). It seems that the primary one which deserves mainly the internal display under OSX has either temperature problems or is (partly) desoldered from the main board (which happens occasionally for thermal reasons). In Bootcamp mode with Windows, there is always the secondary GPU activated (for performance reasons, but at the expense of less autonomy on battery), that's why you won't see then problem there. $800 for a new main board is a lot of money, but it will for sure solve the problem. But there are other (non Apple certified or related) companies which offer to rework the main board (by infrared-resoldering) which would also fix your problem for around $200. I think that it's worth it.

  8. #8
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,658
    I wonder if Windows is sending 1 MIDI message per USB packet?

    Years ago, I create a benchmark to test how well Teensy could receive LED data. For programs that write data in large blocks, all operating systems achieved nearly the full 1 Mbyte/sec speed (at least with Teensy 3.0... other boards back then had poor quality USB code).

    https://www.pjrc.com/teensy/benchmar...l_receive.html

    But when the software would send small messages, only Macintosh performed well. Turns out Apple's drivers are able to detect when many small messages are queued and it efficiently packs them into larger packets. Teensy also does this for sending to your computer. But Windows and Linux do not (or did not years ago when these tests were run). If a program wrote many small messages, each would be sent to Teensy in a single USB packet. Of course, Linux was very efficient in handling the packets, so the slowness on Linux was only due to the considerable overhead for each packet. Windows was much less efficient.

    However, Windows did perform very well when the software would transmit data in large blocks.

    I don't know if this is the same problem you're seeing, or if there's anything that can be done if using MIDI protocol and DAW software where you have no real control over how it's implemented.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •