[wdmaudiodev] Re: Connecting two MIDI pins to each other

  • From: "Martin Puryear" <martinp@xxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 17 Feb 2004 09:17:27 -0800

Hi Evert,
 
There is no real data intersection for MIDI formats.  More to the point,
the class driver support for MIDI is only in PortCls, there is none in
AVStream itself.  Unfortunately, PortCls itself does not support source
pins (pins that send rather than receive IRPs) for MIDI.  Even for MIDI
input, the driver receives empty IRPs and fills them, completing the IRP
when a message completes.  For this reason, you would not be able to
create a MIDI pin that you can directly connect to another MIDI pin
(unless you created your own AVStream filter for MIDI, without using
PortCls' sequencer).
 
Martin Puryear
Microsoft Corporation
This posting is provided "AS IS" with no warranties, and confers no
rights.

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Evert van der
Poll
Sent: Monday, October 27, 2003 7:30 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Connecting two MIDI pins to each other


Hello to all,
 
I'm investigating the possibility of connecting two MIDI pins to each
other, for instance a hardware input with a hardware output. I have been
experimenting with graph edit and ksStudio but I'm still undetermined
about whether this is at all possible. In the DDK documentation I read
that the default data-intersection handler only handles
KSDATAFORMAT_WAVEFORMATEX or KSDATAFORMAT_DSOUND. Before I start
investing time into something that is hopeless from the beginning, I
hope there is someone who can answer the following questions:
 
- Can two MIDI pins in principle connect to each other?
 
- Do I need to implement proprietary data-intersection handlers?
 
- Is there a trick to let the default data-intersection handler in
portcls do the work (for instance let the MIDI pins report some fake
audio format).
 
- If the connecting pins idea is not working, is there some other way
the two pins can communicate? For instance I read in the documentation
that I can use KsCreatePin without specifying a pin to connect with.
Does this create some sort of communication line? Can I send IRP's from
one pin to the other? 
 
 
What I'm trying to achieve is a sort of filter that can be inserted into
a MIDI stream, much like a video codec can be inserted into a video
stream.
 
I'd much appreciate any input, thoughts, suggestions.
 
 
Evert van der Poll
 
 

Other related posts: