MIDI Renderer Filter
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
The MIDI Renderer filter renders MIDI data from the MIDI Parser filter.
Label | Value |
---|---|
Filter Interfaces | IAMClockSlave, IAMDirectSound, IAMResourceControl, IBaseFilter, IBasicAudio, IMediaPosition, IMediaSeeking, IQualityControl, IReferenceClock |
Input Pin Media Types | MEDIATYPE_Midi, MEDIASUBTYPE_NULL |
Input Pin Interfaces | IMemInputPin, IPin, IQualityControl |
Output Pin Media Types | Not applicable |
Output Pin Interfaces | Not applicable |
Filter CLSID | CLSID_AVIMIDIRender |
Property Page CLSID | No property page |
Executable | quartz.dll |
Merit | MERIT_PREFERRED |
Filter Category | CLSID_MidiRendererCategory |
Remarks
The GUID for the format type is NULL, but the format block contains the following structure:
typedef struct _MIDIFORMAT {
DWORD dwDivision;
DWORD dwReserved[7];
} MIDIFORMAT, FAR * LPMIDIFORMAT;
The dwDivision member specifies the time division of the file. The time division is given in the header of any standard MIDI file (SMF), in the MThd
chunk. The MIDI Renderer sets this property on the MIDI data stream by calling the midiStreamProperty function.
Samples from the MIDI Parser filter contain one second of MIDI data. The MIDI Renderer uses the midiStreamOut function to render the MIDI data. Each sample is a synchronization point: the start of the buffer contains all of the commands necessary to set the correct state for rendering that buffer.
Requirements
Requirement | Value |
---|---|
Header |
|
See also