• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: CoreMIDI SysEx & MIDIMonitor
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CoreMIDI SysEx & MIDIMonitor


  • Subject: Re: CoreMIDI SysEx & MIDIMonitor
  • From: Kurt Revis <email@hidden>
  • Date: Thu, 31 Aug 2006 15:32:58 -0700

On Aug 31, 2006, at 11:33 AM, David A. Hoatson wrote:

Well - I guess I spoke too soon.
The sleep(1) fixed the startup issue where the MIDI input thread wasn't completely started before it received bytes.

That sounds like a really weird way to summarize the problem. More likely, the sleep is just working around a race condition in a MIDI driver.


Anyway, you never did say -- do you see the same problem when only one of your two MIDI devices are plugged in and have drivers installed? It would be helpful to know which one (Roland's driver or the built-in Apple one) are at fault here. I'm sure Apple would appreciate a bug report if it's theirs.

(Keep in mind that a bug in one driver could be affecting what you see from the other, so test with only one at a time.)


However I still have the issue where the SysEx message is getting corrupted by the OS.

I now know that if I sent a SysEx message that is too large, the OS will not transmit it properly. I have broken my SysEx message up into 3 byte chunks, and that solved that issue - however it created a new one. If all three bytes of the SysEx message are Zero, then the OS doesn't transmit them at all. Since I am sending 7-bit binary data down to the device, this is simply unacceptable. Each SysEx message must be a specific length or the device will reject it.

How do you know it's the OS? From my experience, I think a bad driver is much more likely. Again, does this happen with both devices or just one of them?


I'll give this a try tonight with the devices I have and see what happens...

BTW, it is sadly typical for 3rd party drivers to have problems with sysex. I don't think it tends to get as much testing as it ought to. It would be REALLY useful if there was a MIDI driver validation tool, much like auval... I know you can't do an exhaustive test just via loopback on a single interface, but it would still catch a lot of cases.

--
Kurt Revis
email@hidden

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: CoreMIDI SysEx & MIDIMonitor
      • From: "David A. Hoatson" <email@hidden>
References: 
 >Audio Units: calling SetParameter from within Process() (From: Artemiy Pavlov <email@hidden>)
 >Re: Audio Units: calling SetParameter from within Process() (From: stiwi <email@hidden>)
 >Re: Audio Units: calling SetParameter from within Process() (From: Artemiy Pavlov <email@hidden>)
 >Re: Audio Units: calling SetParameter from within Process() (From: stiwi <email@hidden>)
 >CoreMIDI SysEx & MIDIMonitor (From: "David A. Hoatson" <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: Robert Martin <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: "David A. Hoatson" <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: Kurt Revis <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: "David A. Hoatson" <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: Herbie Robinson <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: "David A. Hoatson" <email@hidden>)
 >Re: CoreMIDI SysEx & MIDIMonitor (From: "David A. Hoatson" <email@hidden>)

  • Prev by Date: Re: was: HELP!
  • Next by Date: Re: CoreMIDI SysEx & MIDIMonitor
  • Previous by thread: Re: CoreMIDI SysEx & MIDIMonitor
  • Next by thread: Re: CoreMIDI SysEx & MIDIMonitor
  • Index(es):
    • Date
    • Thread