JUCE
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines
Public Member Functions
MidiMessageCollector Class Reference

Collects incoming realtime MIDI messages and turns them into blocks suitable for processing by a block-based audio callback. More...

Inherits MidiKeyboardStateListener, and MidiInputCallback.

List of all members.

Public Member Functions

 MidiMessageCollector ()
 Creates a MidiMessageCollector.
 ~MidiMessageCollector ()
 Destructor.
void reset (double sampleRate)
 Clears any messages from the queue.
void addMessageToQueue (const MidiMessage &message)
 Takes an incoming real-time message and adds it to the queue.
void removeNextBlockOfMessages (MidiBuffer &destBuffer, int numSamples)
 Removes all the pending messages from the queue as a buffer.
void handleNoteOn (MidiKeyboardState *source, int midiChannel, int midiNoteNumber, float velocity)
void handleNoteOff (MidiKeyboardState *source, int midiChannel, int midiNoteNumber)
void handleIncomingMidiMessage (MidiInput *source, const MidiMessage &message)

Detailed Description

Collects incoming realtime MIDI messages and turns them into blocks suitable for processing by a block-based audio callback.

The class can also be used as either a MidiKeyboardStateListener or a MidiInputCallback so it can easily use a midi input or keyboard component as its source.

See also:
MidiMessage, MidiInput

Constructor & Destructor Documentation

Destructor.


Member Function Documentation

void MidiMessageCollector::reset ( double  sampleRate)

Clears any messages from the queue.

You need to call this method before starting to use the collector, so that it knows the correct sample rate to use.

Takes an incoming real-time message and adds it to the queue.

The message's timestamp is taken, and it will be ready for retrieval as part of the block returned by the next call to removeNextBlockOfMessages().

This method is fully thread-safe when overlapping calls are made with removeNextBlockOfMessages().

void MidiMessageCollector::removeNextBlockOfMessages ( MidiBuffer destBuffer,
int  numSamples 
)

Removes all the pending messages from the queue as a buffer.

This will also correct the messages' timestamps to make sure they're in the range 0 to numSamples - 1.

This call should be made regularly by something like an audio processing callback, because the time that it happens is used in calculating the midi event positions.

This method is fully thread-safe when overlapping calls are made with addMessageToQueue().

void MidiMessageCollector::handleNoteOn ( MidiKeyboardState source,
int  midiChannel,
int  midiNoteNumber,
float  velocity 
) [virtual]
void MidiMessageCollector::handleNoteOff ( MidiKeyboardState source,
int  midiChannel,
int  midiNoteNumber 
) [virtual]
void MidiMessageCollector::handleIncomingMidiMessage ( MidiInput source,
const MidiMessage message 
) [virtual]

Implements MidiInputCallback.


The documentation for this class was generated from the following file: