--- linuxsampler/trunk/src/drivers/midi/MidiInputPort.h 2006/07/01 13:43:04 890 +++ linuxsampler/trunk/src/drivers/midi/MidiInputPort.h 2006/07/23 16:44:08 906 @@ -130,6 +130,10 @@ * event to be forwarded to all connected engines on the * corresponding MIDI channel. * + * This method is meant for realtime rendering, this way an event + * is immediately created with the current system time as time + * stamp. + * * @param Key - MIDI key number of the triggered key * @param Velocity - MIDI velocity of the triggered key * @param MidiChannel - MIDI channel on which event occured on @@ -139,10 +143,32 @@ /** * Should be called by the implementing MIDI input device + * whenever a note on event arrived, this will cause the note on + * event to be forwarded to all connected engines on the + * corresponding MIDI channel. + * + * This method is meant for offline rendering and / or in case the + * exact fragment position of the event is already known. + * + * @param Key - MIDI key number of the triggered key + * @param Velocity - MIDI velocity of the triggered key + * @param MidiChannel - MIDI channel on which event occured on + * (low level indexing, means 0..15) + * @param FragmentPos - event's sample point position in the + * current audio fragment + */ + void DispatchNoteOn(uint8_t Key, uint8_t Velocity, uint MidiChannel, int32_t FragmentPos); + + /** + * Should be called by the implementing MIDI input device * whenever a note off event arrived, this will cause the note * off event to be forwarded to all connected engines on the * corresponding MIDI channel. * + * This method is meant for realtime rendering, this way an event + * is immediately created with the current system time as time + * stamp. + * * @param Key - MIDI key number of the released key * @param Velocity - MIDI velocity of the released key * @param MidiChannel - MIDI channel on which event occured on @@ -152,9 +178,31 @@ /** * Should be called by the implementing MIDI input device + * whenever a note off event arrived, this will cause the note + * off event to be forwarded to all connected engines on the + * corresponding MIDI channel. + * + * This method is meant for offline rendering and / or in case the + * exact fragment position of the event is already known. + * + * @param Key - MIDI key number of the released key + * @param Velocity - MIDI velocity of the released key + * @param MidiChannel - MIDI channel on which event occured on + * (low level indexing, means 0..15) + * @param FragmentPos - event's sample point position in the + * current audio fragment + */ + void DispatchNoteOff(uint8_t Key, uint8_t Velocity, uint MidiChannel, int32_t FragmentPos); + + /** + * Should be called by the implementing MIDI input device * whenever a pitchbend event arrived, this will cause the * pitchbend event to be forwarded to all connected engines. * + * This method is meant for realtime rendering, this way an event + * is immediately created with the current system time as time + * stamp. + * * @param Pitch - MIDI pitch value * @param MidiChannel - MIDI channel on which event occured on * (low level indexing, means 0..15) @@ -163,10 +211,30 @@ /** * Should be called by the implementing MIDI input device + * whenever a pitchbend event arrived, this will cause the + * pitchbend event to be forwarded to all connected engines. + * + * This method is meant for offline rendering and / or in case the + * exact fragment position of the event is already known. + * + * @param Pitch - MIDI pitch value + * @param MidiChannel - MIDI channel on which event occured on + * (low level indexing, means 0..15) + * @param FragmentPos - event's sample point position in the + * current audio fragment + */ + void DispatchPitchbend(int Pitch, uint MidiChannel, int32_t FragmentPos); + + /** + * Should be called by the implementing MIDI input device * whenever a control change event arrived, this will cause the * control change event to be forwarded to all engines on the * corresponding MIDI channel. * + * This method is meant for realtime rendering, this way an event + * is immediately created with the current system time as time + * stamp. + * * @param Controller - MIDI controller number * @param Value - MIDI control change value * @param MidiChannel - MIDI channel on which event occured on @@ -176,6 +244,24 @@ /** * Should be called by the implementing MIDI input device + * whenever a control change event arrived, this will cause the + * control change event to be forwarded to all engines on the + * corresponding MIDI channel. + * + * This method is meant for offline rendering and / or in case the + * exact fragment position of the event is already known. + * + * @param Controller - MIDI controller number + * @param Value - MIDI control change value + * @param MidiChannel - MIDI channel on which event occured on + * (low level indexing, means 0..15) + * @param FragmentPos - event's sample point position in the + * current audio fragment + */ + void DispatchControlChange(uint8_t Controller, uint8_t Value, uint MidiChannel, int32_t FragmentPos); + + /** + * Should be called by the implementing MIDI input device * whenever a program change event arrived, this will cause the * appropriate sampler channel to be connected with this MIDI * device.