Skip to content

Listing port names, sending MIDI messages to specific ports #112

@intonarumori

Description

@intonarumori

I've been working on an app that will be available on Android, iOS, macOS and Windows.

I've noticed that my iConnectivity MIO10 MIDI interface shows up differently on different platforms:

  • On iOS I get a list of 10 MIDI devices each with it's own name (MIO DIN1, MIO DIN2, etc.)
  • On Android it shows up as one device with 10 different ports

Correct me if I'm wrong but it looks like I can send MIDI messages to different devices, but cannot target individual ports.
I've looked at the Android source code at it seems the library only uses the first output port when sending messages.

Log.d("FlutterMIDICommand", "Open output port")
this.outputPort = this.midiDevice.openOutputPort(0)
this.outputPort?.connect(this.receiver)

As a side note, port names are also not available right now, I think MidiPort should be extended with a name field and we should probably use getName() to populate it, even though this might still return an empty string on certain devices.

Let me know what you think, I did some experiments with updating MidiPort but since 3-4 repositories need to be updated, it would be great to agree on an implementation before I open PRs.

Many thanks.

Please find a screenshot of the Example app connected to the MIO10.
Screenshot_20241111-101625

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions