Windows 8.1: USB MIDI Device Works on USB 2.0 Port, Doesn’t Work on USB 3.0 Port


Last update: September 2nd 2014

Note: A fix for this issue is included in August 2014 update rollup. Please apply the update using this link http://support.microsoft.com/kb/2975719.  After the fix is applied, the timestamp on c:\windows\system32\drivers\usbhub3.sys should be 7/24/2014 or later.

Some USB MIDI devices have been found to not function correctly when plugged into a USB 3.0 port on Windows 8.1, but will work fine on USB 2.0 ports and also work fine on all USB ports on Windows 8.0.

The issue is that on Windows 8.1 the USB 3.0 hub driver will allow a request for a MS OS feature descriptor to be forwarded to a USB 1.1 device, whereas on Windows 8.0 it would not. A small subset of USB devices do not handle these requests correctly, and will end up getting confused after they receive such a request. Microsoft is currently investigating a fix for this issue.

It is possible that some non-MIDI devices are affected by this problem, but none are known so far.

How to Verify Your Device Is Affected By This Issue

Install Message Analyzer, which can be found here:

http://www.microsoft.com/en-us/download/details.aspx?id=40308

1. One-time step: After installing Message Analyzer, log out and then log back in to enable its tracing capabilities.

2. Start Message Analyzer.

3. Go to the File -> Capture / Trace page.

clip_image002

4. Scroll down and select USB 3.

5. Unplug the device you are troubleshooting (if it’s plugged in).

6. Click Start.

7. Plug in the device.

8. Wait for the device to appear in Windows.

9. Click Stop.

clip_image004

10. Add column UsbDevice (Home -> View Options -> Column Chooser, search for “UsbDevice” and double-click it).

clip_image006

11. Right-click the UsbDevice column and select Group.

12. Paste in the following filter to the Filter location in the ribbon (still in the Home tab). Click Apply Filter.

(*GetDeviceDescriptor.DeviceDescriptor.bcdUSB >= 0x0100 &&

*GetDeviceDescriptor.DeviceDescriptor.bcdUSB < 0x0200)

OR

(*SetupPacket.bmRequestType== 0xc0 &&

*SetupPacket.bRequest == 0 &&

*SetupPacket.wValue == 0 &&

*SetupPacket.wIndex == 4 &&

*SetupPacket.wLength == 16)

clip_image008

13. Does a “Get Full Device Descriptor” and “Control In Transfer” show up under the same device?

If yes—you can apply this fix so that the “Control In Transfer” is no longer sent to the device, as it wasn’t in Windows 8.

If no—STOP. This fix does not apply.

14. Select a Get Full Device Descriptor event that is grouped with the Control In Transfer event.

15. In the Details pane, expand DeviceDescriptor.

clip_image010

16. Note down the hexadecimal values for idVendor, idProduct, and bcdDevice in order to construct the registry key location. In this example, idVendor=0x15CA, idProduct=0x0101, 0xF110. (Be sure you use the values with “0x” in front of them; the other number is in decimal and won’t work.)

Workaround Using the “osvc” Registry Override

There is a registry override that will prevent the MS OS feature descriptor request from being forwarded to the device, which is accomplished by setting the “osvc” registry value for the device to “00 00”. The “usbflags” registry key for a device is located under HKLM\System\CurrentControlSet\Control\usbflags, and is a concatenation of the idVendor, idProduct, and bcdDevice that are noted in step 16. For this example the key would be HKLM\System\CurrentControlSet\Control\usbflags\15CA0101F110.

clip_image012

Once the “osvc” registry value has been set, unplug and plug the device to see if the issue is resolved.

More information on the “osvc” registry value can be found here:

http://msdn.microsoft.com/en-us/library/windows/hardware/jj649944(v=vs.85).aspx

Known Devices

The following MIDI devices have been reported to have this problem:

· TEXTECH INTERNATIONAL LTD MIDI Device (USB\VID_15CA&PID_0101&REV_F110 )

· Medeli e-Drum (USB\VID_0A67&PID_1011&REV_0122)


