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

  • From: "Evert van der Poll" <e.j.van.der.poll@xxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 17 Feb 2004 21:21:14 +0100

 

Hi Martin,
 
Thanks for the reply. Much if this I had figured out myself already. At one
point I even managed to get two MIDI pins to actually connect by having one
of the pins report itself as IRP source. But I realised that it was going to
work only one way; I could pass the MIDI data on to a second pin but there
was no way I could receive MIDI data from it.
Eventually I gave up on it as the design of PortCls clearly was not meant to
be used this way. 
 
I now have the filter implemented in user mode which also works. There are
some issues however that I would like to solve. Your remark about creating
your own AVStream filter for MIDI got me thinking again. Would it be
possible to create such a filter or would you advise against it? Would such
a custom AVStream MIDI filter be able to connect to a PortCls type MIDI pin
or would it be restricted to similar AVStream filters?
 
 
Evert van der Poll
 
 
 
 
 
 
 
 
 -----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx]On Behalf Of Martin Puryear
Sent: Tuesday, February 17, 2004 6:17 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Connecting two MIDI pins to each other


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: