[PD-dev] MIDI output devices
Martin Peach
martinrp at vax2.concordia.ca
Mon Feb 23 20:22:35 CET 2004
I'm guessing, but s_midi_mmio.c has
static HMIDIOUT hMidiOut[MAXMIDIOUTDEV]; /* output device */
Declaring the array static here makes it visible only to the functions
in the file s_midi_mmio.c
Martin
Padraig Kitterick wrote:
>> Padraig Kitterick wrote:
>>
>>> What I would like to be able to do is to use the device which is
>>> selected in PD's midi settings. I've searched the lists but can't
>>> seem to find anything related to this. Could anyone tell me how I do
>>> this?
>>
>>
>>
>> That's exactly the device you get when you read/write midi. Am I
>> missing something?
>
>
> That's what I expected too but no matter what I tried it would never
> send the midi sysex messages. However, if I added midiOutOpen() and
> midiOutClose() functions (which I shouldn't have to do as PD will have
> already opened the midi device) it worked fine.
>
> At first I thought it was because the code was in an external but today
> I patched the 0.37-1test6 branch and the behaviour was the same: sending
> the messages without first opening the device didn't work. I had to
> explicitly open and close the device, which also requires I specify a
> device number...
>
> As far as I can tell, it all comes down to the midi device handle.
> Calling the midiOutOpen() sets up the handle to that particular midi
> device. When I patched the source I made sure I was using the same
> handle as the other midi functions in the source too so it should work
> fine.
>
> Just to let you know: the sys_putmidibyte() function which is
> implemented in 0.37-1test6 is a very similar function (using
> midiOutShortMsg() instead of midiOutLongMsg()) and it doesn't work
> either. My guess is that both are using the wrong device handle, or that
> the handle hasn't been set.
More information about the Pd-dev
mailing list