MIDI functionality on windows is MUCH worse than on OSX

Status
Not open for further replies.

sargentpilcher

Well-known member
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?
 
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.
 
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"

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.
 
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.
 
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.
 
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/benchmark_usb_serial_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.
 
Maybe give Linux a try?

I have nothing against Linux, but sadly none of the software I want to run is compatible with Linux. Such as Ableton Live, and the VST's like Zynaptiq Morph, Antares Auto-Tune, and Izotope VocalSynth. Bitwig works in Linux, but none of the plugins would work.

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.

Hmm VERY interesting. You've actually made me feel like there's a solution to the problem. I took this thing into the apple store and they said they couldn't find anything wrong with it, so it left me very discouraged about the situation. I would GLADLY pay 800$ and save myself the thousands for a new laptop, but I am skeptical and would like some sort of gaurantee from Apple, that is I pay 800$ and if that doesn't solve the problem then I don't pay, but I don't know if that's something they do. How confident are you that that is the problem? You are correct that I have 2 GPU's, but I was under the impression that the first GPU was built into the CPU, that is on the same chip as the i7. Am I incorrect? When they replace the motherboard do they also replace the CPU? Or do they take my CPU and put it into the new motherboard?

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/benchmark_usb_serial_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.

I think that is EXACTLY the problem I'm having. You just laid out exactly why. OSX is just built so much better for what I'm trying to do, so I HAVE to have OSX. Now it's just a matter on if I want to get a new macbook pro or try and fix the one I have now.






Thank you all so much for your help and insights! I've spent many hours googling, but didn't come up with the answers and knowledge you have brought me! Thank you!!!
 
Status
Not open for further replies.
Back
Top