File Exchange

image thumbnail

MIDI Interface for MATLAB

version (16.9 KB) by Tucker McClure
Supports bringing incoming MIDI data into MATLAB on Windows.


Updated 01 Sep 2016

View Version History

View License

This simple interface allows MATLAB to read incoming MIDI data from a MIDI device or another MIDI program. For instance, if a MIDI keyboard is connected to the computer running MATLAB, this interface could be used to see what keys the user is playing, what knobs he's twisting, what pedals he has down, etc.
% Open an interface; the tool will prompt to select a device.

% Play some notes on a connected keyboard or wiggle some knobs on a MIDI controller.

% Read all the new MIDI messages.
messages = midi_interface();

% Close the device.

This currently only works on Windows (32/64-bit) and only supports one MIDI device at a time. If this tool proves useful for people, we could take it further, so just let me know!

Early beta.

Cite As

Tucker McClure (2021). MIDI Interface for MATLAB (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (5)

Tucker McClure

Hi Sima H,

The messages this tool outputs use a standard MIDI format consisting of several integers per "message". You can read about their meanings online; a simple search for "MIDI messages" ought to do it. Also, a few of the most basic messages (note on/off and velocity) are covered as part of the MidiDemo.m in the Real-Time Audio Processor, available here:

- Tucker

Sima H

Hi. I wonder if you give me a brief explanation about the massages.


Sorry, had a problem with the cable. Now working. Great code, very helpful. Thanks!


I wonder, why do I always get an empty messages matrix?

I open the interface, select the device, play some notes on the keyboard and execute messages = midi_interface() which always returns an empty matrix.

Katarzyna Zarnowiec

very helpful! thank you!

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!