Check out our latest project ✨ OpenChapter.io: free ebooks the way it was meant to be 📖

Godot MIDI Player

An asset by arlez80
The page banner background of a mountain and forest
Godot MIDI Player thumbnail image
Godot MIDI Player thumbnail image
Godot MIDI Player thumbnail image
Godot MIDI Player image holder but it is empty

Quick Information

0 ratings
Godot MIDI Player icon image
arlez80
Godot MIDI Player

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/

Supported Engine Version
3.5
Version String
2.6.2
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

Godot MIDI Player

README ko-fi

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

  1. Copy *.mid under "res://"
  2. Copy *.sf2 under "res://"
  3. Set MIDI path to MidiPlayer "file" parameter.
  4. Set SoundFont path to MidiPlayer "soundfont" parameter.
  5. call play() method

How to use

Demo

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.
  • SMF format 0 loading faster than SMF format 1.
    • because format 1 data will be convert to format 0 in the player.

TODO

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

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Godot MIDI Player icon image
arlez80
Godot MIDI Player

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/

Supported Engine Version
3.5
Version String
2.6.2
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers