A class that converts byte streams into MIDI messages, and stores them in a FIFO. This is useful if you wish to read MIDI messages via polling instead of interrupts. The class supports every type of MIDI message, and System Realtime messages can be interleaved with regular ones.

Embed: (wiki syntax)

« Back to documentation index

MIDIparser Class Reference

MIDIparser Class Reference

A parser that accepts bytes and outputs MIDI messages. More...

#include <MIDIparser.h>

Public Member Functions

 MIDIparser ()
 Create a parser and allocate input/output buffers.
void parse (uint8_t data)
 Input a byte to the parser.
uint32_t available ()
 Determine if a MIDI message is in the queue.
MIDIMessage grab ()
 Grab the next MIDI message.

Detailed Description

A parser that accepts bytes and outputs MIDI messages.

Example:

  #include "mbed.h"
  #include "MIDIparser.h"

  MIDIparser myParser;
  Serial pc(USBTX, USBRX);

  int main()
  {
      while(1) {
       
      while(pc.readable()) {
       
          myParser.parse(pc.getc());
      }
       
      while (myParser.available()) {
           
          MIDIMessage myMessage = myParser.grab();
          pc.printf("%d %d %d %d\n", myMessage.type(), myMessage.channel(), myMessage.key(), myMessage.velocity());      
      } 
          
      }
  }

Definition at line 60 of file MIDIparser.h.


Constructor & Destructor Documentation

MIDIparser (  )

Create a parser and allocate input/output buffers.

Definition at line 25 of file MIDIparser.cpp.


Member Function Documentation

uint32_t available (  )

Determine if a MIDI message is in the queue.

Returns:
1 if something is ready, 0 otherwise

Definition at line 136 of file MIDIparser.cpp.

MIDIMessage grab (  )

Grab the next MIDI message.

Returns:
The next MIDI message

Definition at line 138 of file MIDIparser.cpp.

void parse ( uint8_t  data )

Input a byte to the parser.

Parameters:
dataThe byte to parse

Definition at line 29 of file MIDIparser.cpp.