***************************************************************** Please leave a kind review on the Asset Store. It's very motivating! ***************************************************************** Assets: Free MPTK and Pro MPTK Info May, 29 2022 V2.89.3 is available! Update to integrate the last version of Oboe (Fight Android Audio Latency) Change tempo by script with MPTK_Tempo very easily. Ex:MPTK_Tempo = 120 (before, only MPTK_Speed was able to change the speed) New MVP example to show how integrate in a few lines of script a MIDI device (Maestro Pro). Info April, 22 2022 Hello Maestros! Just to inform you for some possible disturbance to access Maestro MPTK site https://paxstellar.fr I'm migrating this web site to another web hosting company and registrar. I hope that you will not have too much issues! Take me inform. Info Marsh, 21 2022 V2.89.2 is available! Update MidiFilePlayer inspector: add filter on the popup MIDI list for selecting a MIDI. Corrected MidiStreamPlayer which was not able to spatilize the sound (Unity Spatialization). Update TestMidiStream: demo how to play MIDI events with the keyboard. 0-9: play notes, Arrow keys: change preset. Apply Sample Rate setting when loading SoundFont to be able to play Vorbis samples (Thank to Paul). Add exception detection on all callback (like OnEventNotesMidi) to help detecting error in your script. New design for MIDI and SoundFont Setup Windows. Now works fine with MacOS Info December, 08 2021 V2.89.2 is in progress! New page on the web site for sharing with us your creation. Contact us! This page is for you Info November, 30 2021 Sometimes ago someone says that Maestro is too complex. So I'm trying to create a better documentation. See here a quick recap of all functions Keep in mind that for just playing a MIDI it's very easy: Only 3 mouse clicks. Info October, 11 2021 Version 2.89.1 is available!. It's a patch version, some fixes and quick enhancements. Add helper link for the MidiFileLoader inspector and a related page on the web site. Add delayed start to MPTK_Play (Pro version) Add delayed stop to MPTK_Stop (Pro version) Add short script demo for MIDI looping Correct instantiation for all MPTK OnEventxxxx to avoid crash in rare cases. Corrected: Preset change for channel 9 was disabled New kind of demos are also available: MVP (for Minimum Viable Product) has just enough core features to effectively deploy the product, and not more. Very efficient to understand how using Maestro. MVP Free: MidiLoop and TheSimplestMidiLoader MVP Pro: Spatializer3D for spatializing MIDI by tracks in a few lines of code Info September, 6 Finally it's a version 2.89.0 because there is a lot of new functions! See below: OnMidiEvent can be used like a preprocessor of the MIDI events: it's possible to change the value of the MIDI events in real time . [Pro] MPTK_TransExcludedChannel method useful to exclude a channel for transposing (in general, channel 9 for drums). MPTK_keepPlayingNonLooped properties: when set to true, NoteOff or Duration for non-looped samples are ignored and the samples play through to the end. Synth rate can be set to any value from the inspector or with MPTK_SynthRate. Output rate and buffer size can be modified when playing but only for test purpose. Added changing output rate and buffer size for iOS, but stay experimental. MPTK_ChannelPresetChange: apply bank and preset change even if not available but return false. MPTK_ChannelForcedPresetSet: apply bank and preset change even if not available but return false, able now to force bank. MPTK_RealTime properties: real time since the start of the MIDI. MPTK_KeepEndTrack properties: when set to true, meta MIDI event End Track are keep. Default is false. MPTK_TickLastNote properties: tick position for the last note-on found. MPTK_PositionLastNote properties: real time position in millisecond for the last note-on found in the MIDI. See Version release for a full description. Have Fun! Info August, 24 version V2.88.3 is in progress ... will be available beginning September. New site for API doc: https://mptkapi.paxstellar.com/annotated.html Info July, 23 Interesting! https://discord.com/channels/671365299756466199/673061158713950249/868198745190322186 Info July, 19 version V2.88.3 in progress ... Info June, 21 Oyez! Oyez! Version 2.88.2 is available! Very important, please read if you have issue when updating: package manager is buggy with some Unity versions. Try to use the latest LTS Unity version possible. For today: With Unity 2020: LTS Release 2020.3.12f1, With Unity 2019: LTS Release 2019.4.28f1 Info June, 18 Finally, we choose Unity 2019.4.28 to ensure a good stability. Obviously, Maestro remains also compatible with higher Unity versions. We hope the version 2.88.2 will be available beginning newt week. Have Fun! Info June, 17 Finalizing the spatialisation by tracks took longer than expected ... but the version is now ready. Helas, we got a minor setback when publishing version 2.88.2 with the 2017. Unity team say : "New assets should not be submitted through Unity versions earlier than 2018.4.0 LTS" While we are at it, we decided to move Maestro to a recent Unity version: the LTS 2020.3.0 or 2019.4.28. We hope that any developers need to use an earlier version ! Info May, 22 Version 2.88.2 on the road! Get a look here on this discord server dedicated to Maestro app's. It's a funny place for talking about new version, explain your need, exchange between users. But I'm a newbie with discord, I need your help to animate this server and your advice. You are all welcome!!! Some new methods added: MidiFilePlayer.MPTK_ReadMidiEvents MPTKEvent.MTPK_GetSynthParameterDefaultValue, MTPK_GetSynthParameterLabel, MTPK_GetSynthParameterListGenerator, MTPK_ClearSynthParameter [Pro]. MidiFileLoader.MPTK_SearchMidiToPlay Demo SpatializerFly: new look and capacity to defined 3D sound by midi tracks on top of midi channels. Info April, 19 Version 2.881 is available! Fast review! A user report some difficulties to update with this new version. Contact me if you have difficulties or error after updating. Unity Package Manager seems not absolutely reliable. Main new functions Midi Meta Event KeySignature and TimeSignature are now processed! Look at the new entry in the MPTK menu: version detail and quick access to documentation and a new windows give a quick access to the 15 demos available. Info Marsh, 23 Version 2.88 is on the way ! Soon, a little change for the name "Midi Player Tool Kit" name ... to be continued. Always more accuracy for the midi player: Better calculation of the real time of each midi events . Now, takes into account Tempo Change. A new properties with each midi events give you the time of the event. See RealTime in MPTKEvent class. A lot of improvements for MidiFileWriter2!!! Get automatic creation and ending of tracks. Create a list of midi events and play it with the internal MPTK midi sequencer (no temp file created). Dedicated methods to create each kind of midi event Thanks for your comments, talks, mails, that help me to make MPTK better!!! Info December, 29 Version 2.87 Pro is available ! New features available : New MPTK event triggered by the audio engine. Absolutely essential if you are writing something like a sequencer or a rhythm game. Generated Music becomes very accurate ! Read a full description here. Update of the "Midi Euclidean Rhythms" demo. Mainly to check the added event but also with a lot of good function to play music. Info December, 02 Oyez! Oyez! version 2.86 is available. Thank to a very quick validation in 3 hours by the Unity team this morning. Main new features: Android: Ready to fight latency with the integration of the Unity asset Oboe. No code to write, just bought Oboe! [Pro]. Synthesizer: Real time synth parameters modification. Now you can hange the default SoundFont generator value (ADSR, LFO, Effect, ...) by script for each voices [Pro]. Midi Device: To reduce latency with Midi keyboard, add possibility for reading midi events from a device with a callback [Pro]. See "version change" for other features. Look here for Oboe integration in MPTK https://paxstellar.fr/oboe-fight-android-latency/ Some screen shot ... Synth parameters available for real time change: This demo (with MPTK Pro) is useful to test latency but also the MPTK synthesizer voices run time effects and running different players at the same time. So, there is two prefabs MidiStreamPlayer for the drums and one MidiFilePlayer for the midi running at the same time. An APK is available for those who want to test on their Android. Ask me by email, i will send you a link to the APK Euclidean Rhythm. Of course, I would be very happy to have your return. Info November, 16 New class MidiFileWriter2 but the previous (MidiFileWriter) is maintain until the next major version. MidiFileWriter2 proposes a more consistent behavior with the others classes of MPTK and new helpful functions. Warm your keyboard! https://paxstellar.fr/class-midikeyboard/ Midi output device capabilities on top of Midi reading has been added [Pro]. As usual, a demo (simple) is available. And as usual, some issues corrected, see Release Notes. Have Fun! Infos october, 02 We had a talk with a person wondered if a sequencer is available with MPTK. The answer is yes and no! Yes there is a Midi Sequencer able to play Midi file in background, and no, there is not an User Interface to create you own sequence. We considered that there is a lot of free sequencers able to do that better than with Unity which is limited with it's Graphical User Interface (GUI). But the question is open! Please, give your opinion if you think that a GUI Sequencer in MPTK could be interesting. Thank by advance for your response. Infos september,18 (a lot of news!): Please, have a look to this Important update on the MPTK web site : Scripting with MPTK. I hope that will help persons who want to develop scripts with MPTK. If you want to update MPTK to 2.841, please remove your previous version: delete folder MidiPlayer from the project tab. I apologize for that, but sync update don't remove source file which are deleted in the new version, so conflict are detected. Version 2.841 s available on the store Horrible! The design of the two editors windows, Midi File Setup and Sound Font Setup, was ugly with Unity 2019 and 2020. Thank Unity to modify the default style of GUI!!! Corrected with this version. You often ask for this function: add all Midi from a folder. Done! New design for Midi File Setup and Sound Font Setup Version 2.84 is available on the store Now switching between Midi playing is immediate. Add functions to facilitate integration with Bolt [Pro] Start and Stop playing gradually (ramp-up) [Pro]. Now Midi play also with Time.timeScale = 0. And globally, a lot of enhancements on the demos (7 for free, 6 more with the pro version). Have Fun ! Version 2.83 is available on the store This version adds great enhancement for spatialization. MPTK is ready for Virtual Reality and Augmented Reality applications The spatialization by channel/instrument [Pro] defined the position of each instruments in the 3D world. Have a look the the video below: you can fly inside a whole orchestra and listen for each instrument individually. The demo is available with the Pro version. Main 2.82 new functions: Builder for music range and chord which is useful for algo music - [Pro] Integration with PlayerMaker and Adventure Creator - [Pro] Spatialization capabilities, ready for your Virtual Reality project. [All versions] Main 2.81 new functions: Add fluidsynth effects for standard SoundFont effects and integration with Unity effects [Pro] Add integration with Cinematic Sequencer - Slate [Pro] Watch here a quick tuto: and the dedicated page on the MPTK web site. Version 2.7 Midi Sequencer totally rewrited from the awesome fluidsynth: better processing of midi pause, change position, change tempo, speed, ... Separate thread: better performance for complex Midi when a lot of samples are played simultaneously. Parameters are availables to adjust the level of performance need. Load SoundFont from the web or desktop while running. It is no longer necessary to load the SoundFont in the DB before playing [PRO] Start playing from the first note. Pause when focus loss. Essential for smartphone ! Set default interpolation mode to Linear for a better sound (previous version was set to None). Also, for advanced needs, three preprocessors directives are available to help understanding the performance: DEBUG_PERF_AUDIO DEBUG_PERF_MIDI DEBUG_STATUS_STAT The demo TestMidiFilePlayerScripting has been adapted to display the performance KPI. Version 2.65 available: ⭐ Add Midi input functions (Windows and MacOS only) [PRO]. Thank to the new Prefab MidiInReader and the API to read a Midi keyboard. Integrate your Midi keyboard in a few clicks! ⭐ Change Unity Audio buffer size and synth rate for again better tempo accuracy, better sound, low latency. ⭐Full rewrite of the MidiListPlayer Inspector [PRO]. Now you can play part of a Midi, choose time to start and stop, choose overlap before the next Midi in the list. ⭐See also the new demo based on Euclidean Rhythm Algo. It's a rhythm box that could become a complete application. ⭐ Preview of the new Midi file setup : new function to analyze the midi file, new design of the page, .... ⭐Correct an issue with the Sustain control which can generate CPU overload ⭐Add Pitch change midi event See below demonstrations ... Build a Rhythm Box: Build a Midi Game: Midi Player Tool Kit is a package able to play music from Midi files in your application or from your own algo. There is no need of external component or device. Thank to SoundFont for adding hundred sounds of instruments for playing Midi files No scripting C# or JS is mandatory: specific inspector defined all your needs directly in Unity editor. See an overview here (V2). Add Midi Audio Source Prefab in your scene as much as you want. Add Midi files (from the web or from your composition) as much as you want. Play / Paused automatically based on distance. API available (V2) to integrate MPTK in your application. Version 2.7 beta on the road, could be available beginning February ⭐Add capabilities to load soundfont on the fly from local device or from the web [PRO]. It's now possible to use MPTK without loading a soundfont in the resource folder. ⭐Add new attributes to evaluate accuracy and performance for Midi Playing and SoundFont Synthesizer. ⭐Midi Sequencer and SoundFont Synthesizer are now autonomous (played in separate thread): more accuracy, better performance. ⭐Replaced deprecated WWW method with UnityWebRequest for MidiExternalPlay prefab [PRO]. ⭐Corrected timing accuracy with MacOS. ⭐Corrected bad sound when changing tempo or position when playing Have Fun !