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.
- Add support for time signature #2
- Add windows support
- Add tickCallback for web
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,
);
metronome.play();
metronome.pause();
metronome.stop();
metronome.getVolume();
metronome.setVolume(50);
metronome.setBPM(120);
metronome.getBPM();
Disable accents when less than 2
metronome.setTimeSignature(4);
metronome.getTimeSignature();
Get play state
metronome.isPlaying();
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',
);
metronome.destroy();
enableTickCallback
must be set to true
in init
metronome.tickStream.listen((int tick) {
print("tick: $tick");
});