Gin
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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:

Thread Safety:

Usage:

// Accumulate MIDI in single thread
midiFifo.write(incomingMidi, blockSize);
// Later in same thread
if (midiFifo.getSamplesUsed() >= blockSize)
midiFifo.read(outputMidi, blockSize);
Simple MIDI buffer for time-shifting MIDI events within a single thread.
Definition gin_midififo.h:57
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
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: