![]() ![]() * MIDI Adapter Standard Bulk OUT Endpoint Descriptor */ * MIDI Adapter MIDI OUT Jack Descriptor (Embedded) */ * MIDI Adapter MIDI IN Jack Descriptor (External) */ * MIDI Adapter MIDI OUT Jack Descriptor (External) */Ġx03, //bDescriptorSubtype - MIDI_OUT_JACK * MIDI Adapter MIDI IN Jack Descriptor (Embedded) */Ġx02, //bDescriptorSubtype - MIDI_IN_JACK * MIDI Adapter Class-specific MS Interface Descriptor */ * MIDI Adapter Standard MS Interface Descriptor */ * MIDI Adapter Class-specific AC Interface Descriptor */ USB_DESCRIPTOR_INTERFACE, // INTERFACE descriptor type _DEFAULT | _SELF, // Attributes, see usb_device.hĠx09,//sizeof(USB_INTF_DSC), // Size of this descriptor in bytes USB_DESCRIPTOR_CONFIGURATION, // CONFIGURATION descriptor typeġ17,0, // Total length of data for this cfg ![]() * copied from the midi10.pdf USB Device Class Specification for MIDI Devices */Ġx09,//sizeof(USB_CFG_DSC), // Size of this descriptor in bytes MIDI MONITOR ERROR SERIAL NUMBERUSB_EP0_BUFF_SIZE, // Max packet size for EP0, see usb_config.hĠx0059, // Product ID: Audio MIDI exampleĠx0002, // Device release number in BCD formatĠx00, // Device serial number string indexĠx01 // Number of possible configurations USB_DESCRIPTOR_DEVICE, // DEVICE descriptor typeĠx0200, // USB Spec Release Number in BCD format And they are working fine, besides the above described problem.Ġx12, // Size of this descriptor in bytes What can that be? I mean, I can see all the INs and OUTs that I configured. MIDI MONITOR ERROR DRIVERevents disappeared and then everything works fine again.Īs the soft synth has the same problem as the MIDI sequencer, I assume that the Windows Class Compliant MIDI Driver has some problems with the PIC controller. First 16 event (8 notes) were played back, then 16, 48. So the remaining part is the Windows Class Compliant USB MIDI driver and the MIDI sequencer. And I can see that all MIDI message are receive by the PC. Further more I used Wireshark+USBPcap to monitor the USB port. And the PIC sends out the MIDI message all the time. Sadly I have no decoder for USB, but I was able to find the message in the logged data manually. I also took my logic analyser and logged the D+/D- lines. ![]() After that everything works as expected.Ĭan that be a configuration error? I added the descriptors below. The first 16 Messages are always working, then for each additional MIDI IN port 16 MIDI messages vanish. Then 2x16 MIDI messages disappear (don't reach the Sequencer) and then after 48 Messages (16 good, 2x16 bad), everything is fine again. If I add a 3th IN port (PIC to PC), the first 16 Midi events are fine again. After MIDI Message 33 (16 good+16 bad+1) everythings works fine again. The second 16 MIDI messages somehow vanish, at least they don't reach the MIDI sequencer. If I have 2 IN ports (PIC to PC), the first 16 MIDI events go through the loop (MIDI sequencer->Loopback in ProcessIO function->back to MIDI sequencer with MIDI monitor). ![]() I see the additional IN ports, and it works somehow. But adding more INs (PIC to PC) makes some problems. I modified the demo to run on my selfmade demo board (PIC32MX440F128H) and rewrote the ProcessIO function so, that the incoming MIDI message is send back to the PC. Maybe somebody encounterd something similar. MIDI MONITOR ERROR HOW TOI have a funny problem using the MIDI demo and I don't know, how to deal with it. USB-Midi lost MIDI events: Windows7/64, PIC32MX440F128H, microchip_solutions_v ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |