Nanomidi
Simple stream-based MIDI message encoder and decoder
MIDI Encoder

MIDI message encoder. More...

Data Structures

struct  midi_ostream
 Output stream for midi_encode() More...
 

Functions

size_t midi_encode (struct midi_ostream *stream, const struct midi_message *msg)
 Encodes a single MIDI message. More...
 
size_t midi_encode_usb (struct midi_ostream *stream, const struct midi_message *msg, uint8_t cable_number)
 Encodes a single MIDI message into USB packet. More...
 
void midi_ostream_from_buffer (struct midi_ostream *stream, void *buffer, size_t size)
 Creates an output stream which writes to a buffer. More...
 

Detailed Description

MIDI message encoder.

Function Documentation

◆ midi_encode()

size_t midi_encode ( struct midi_ostream stream,
const struct midi_message msg 
)

Encodes a single MIDI message.

Parameters
streamPointer to the midi_ostream structure
[in]msgPointer to the midi_message structure to be encoded
Returns
The number of bytes encoded.

◆ midi_encode_usb()

size_t midi_encode_usb ( struct midi_ostream stream,
const struct midi_message msg,
uint8_t  cable_number 
)

Encodes a single MIDI message into USB packet.

The packet format is described in Universal Serial Bus Device Class Definition for MIDI Devices.

Parameters
streamPointer to the midi_ostream structure
[in]msgPointer to the midi_message structure to be encoded
cable_numberCable number (0-15)
Returns
The number of bytes encoded (multiples of four).

◆ midi_ostream_from_buffer()

void midi_ostream_from_buffer ( struct midi_ostream stream,
void *  buffer,
size_t  size 
)

Creates an output stream which writes to a buffer.

The output stream can be used to write a finite number of messages into a pre-allocated buffer. It can be also used to encode a single message if the function is called right before midi_encode().

Parameters
streamPointer to the midi_ostream structure to be initialized
bufferPointer to the buffer to be written to
sizeBuffer size (in bytes)