crashhelmets
Member
hi all. my first post!
I am using a Teensy 4.0 as a midi device that pretends to be a Mackie MCU, which I can then use to remote control my DAW (Cubase).
I have set it up to work with either usbMIDI or hardware midi, using the Teensy 3 circuitry described on this page: https://www.pjrc.com/teensy/td_libs_MIDI.html
However I am having a problem with the hardware midi that doesn't occur with usbMIDI.
If I keep my System Exclusive code disabled, it all works fine when connected via usb or midi cables. But when I enable it, it works fine via usb, but via midi cables odd things will happen once clusters of Midi System Exclusive data from DAW come through.
Midi notes and controller data going in both directions works fine on both usbMIDI and hardware midi.
These are the problems that occur, often in this order, but sometimes jumping straight to 3!
If I force the PC to send many SysEx messages in quick succession, by scrolling rapidly up and down the tracks, that will usually force the issue to occur immediately. but as I said if I am connected via usbMIDI, scrolling like this causes no issues.
So in summary, clusters of sysex data over hardware midi seems to go wrong. Occasional Sysex messages are fine, and any other midi data is always fine.
I am aware that SysEx is handled differently by usbMIDI vs hardware midi. eg usb has a buffer of 60bytes. Could that be the problem here? can I restrict the hardware midi to 60byte chunks in the same way? The MCU sysex data I'm dealing with is sometimes longer than 60bytes, but it never seems to be longer than ~150.
Are there other differences between the way usb and hardware Midi types handle SysEx?
Is it possible that a big block of midi data pulls too much power and disrupts some of the other hardware?
I am running it all from a PC usb3 port, no additional power. I have tried various values of pull up resistor on the i2c pins, and it made no difference. I have also added capacitors between the power rails (5v/3.3v) and 0v in case it needed some smoothing. Made no difference.
Any advice gratefully received.
Thanks!
I am using a Teensy 4.0 as a midi device that pretends to be a Mackie MCU, which I can then use to remote control my DAW (Cubase).
I have set it up to work with either usbMIDI or hardware midi, using the Teensy 3 circuitry described on this page: https://www.pjrc.com/teensy/td_libs_MIDI.html
However I am having a problem with the hardware midi that doesn't occur with usbMIDI.
If I keep my System Exclusive code disabled, it all works fine when connected via usb or midi cables. But when I enable it, it works fine via usb, but via midi cables odd things will happen once clusters of Midi System Exclusive data from DAW come through.
Midi notes and controller data going in both directions works fine on both usbMIDI and hardware midi.
These are the problems that occur, often in this order, but sometimes jumping straight to 3!
- my 2x NeoKey 1x4 devices which are connected via i2c might malfunction or freeze
- the serial connection might be lost and my PC can no longer detect it. The Teensy seems to keep functioning apart from that. Often fixed by restarting the Teensy, but sometimes requires a PC reboot.
- Always eventually the Teensy will lock up completely and become unresponsive. Requiring a reset. Or sometimes a PC reboot
If I force the PC to send many SysEx messages in quick succession, by scrolling rapidly up and down the tracks, that will usually force the issue to occur immediately. but as I said if I am connected via usbMIDI, scrolling like this causes no issues.
So in summary, clusters of sysex data over hardware midi seems to go wrong. Occasional Sysex messages are fine, and any other midi data is always fine.
I am aware that SysEx is handled differently by usbMIDI vs hardware midi. eg usb has a buffer of 60bytes. Could that be the problem here? can I restrict the hardware midi to 60byte chunks in the same way? The MCU sysex data I'm dealing with is sometimes longer than 60bytes, but it never seems to be longer than ~150.
Are there other differences between the way usb and hardware Midi types handle SysEx?
Is it possible that a big block of midi data pulls too much power and disrupts some of the other hardware?
I am running it all from a PC usb3 port, no additional power. I have tried various values of pull up resistor on the i2c pins, and it made no difference. I have also added capacitors between the power rails (5v/3.3v) and 0v in case it needed some smoothing. Made no difference.
Any advice gratefully received.
Thanks!