diff --git a/data/samples/misc/metronome02.ogg b/data/samples/misc/metronome02.ogg new file mode 100644 index 000000000..70b53e117 Binary files /dev/null and b/data/samples/misc/metronome02.ogg differ diff --git a/src/core/Mixer.cpp b/src/core/Mixer.cpp index 4aa9faa5b..d4e7bc1c6 100644 --- a/src/core/Mixer.cpp +++ b/src/core/Mixer.cpp @@ -322,10 +322,17 @@ const surroundSampleFrame * Mixer::renderNextBuffer() song::Mode_PlayPattern ); if( engine::getSong()->playMode() == song::Mode_PlayPattern && engine::pianoRoll()->isRecording() == true && - p != last_metro_pos && p.getTicks() % - (DefaultTicksPerTact / 4 ) == 0 ) + p != last_metro_pos ) { - addPlayHandle( new SamplePlayHandle( "misc/metronome01.ogg" ) ); + if ( p.getTicks() % (MidiTime::ticksPerTact() / 1 ) == 0 ) + { + addPlayHandle( new SamplePlayHandle( "misc/metronome02.ogg" ) ); + } + else if ( p.getTicks() % (MidiTime::ticksPerTact() / + engine::getSong()->getTimeSigModel().getNumerator() ) == 0 ) + { + addPlayHandle( new SamplePlayHandle( "misc/metronome01.ogg" ) ); + } last_metro_pos = p; }