Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser



Quick Information

Embeddable Software MIDI Player for Godot Engine 3.4 and later.2.6.2 update:* Fixed text event parse bug2.6.1 update:* replace deep_equal to == for Godot 3.4(s)* fixed bug for GS/XG resets.2.6.0 update:* Refactoring code* Fixed silence seconds* Make faster with MIDI system messages for resets* Added code for reuse AudioBus2.5.5 update:* Fixed double displaying in Node list.2.5.4 update:* Refactoring source codes* Some changes smf/sf2 file reading APIs.2.5.3 update:* No use when running on debug build.2.5.2 update:* Added no_thread_mode for HTML5 env.2.5.1 update:* Fix crash when hot reload in the debug mode by save on the editor.2.5.0 update:* Use thread for sequence playing.Features:* 100% pure GDScript* Play Standard MIDI File format 0 and format 1 with SoundFont.* Emit signals on some MIDI events (changes tempo, lyrics, markers or something).* Receive raw midi messages* You can play procedural generate MIDI sequences.Demo:https://bitbucket.org/arlez80/godot-midi-player/downloads/demo.zipRepository:https://bitbucket.org/arlez80/godot-midi-player/Wiki:https://bitbucket.org/arlez80/godot-midi-player/wiki/
Godot MIDI Player
Software MIDI player library for Godot Engine 3.4 later
- Changes play speed.
- Set tempo.
- Emit on some events (tempo change, appears lyric ...)
- You can control like AudioStreamPlayer.
Try it
- Copy *.mid under "res://"
- Copy *.sf2 under "res://"
- Set MIDI path to MidiPlayer "file" parameter.
- Set SoundFont path to MidiPlayer "soundfont" parameter.
- call play() method
How to use
- See wiki
Demo
- download
- This demo can get MIDIInput events. You can play using MIDI keyboards!
- BGM "failyland_gm.mid" from IvyMaze
- Youtube: Demo #1
- Youtube: Demo #2
- Youtube: Demo #3
Hint
- Set false to
GodotMIDIPlayer.load_all_voices_from_soundfont
to load voices for program change message in MIDI sequence.- of course,
GodotMIDIPlayer.load_all_voices_from_soundfont = true
will be very slow.
- of course,
- SMF format 0 loading faster than SMF format 1.
- because format 1 data will be convert to format 0 in the player.
TODO
- See issues
Not TODO
- Supports play format 2
- SMF.gd can read it. but I will not implement it to MIDI Player.
License
MIT License
Author
- @arlez80 あるる / きのもと 結衣 ( Yui Kinomoto )
Embeddable Software MIDI Player for Godot Engine 3.4 and later.
2.6.2 update:
* Fixed text event parse bug
2.6.1 update:
* replace deep_equal to == for Godot 3.4(s)
* fixed bug for GS/XG resets.
2.6.0 update:
* Refactoring code
* Fixed silence seconds
* Make faster with MIDI system messages for resets
* Added code for reuse AudioBus
2.5.5 update:
* Fixed double displaying in Node list.
2.5.4 update:
* Refactoring source codes
* Some changes smf/sf2 file reading APIs.
2.5.3 update:
* No use when running on debug build.
2.5.2 update:
* Added no_thread_mode for HTML5 env.
2.5.1 update:
* Fix crash when hot reload in the debug mode by save on the editor.
2.5.0 update:
* Use thread for sequence playing.
Features:
* 100% pure GDScript
* Play Standard MIDI File format 0 and format 1 with SoundFont.
* Emit signals on some MIDI events (changes tempo, lyrics, markers or something).
* Receive raw midi messages
* You can play procedural generate MIDI sequences.
Demo:
https://bitbucket.org/arlez80/godot-midi-player/downloads/demo.zip
Repository:
https://bitbucket.org/arlez80/godot-midi-player/
Wiki:
https://bitbucket.org/arlez80/godot-midi-player/wiki/
Reviews
Quick Information

Embeddable Software MIDI Player for Godot Engine 3.4 and later.2.6.2 update:* Fixed text event parse bug2.6.1 update:* replace deep_equal to == for Godot 3.4(s)* fixed bug for GS/XG resets.2.6.0 update:* Refactoring code* Fixed silence seconds* Make faster with MIDI system messages for resets* Added code for reuse AudioBus2.5.5 update:* Fixed double displaying in Node list.2.5.4 update:* Refactoring source codes* Some changes smf/sf2 file reading APIs.2.5.3 update:* No use when running on debug build.2.5.2 update:* Added no_thread_mode for HTML5 env.2.5.1 update:* Fix crash when hot reload in the debug mode by save on the editor.2.5.0 update:* Use thread for sequence playing.Features:* 100% pure GDScript* Play Standard MIDI File format 0 and format 1 with SoundFont.* Emit signals on some MIDI events (changes tempo, lyrics, markers or something).* Receive raw midi messages* You can play procedural generate MIDI sequences.Demo:https://bitbucket.org/arlez80/godot-midi-player/downloads/demo.zipRepository:https://bitbucket.org/arlez80/godot-midi-player/Wiki:https://bitbucket.org/arlez80/godot-midi-player/wiki/