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();Getter that returns true if the metronome has completed initialization. After init is called.
Not platform dependant.
metronome.isInitialized;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");
});