Use Case and Quick Overview

Look here for a detailed description of each classes, prefabs, methods, attributs, …

Two Main Modes

  • Green on the schema: play music from an existing MIDI file within your app (MidiFilePlayer, MidiExternalPlay, MidiInReader MidiListPlayer, MidiSpatializer).
  • Orange on the schema:  create your music at run-time in your app (MidiStreamPlayer, MidiFileWriter2,  MidiKeyboard, MPTKChordBuilder, MPTKChordLib, MPTKRangeLib).

These two modes can be combined as you want around the central class MPTKEvent which describes a MIDI event.

Maestro Unity Prefab

Three Prefabs available with the Free version

  • MidiFilePlayer:
    • Play music from a MIDI file with a full control of  speed, position, quantization, channel, instrument, loop, move to specific position …
      • No C# script needed to add music, playing music can be done with the Unity Editor.
      • The easier and quick way to add music to your app.
      • Obviously you don’t need to be a musician, there is a lot of MIDI files available on internet, often for free.
      • Integrated Maestro MIDI Editor can also be used to create your MIDI sequence [Pro].
  • MidiStreamPlayer:
    • Create and play music from your algorithm.
      • Play music by creating MIDI event (note-on, preset change, control change, …) in relation with your Unity action (see MPTKEvent class).
      • Generally from your Update() method or on Unity event.
      • Generative music is at your fingertips.
  • MidiFileLoader:
    • Load a MIDIfile for analysis or processing by accessing to all the MIDI events: note, tempo, text, instrument, … No player on boarded.

Four Prefabs available with the Pro version

  • MidiListPlayer:
    • Play music from a list of MIDI files.
      • Overlap between MIDI
      • Play part of a midi.
      • Loop …
  • MidiExternalPlay:
    • Play a MIDI directly with an URL from the Web or anywhere from the device (desktop or mobile).
  • MidiInReader:
    • Read MIDI events from a MIDI keyboard.
    • Play directly, or do all that you want with the MIDI events (see MPTKEvent class).
  • MidiSpatializer:
    • Play music from a MIDI files with the spatializer ready for a 3D environment where each instruments can be localized in space.

There is surely a prefab for your need! All you have to do is to add one of this prefab to your scene.

Main Maestro Classes

Quick overview of the main classes:

  • MPTKEvent class
    • It’s a central class for all others Maestro prefabs and classes!
      • Create MIDI events or interact with the attribute of a MIDI message.
      • Play and stop a note.
      • Modify in real time default internal synthesizer generators values.
      • Change instrument (preset, patch, …).
      • Change controllers values.
      • Access for the parameters of each voice.
  • MidiFileWriter2 class [Pro]
    • MIDI Editor is built with this class.
    • Create and export MIDI files by script
    • Play directly.
    • Insert/append MIDI to a MIDI at run-time
  • MidiKeyboard class [Pro]
    • Connect external MIDI keyboard
    • By script:
      • List device
      • Open / Close the selected device
      • Read or write MIDI event to the device