Comments (23)

  1. Olle Sjöström says:

    When I try this, and following your steps thoroughly, it gives me nothing. No output whatsoever. I tried various USB devices.. I followed your steps exactly, even running the program as administrator. No output no how…

  2. USB Blog says:

    @Olle: If no events show up when you start a USB3 trace, even after waiting a minute, it probably means your system doesn't have a USB3 controller. Is there an eXtensible Host Controller listed under Universal Serial Bus controllers in Device manager?

    What is the problem you're troubleshooting? ^p

  3. Jon says:

    This is not exactly the problem described. I have Windows 8, the device is successfully recognized in Device Manager as "USB2.0-MIDI" but does not appear in Control Panel|Sound|Playback tab. Any known issues with this?

  4. Patrick says:

    In step 13, the author says to STOP if the condition isn't met.  My condition was not met(did not have both Control and Device).  

    I added the Registry Key (did not exist) and now my usb midi is functioning properly.

    YAY.

    Thanks author!

  5. USB says:

    CHOETECH 10000mAh 5x USB Backup External Battery Pack Portable Power Pack Charger for most…

  6. Vaughn Bellwood says:

    I have a computer I just built with all modern hardware (Z87 chipset, 4th gen Core i7, etc) that dual boots between Windows 8.1 Pro 64-Bit and Windows 7 Ultimate 32-Bit.  My USB-to-MIDI connector that I use to connect to my Roland CM-32L (for DOSBox and ScummVM games) works fine in Windows 7 Ultimate 32-Bit, as it also work fine on my last computer running Windows 7 64-Bit and Windows XP.  However, in Windows 8.1 Pro 64-Bit the USB-to-MIDI controller shows output activity but the data never makes it to the CM-32L.  So yeah, Windows 8.1 Pro 64-Bit is for 100% sure borked when it comes to these devices.  And I'm using a USB 2.0 connection.

  7. Egi says:

    @Jon: Midi devices are not listed in the Control Panel | Sound | Playback tab. The device is listed in the Control Panel only if it has also audio (non-midi) capabilities.

  8. Egi says:

    @Vaughn: try suggested workaround anyway and see if it solves the problem.

  9. Vaughn Bellwood says:

    UPDATE:

    Okay, my MIDI to USB adapter now seems to working perfectly in Windows 8.1 Pro 64-Bit and as far as I know I changed absolutely nothing!  Perhaps you guys released an update that fixed the problem?  Weird …

    FYI, the Roland CM-32L module sends the processed MIDI data to the input jack on the Creative Labs Sound Blaster X-FI Titanium card I have in a PCIe expansion slot.  Like I said, it was working fine in Windows 7 32-Bit all along but not in Windows 8.1 Pro 64-Bit.  But it sure is working now.  Hopefully it stays fixed! 🙂

  10. Stephen O'Hair says:

    I have a midi to usb adapter that I connect my midi devices to. This no longer works and the osvc registry hack doesn't either. I had no issues in windows 8.1 this is fcuking horrendous. I now CAN'T use any of my midi controllers thanks to this update!

  11. Vaughn Bellwood says:

    And now, for no apparent reason, it's not working again.  Same problem as before.  I see the Out light flashing on the USB-to-MIDI adapter but the Roland CM-32L never receives the data.  Extremely frustrating; again, it works fine in Windows 7.

  12. Vaughn Bellwood says:

    And now it's working again.

    I had updated my Nvidia Video drivers but was careful to remove all the HD Audio related stuff.  I have no idea what's going on with this but I hope it gets resolved at some point.  It appears to be a Windows 8.1 problem.

  13. Vaughn Bellwood says:

    I figured it out!  It's restarting Windows 8.1 that creates the issue.  If you shutdown Windows 8.1 and power it back on everything works fine.  Windows 8.1 does something differently on restart than shutdown that must cause the USB-to-MIDI device to screw up it's connection when Windows 8.1 loads after the restart (you can hear the Windows chime letting you know hardware has been detected, but on shutdown/power on you won't hear the chime and everything works fine).

    Whew!  Glad I figured that out.  It took way to long, though.  This issue should be publicized by Microsoft!

  14. Vaughn Bellwood says:

    So, in conlusion, the USB-to-MIDI works after the new hybrid shutdown (Fast Startup) but not after a full shutdown or restart which fully reinitializes the OS.

  15. Ben says:

    I did everything and the device os still not working. Each time I plug the Xone 1d midi USB device Windows saya the USB device is not recognize. I only hace USB 3 ports and Windows 8.1

  16. mick says:

    I have a similar problem tho those described on this page using a Korg Microkey with Windows 8.1, whether plugged into 2.0 or 3.0 ports. I have installed the latest driver from Korg, I have tested cables and used different ports. The device worked perfectly on my previous OS.

    In Windows 8.1, the device is recognised and works perfectly, usually for a few minutes sometimes for a few seconds, until a Code 43 is raised and the device ceases to be recognised. In Devices and Printers, the device will appear and disappear (while the device remains plugged in) at regular intervals of about 20 seconds but does not work after the first de-recognition. This behaviour is identical whether on a 3.0 or 2.0 port.

    I have applied the test on this page using Microsoft Message Analyzer (No 'Control In Transfer' is shown) and that to determine a BOS descriptor issue (no text appears). I have tried the registry edit to no effect.

    Any suggestions please?

  17. Filip Skakun says:

    I have a similar problem with the Novation LaunchKey 49 (so I suppose LaunchKey mini, 25 and 61 would likely also have it). I might try the workaround or simply try to avoid using the USB 3 port for the MIDI controller. Also in my case I need to restart Ableton Live (9.2 Lite) every time I do that, but it seems to be generally a problem with Ableton as it doesn't handle headphones disconnecting/reconnecting well either and needs to be restarted to see them again as a working audio output.

  18. Crepitus42 says:

    I had the same trouble when plugging a Korg K61P ("K Series") MIDI keyboard controller on a Mac Pro running Windows 8.1, which has only USB3 ports. This fix works but I had to use another computer to find the VID/PID/REV ID. The message analyzer refused to capture events and showed some cryptic error.

  19. Eduardo M. says:

    so, I should create a reg_binary "osvc" and set values to 0000?

  20. Vincent says:

    Hi, the filters you set return nothing for me, but I did find both commands (Get Full Device Descriptor & Control In Transfer) for my device. I found the ID of the device (in my case 0644800E0100, which seems to be common, I read another poster on another forum who had the same number). When I went into the registry key, it was already set to 00 00 🙁 What can I do?

  21. Vincent says:

    Please let me know if I can do some more tests – right now, I have no MIDI keyboard 🙁

  22. Vincent says:

    I installed the patches, to no avail. How can I test if my Windows machine properly communicates with my MIDI controller through my audio interface via USB?

  23. Dave Stevens says:

    Is there any way to set the MIDI output of the  PC to go to my USB to MIDI cable in Windows 8.1  I have a 3rd party program that shows me that I have the cable attached but the app appears not to be able to set the USB to MIDI cable as the output device when I use my old VB6 program to play a MIDI file.  The MIDI file plays thru the PC speakers.  I will say that the USB to MIDI cable works fine in apps that have the capability to select the MIDI output device.  Thank you for your help in advance.