dart_fire_midi 0.3.0 copy "dart_fire_midi: ^0.3.0" to clipboard
dart_fire_midi: ^0.3.0 copied to clipboard

A library for communicating with a Akai Fire midi controller.

example/dart_fire_midi_example.dart

import 'dart:io';

import 'package:dart_fire_midi/dart_fire_midi.dart' as fire;
import 'package:midi/midi.dart';
import 'package:collection/collection.dart';

void main() async {
  final midiDevices = AlsaMidiDevice.getDevices();
  if (midiDevices.isEmpty) {
    print('missing akai fire controller');
    exit(1);
  }

  final midiDev = midiDevices.firstWhereOrNull((dev) => dev.name.contains('FL STUDIO'));

  if (midiDev == null) {
    print('missing Akai Fire device');
    return;
  }
  if (!(await midiDev.connect())) {
    print('failed ot connect to Akai Fire device');
    return;
  }

  midiDev.send(fire.allOffMessage);
  print('init: all off');

  // uncomment to light up top left grid button blue
  midiDev.send(fire.colorPad(0, 0, fire.PadColor(10, 70, 50)));

  // show grid on top quarter of the oled screen
  final oled = List.filled(128 * 64, false);
  for (var i = 0; i < 128 * 8; i++) {
    oled[i] = (i % 2) == 0;
  }
  fire.sendBitmap(oled);

  midiDev.receivedMessages.listen((event) {
    print('input event: $event');
  });

  // typically ctrl-c in shell will generate a sigint
  ProcessSignal.sigint.watch().listen((signal) {
    print('sigint disconnecting');
    midiDev.disconnect();
    exit(0);
  });
}
1
likes
105
pub points
20%
popularity

Publisher

verified publishermanichord.com

A library for communicating with a Akai Fire midi controller.

Repository
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

collection

More

Packages that depend on dart_fire_midi