Gin
Loading...
Searching...
No Matches
MidiFifo Class Reference

Simple MIDI buffer for time-shifting MIDI events within a single thread. More...

#include <gin_midififo.h>

Public Member Functions

 MidiFifo ()=default
void clear ()
int getSamplesUsed ()
void write (const juce::MidiBuffer &midiSrc, int numSamples)
void read (juce::MidiBuffer &midiDst, int numSamples)

Detailed Description

Simple MIDI buffer for time-shifting MIDI events within a single thread.

MidiFifo provides a simple buffer for storing and retrieving MIDI messages with automatic time offset adjustment. This is NOT thread-safe and should only be used within a single thread for buffering MIDI events across processing boundaries.

Unlike AudioFifo, this is a simple time-shifted buffer that shifts MIDI event timestamps as data is written and read. It's useful for delaying MIDI events or accumulating MIDI across multiple processing blocks.

Key Features:

  • Buffers MIDI messages with timing information
  • Automatic time offset adjustment
  • Simple read/write interface
  • Clear operation for reset

Thread Safety:

  • NOT thread-safe
  • Use only within a single thread
  • For multi-threaded use, consider other synchronization mechanisms

Usage:

MidiFifo midiFifo;
// Accumulate MIDI in single thread
midiFifo.write(incomingMidi, blockSize);
// Later in same thread
MidiBuffer outputMidi;
if (midiFifo.getSamplesUsed() >= blockSize)
midiFifo.read(outputMidi, blockSize);
int getSamplesUsed()
Definition gin_midififo.h:67
void write(const juce::MidiBuffer &midiSrc, int numSamples)
Definition gin_midififo.h:72
MidiFifo()=default
void read(juce::MidiBuffer &midiDst, int numSamples)
Definition gin_midififo.h:78
See also
AudioFifo, AudioMidiFifo

Constructor & Destructor Documentation

◆ MidiFifo()

MidiFifo::MidiFifo ( )
default

Member Function Documentation

◆ clear()

void MidiFifo::clear ( )

◆ getSamplesUsed()

int MidiFifo::getSamplesUsed ( )

◆ write()

void MidiFifo::write ( const juce::MidiBuffer & midiSrc,
int numSamples )

◆ read()

void MidiFifo::read ( juce::MidiBuffer & midiDst,
int numSamples )

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