flutter_midi_command 0.1.3

flutter_midi_command #

A Flutter plugin for sending and receiving MIDI messages between Flutter and physical and virtual MIDI devices.

Wraps CoreMIDI and android.media.midi in a thin dart/flutter layer. Works with USB and BLE MIDI connections on Android, and USB, network(session) and BLE MIDI connections on iOS.

Getting Started #

This plugin is build using Swift and Kotlin on the native side, so make sure your project supports this.

Import flutter_midi_command

import 'package:flutter_midi_command/flutter_midi_command.dart';

  • Get a list of available MIDI devices by calling MidiCommand().devices which returns a list of MidiDevice
  • Start scanning for BLE MIDI devices by calling MidiCommand().startScanningForBluetoothDevices()
  • Connect to a specific MidiDevice by calling MidiCommand.connectToDevice(selectedDevice)
  • Stop scanning for BLE MIDI devices by calling MidiCommand().stopScanningForBluetoothDevices()
  • Disconnect from the current device by calling MidiCommand.disconnectDevice()
  • Listen for updates in the MIDI setup by subscribing to MidiCommand().onMidiSetupChanged
  • Listen for incoming MIDI messages on from the current device by subscribing to MidiCommand().onMidiDataReceived, after which the listener will recieve inbound MIDI messages as an UInt8List of variable length.
  • Send a MIDI message by calling MidiCommand.sendData(data), where data is an UInt8List of bytes following the MIDI spec.
  • Or use the various MidiCommand subtypes to send PC, CC, NoteOn and NoteOff messsages.

See example folder for how to use.

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

0.1.2 #

Fixed message splitting on iOS Bluetooth MIDI Thanks to https://github.com/TheKashe for the contribution.

0.1.2 #

Better handling of disabled Bluetooth

0.1.1 #

Added missing entitlement in iOS plist for bluetooth access

0.1.0 #

Moved Message Types into separate file: flutter_midi_command_messages.dart. Fixed threading issue. https://github.com/InvisibleWrench/FlutterMidiCommand/issues/4 Added teardown function to disconnect and close all ports and devices. Gradle dependency raised to 3.4.2 minSDKversion raised to 24 Version bumped to 0.1.0

0.0.8 #

Gradle and Kotlin update. AndroidX

0.0.7 #

Updated readme

0.0.6 #

Added missing stopScanForDevices function on iOS

0.0.5 #

Updated kotlin version. Specific MidiMessage type now exist as separate subtypes of MidiMessage. Added StopScanning function. Updated example.

0.0.4 #

Fixed stream broadcast bug

0.0.3 #

Added Support for BLE MIDI devices on iOS

0.0.2 #

Readme and formatting

0.0.1 #

Initial Release. Functioning discovery and connection to MIDI devices on Android and iOS, as well as BLE MIDI devices on Android. Functioning sending and receiving of MIDI data


flutter_midi_command_example #

Demonstrates how to use the flutter_midi_command plugin.

Getting Started #

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  flutter_midi_command: ^0.1.3

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:flutter_midi_command/flutter_midi_command.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Feb 18, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.5
  • Flutter: 1.12.13+hotfix.7

Health suggestions

Format lib/flutter_midi_command.dart.

Run flutter format to format lib/flutter_midi_command.dart.

Format lib/flutter_midi_command_messages.dart.

Run flutter format to format lib/flutter_midi_command_messages.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.68.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8