metronome 2.0.1
metronome: ^2.0.1 copied to clipboard
Efficient, accurate, cross-platform metronome; supports volume, BPM, and audio source settings.
Metronome #
Efficient, accurate, cross-platform metronome; supports volume, BPM, time signature and audio source settings.
Version 2.0 refactored most of the code, with better performance (BPM>600), less resource usage, and more accurate time signature callback.
#
Demo #
TODO #
- ✅ Add support for time signature #2
- ✅ Add windows support
- ✅ Add tickCallback for web
Quick Start #
Init #
final metronome = Metronome();
metronome.init(
'assets/audio/snare.wav',
accentedPath: 'assets/audio/claves44_wav.wav',
bpm: 120,
//0 ~ 100
volume: 50,
enableTickCallback: true,
// The time signature is the number of beats per measure,default is 4
timeSignature: 4,
sampleRate: 44100,
);
Play #
metronome.play();
Pause #
metronome.pause();
Stop #
metronome.stop();
Volume #
metronome.getVolume();
metronome.setVolume(50);
BPM #
metronome.setBPM(120);
metronome.getBPM();
TimeSignature #
Disable accents when less than 2
metronome.setTimeSignature(4);
metronome.getTimeSignature();
isPlaying #
Get play state
metronome.isPlaying();
setAudioFile #
main, accent can be set at the same time or individually
metronome.setAudioFile(
mainPath:'assets/audio/snare.wav',
accentedPath:'assets/audio/claves.wav'
);
metronome.setAudioFile(
mainPath:'assets/audio/snare.wav',
);
destroy #
metronome.destroy();
Tick callback #
enableTickCallback
must be set to true
in init
metronome.tickStream.listen((int tick) {
print("tick: $tick");
});