A Flutter package that provides:
- logic for working with musical notes, clefs and octaves;
- a widget that can render notes on a clef;
- an interactive piano widget.
In "Learn The Notes", a simple sight reading trainer you can find on the iOS App Store here and macOS App Store here.
Here's an example app:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:piano/piano.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoApp(
title: 'Piano Demo',
home: Center(
child: InteractivePiano(
highlightedNotes: [
NotePosition(note: Note.C, octave: 3)
],
naturalColor: Colors.white,
accidentalColor: Colors.black,
keyWidth: 60,
noteRange: NoteRange.forClefs([
Clef.Treble,
]),
onNotePositionTapped: (position) {
// Use an audio library like flutter_midi to play the sound
},
),
));
}
}
- I blog about Flutter here: https://handform.net/
- I'm on LinkedIn: https://www.linkedin.com/in/craigbmcmahon/