Okay, so if I use a virtual destination I can at least see that midi
is being sent, using MIDI Monitor...
But everything I read says that to send midi from a virtual port in
your own application, you create a virtual source, not a
destination. This makes sense, and is consistent with what I'm
observing, in that Logic (for example) doesn't get input from the
virtual destination, presumably because it's only looking for
sources... It sees the sources, but the midi data won't transmit
over those ports.
As I say, if I use MIDI Monitor I can see that the virtual
destination is getting the data. But, as far as what I'm actually
trying to do is concerned, which is to send midi to another app
(i.e., Logic), the virtual destinations are totally useless - that
is, they can't be selected as inputs.
So how on earth do I play a midi sequence over virtual ports to
another app, like Logic? Do I need to somehow point my virtual
destinations at my own sources? That seems like a bad idea, since I
can't see it doing anything but creating a feedback loop.
This all feels unnecessarily confusing...
If someone knows what's up with this, please, please, please, reply.
I found one other thread with a user having the same problem, but it
wasn't really resolved. The user was told to use virtual
destinations, instead of sources, but that **won't** get midi to
another app's inputs.
J.
On 20-Oct-08, at 10:31 AM, James Maxwell wrote:
hmm... Actually, I'm wondering whether this has something to do
with the fact that virtual outputs, which are represented as
sources (not destinations), need to use MIDIReceived instead of
MIDISend? I should mention that this is for playback from a
MusicSequence/MusicPlayer, so it's MusicPlayerStart that outputs
nothing when using my virtual ports, but works correctly when using
the IAC bus.
So is there some special way of dealing with MusicPlayerStart when
using virtual outputs?
I'm using the same call to MusicSequenceSetMIDIEndpoint in both
cases.
J.
On 20-Oct-08, at 9:12 AM, James Maxwell wrote:
I'm setting up 4 virtual endpoints for my app - at this point
these are just sources, so they're for output to other apps. I'm
using the PYMIDI framework to simplify things, and they ports
appear to initialize correctly - no errors during init, and the
ports are visible to other apps. However, they won't send any midi
data. If I switch the assignment to the IAC Bus, midi is sent as
expected, so it's something to do with the endpoints I'm creating.
I contacted Pete Yandell (author of PYMIDI) about it, and he
couldn't see any problems in my code. So I'm wondering whether
anyone else has had virtual endpoint problems in 10.5.5, or if
anyone has experienced something like this and found a solution?
Thanks,
J.