Platform Compatibility

MPTK is full operational on Windows and Mac OS. Some users have tested also with IOs and Android with good results.

But there is some limitations depending with these devices:

  • Android:
    • Playing midi works but only for simple song due to these limitations:
      • No wave looping over an arbitrary region: corrected in Version 2.5
      • Latency: corrected in Version 2.6
  • WebGL:
    • no playing midi due to WebGL limitation:
      • Lack of a good threading behaviors.
      • Investigation in progress …
    • Other functions as reading/writing midi events work correctly.

Before buying, check with the free version,
if the free is ok then the pro will be!

If the Free is ok then the Pro will be!

Wave Looping

See here more information about the wave looping limitation with WebGL.

Take an example with a sound like a piano. When a piano key is hit (note on), the sound is played from the start of the wave:

  • first the attack+decay phase (a very short phase),
  • then the sound plays the sustain phase until the key is released (note off),
  • then the sound plays the release phase, generally a short phase,
  • then the sound is stopped.
From Wikipedia

See here more information how a synthesizer runs (in particular with envelope).

Note: information about looping is defined in the wave file with dedicated attributes defined when the wave is recorded..

Unfortunately, WebGL don’t use these looping information: the sound is playing from the start to the end of the wave until the key is released: all the steps are repeated: attack / decay / sustain / release. It’s like if you hit the piano key a lot of times! It’s a very weird result.

Note: some sound don’t loop. Generally, it’s the case for the percussion sounds.

Timing accuracy

Timing accuracy and latency are now corrected in Version 2.5 and 2.6 – thank to these changes:

  • Midi is read and audio is played in a dedicated thread, not in the Unity thread: Check Core Player Inspector Synth Parameters (it’s the default)
  • Change Unity Audio Parameters: synth rate and buffer size to adapt to your need