A struct representing MIDI messages recieved from MIDI inputs.
These are recieved via the Midiex.subscribe() function or from the Midiex.Listener GenServer.
The keys are as follows:
port:which is the input port (%Midiex.MidiPort{}or%Midiex.VirtualMidiPort{}) that sent the messagedata:the MIDI message data, in the form of a binary, e.g. <<153, 60, 70>>timestamp:from the midir docs: "a timestamp (in microseconds) designating the time since some unspecified point in the past (which will not change during the lifetime of an input connection)".
Example messages
%Midiex.MidiMessage{
port: %Midiex.MidiPort{
direction: :input,
name: "KeyStep Pro",
num: 2,
port_ref: #Reference<0.2327272197.1194197016.109029>
},
data: <<153, 60, 70>>,
timestamp: 283146647865
}
%Midiex.MidiMessage{
port: %Midiex.MidiPort{
direction: :input,
name: "Arturia MicroFreak",
num: 1,
port_ref: #Reference<0.2327272197.1194197016.109028>
},
data: <<128, 53, 33>>,
timestamp: 283145644340
}
%Midiex.MidiMessage{
port: %Midiex.MidiPort{
direction: :input,
name: "Arturia DrumBrute Impact",
num: 0,
port_ref: #Reference<0.2327272197.1194197016.109027>
},
data: <<153, 36, 4>>,
timestamp: 283147540161
}Other examples
See Midiex.Listener for examples of subscribing to MIDI messages and adding your own callback functions to process them.