MIDI Improvements #5805
alcomposer
started this conversation in
Engine Core
Replies: 1 comment 3 replies
-
Okay, but at first read, this is too technical and detailed. Could you summarize what are the current drawbacks of Godot MIDI support and what your proposal is to remedy these drawbacks. Also, highlihting a typical use case would be appreciated. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
MIDI implementation in Godot improvement ideas.
Prior discussions:
Audio Improvements, DSP software
Add an absolute time (DSP time)
Add support for MIDI output
MIDI is an important feature. It is an old, yet universally supported standard.
It is trivial for users to plug in any MIDI device, or setup a virtual MIDI software port.
It represents a simple, and effective way to control Godot, or in the case of output, to output to MIDI aware software / sound modules.
It's important to understand that Godot is itself a development platform, and thus should have basic, streamlined MIDI support. This isn't about making Godot into a DAW, MIDI support should be there to allow easy integration & extension however the end developer chooses, and give them a great developer experience.
Use cases:
MIDI IN:
MIDI OUT:
To implement
seq allows us to:
Godot
.InputEventMIDI
member variable to allow filtering of events from multiple devices (if event.id == 0
)Possible API breaking changes
Audio->MIDI->Enabled [On | Off]
This would give Godot a client pointer to attach in/out ports to later. (coreMIDI & ALSA Seq function similar, while Windows can skip this step?)
connect_all()
,connect(port)
&disconnect(port)
.pitch
for both MIDI Note Number & Pitch Bend)MIDI
namespace, eg:MIDI::MIDI_MESSAGE_NOTE_OFF
InputEventMIDI
Naming ConventionsWe may also want to consider initialising each variable in InputEventMIDI to
-1
as default. So that it's clear when a message has altered the value, as each variable can be set to0
via MIDI.Beta Was this translation helpful? Give feedback.
All reactions