The type of instruments

Instrument::Flag defines some properties of instruments.

	enum Flag
	{
		NoFlags = 0x00,
		IsSingleStreamed = 0x01,	/*! Instrument provides a single audio stream for all notes */
		IsMidiBased = 0x02,			/*! Instrument is controlled by MIDI events rather than NotePlayHandles */
		IsNotBendable = 0x04,		/*! Instrument can't react to pitch bend changes */
	};

Here are some explanations:

Single-streamed vs. Multiple-streamed

An instrument in LMMS is called single-streamed if it renders and returns audio from all notes at once, not for each note. Conversely, a multiple-streamed instrument renders audio for each note and returns the output from every notes separately.

In other words, an instrument is multiple-streamed if and only if LMMS(not the instrument plugin) can control and access the rendered result of individual notes.

Some per-note features such as built-in polyphonic envelopes, LFOs, and filters are only available in multiple-streamed instruments.

MIDI-based vs. Non-MIDI-based

MIDI-based instruments process notes only using MIDI events, while others use NotePlayHandles for it. For example, VST instruments(and LV2 in the future) are MIDI-based.

All MIDI-based instruments must be single-streamed in the current implementation

Last updated