Platform Compatibility

MPTK is full operational on Windows, Mac OS, IOs and Android

But there is some limitations:

  • WebGL
    • No sound playing due to WebGL limitation:
      • Lack of a good threading behaviors.
      • Investigation in progress …
    • Other functions as reading/writing midi events work correctly.
  • iOS
    • Test is OK on iPhone 7 and 8
    • Changing Synth rate is now available for iOS devices (with version 2.88.3). It seems that the sound devices does not like changing the default synth rate: 24 kHz by default.
    • MidiInReader: Midi input is not available with iOS. But a pull requests for iOS branches exists in MidiJack. Thank Ming for the information!
  • Android
    • Test is ok but it’s better to use a recent Unity version (last tested on 2019.3)
    • Follow this Unity tuto. If possible, use JDK/SDK/NDK/Gradle deployed with Unity.
    • Tested with these API:
      • Android 5.0 and 9.0
      • API Level 21 and 28
      • .NET 4.x
      • mono
      • also checked with success with IL2CPP
    • MidiInReader: Midi input is not available with Android. But a pull requests for Android branches exists in MidiJack. Thank Ming for the information!

V2 Change!

See below the change with the V2:

  • New Midi Synthesizer based on the excellent fluidsynth project. Code has been converted from C to C# and, of course adapted to Unity.
  • New class MidiLoad. Useful to load and process all the Midi events from a Midi without playing any sound.
  • Added Karaoke Capabilities. Midi meta event can contains lyrics in Midi file synchronized with the music. See demo TestMidiFilePlayerScripting.cs and screen shot below. Also some information format here and site here.
  • New SoundFont format: time to load and size divided by 20 and more compliant respect of the design of generators, modulators, envelopes …
  • Added Real Time modulator (Control Change Event).
  • Added Effect processing in relation with the SoundFont: low pass filter, reverb, chorus.
  • Enhancement of the SoundFont import window: select a subset of banks to keep or remove from the soundfont.
  • Possibility to keep all banks from the SoundFont and change bank in running mode with a Control Change event.
  • Better coherence of the MPTK API. New class MPTKEvent to process all kind of Midi Event. See API documentation
  • Access to the ticks information to manage an accurate position in the Midi from the inspector and from the API.
  • Added new event: OnEventSynthAwake , OnEventSynthStarted
  • Use of the genious ‘More Effective Coroutines’ from Trinary Software to a better Coroutines management. With this assets, the midi playing has gained in precision.
  • Redesign of the demo screens. See below.
  • And a lot of improvements or minor bugs corrected!

A full documentation is available within the Unity package to help you to migrate.

See below some screenshots:

The Menu!

Demo Midi File Player with Scripting
Use of the MPTK API to generate notes on fly
A start for an idea of game !

Test Midi Writer [PRO]

Play Midi Anywhere in the World ! (design not wonderful!) [PRO]

MPTK: Special Note For Pro Users

MPTK Pro version comes without any SoundFont, wave or Midi files.

The reasons are :

  • Get a small package to speed up download of update.
  • Don’t interfere with your project.
  • Let you make your best choice!

If you really want to reuse the stuff of the free version, you could copy Midi files from \MidiPlayer\Assets\MidiPlayer\Resources\MidiDB from a free MPTK download.

For SoundFont, you need to download a full SoundFont file from the web if you want to optimize your set of waves according with your Midi files.

To download the same SoundFont as for the free version, you could visit the excellent Christian Collins’s site.

  • Christian Collins site here 
  • and search for GeneralUser GS SoftSynth version 1.44.
  • Or try another SoudFont as you are the luckily owner of a Pro version !

Also, there is a lot of interesting information in these sites:

Tips: try General Midi SoundFont to get a large variety of instruments and a compatibility with Midi norm.

Warning: there are many SoundFonts on the web but they are not all of the same quality. Some contains only a few set of presets or deviate from the norm. This could cause some malfunctions in MPTK. Please, send me link on these SoundFonts, I could try finding a solution.

Please, have a look to theses pages to :

 

MPTK: Videos

Play multiple Midi files depending the distance with the Listener

Generate music on fly, thank to the MidiStreamPlayer

Change Sounfonts on fly (Pro version)

Add and Optimize Soundfonts (Pro version)

MPTK: Use AudioSource

Audio Source Template

MidiFilePlayer and MidiStreamPlayer gameobject contains an AudioSource template. This audio source is used as a template to play each sounds in your Midi File Player. An AudioSource is instantiated when there is the need to play a new wave from the Midi file. AudioSource are automatically deleted at the end of playing.

You can customize this AudioSource to adapt to your need. Picture below is the default configuration deployed with MPTK. Go to Unity documentation to understand how to use it.

Tips:

  • By default Spatial Blend is set to 0. Set to a upper value to change volume accordingly with the distance to the Audio Listener and the Left/Right orientation.
  • Audio Source are created at run time when a new sound is need. So, change the template parameters at edit mode to be sure that changes will be taken into account for all sounds when playing.