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
Windows.devices.midi.h

See also

DirectShow Filters