Maestro Midi Editor

You want to create your MIDI music directly in the Unity Editor? You are on the right page!

The goal of the Maestro MIDI editor is not to replace available DAW, often free, always incredibly complex, but to propose an easy and simple tool for creating and editing music directly in Unity for Maestro!

Cheery on the cake, it’s also a good way to learn the wonderful world of MIDI Music!

It’s an extension of the Unity Editor so by design, not available in the runtime. But I’m seriously thinking how to migrate to UI Toolkit!

This first version focus was on the main features mandatory to create music, next version will progressively add cool ways to create your music. It’s also the opportunity for you to enter in the magic world of the MIDI music! I tried to following the KISS rules!

A quick demo here: Video

Main Features:

  • Create a MIDI sequence from scratch.
  • Load a MIDI sequence from Maestro MIDI DB or an external MIDI file.
  • Save a MIDI sequence to Maestro MIDI DB or to an external MIDI file.
  • Keep current edition safe even when compiling or relaunching Unity editor (serialize/deserialize).
  • Display MIDI events by channel with a piano roll view.
  • Create/Modify properties of notes and presets change.
  • Mouse editing functions: drag & drop event, change length.
  • Editing with quantization (whole, half, quarter, …).
  • Integrated MIDI player, playing available when editing (but not when running).
  • Looping on the whole sequence or partial sequence thru the user interface.

New features or issues corrected


  • Current playing position(vertical red line) not drawn when playing if not following the MIDI events.
  • Key Enter/Return validate value entered for a MIDI event or create a new event.


  • Display measure according to the time signature.
  • With following mode, the horizontal scroll is not working:  now following is disabled when scroll is move.
  • Enhance time banner line drawing.
  • Draw time banner with real time in relation of tempo change MIDI events.

Bugs to be corrected for the next version:

In progress:

Backlog by priority order:

Priority will be evaluated with your comments. So, have your say!

  • Add tempo event section with User Interface.
  • Hide/show channel.
  • Disable/enable playing by channel.
  • Copy/paste event? multi events?
  • Merging classes AreaUI and SectionAll?
  • Undo/Redo.
  • Add velocity edition with UI.
  • Add control change edition with UI.
  • Playing and editing in run mode, feasability?
  • Redesign color and texture like MIDI event, keyboard …
  • Specific MIDI events for integration with Unity.
  • Multi events selection, feasability?
  • Helper for building chords.
  • Helper for scale.
  • Helper for chords progression?
  • Percussion library integrated in MIDI DB?
  • Add text event edition + others meta.
  • Add effects section.
  • Partial import/insert of MIDI: select channels, select tick. Example: import only drum from a lib.
  • Manage MIDI tracks, useful?
  • Resizable panel, like between piano and note, useful?
  • Rhythm generator with Euclidean algo.
  • Send MIDI events to an external MIDI keyboard + MIDI beat clock?

Keyboard Shortcut



Keyboard shortcut


Zoom height and width

Ctrl /⌘ + Mouse Roller


Zoom height only

Ctrl /⌘ + Alt + Mouse Roller


Zoom width only

Ctrl /⌘ + Shift + Mouse Roller


Select a MIDI event

Click on the event


Delete a MIDI event



Enter / Return

Apply change to the current MIDI event selected or create it