MIDI Improvements #5805
Replies: 2 comments 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.
-
Being able to open and close specific devices is pretty important, as, on Windows, only one program can access a midi device at a time. I'm using an app made in Godot that has midi input, and if I launch it, I can't use any of my midi devices in any other program. I want to just use 1 midi device in that app and another in other apps. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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