Microsoft DirectX 8.1 (C++)

MIDI Renderer Filter

The MIDI Renderer filter renders MIDI data from the MIDI Parser filter.

Filter Interfaces 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.