|
3 years ago | |
---|---|---|
.. | ||
DistrhoPluginInfo.h | 4 years ago | |
ExamplePluginMetronome.cpp | 3 years ago | |
Makefile | 3 years ago | |
README.md | 4 years ago |
This example will show tempo sync in DPF.
This plugin will output a sine wave at the start of every beat.
The pitch of sine wave is 1 octave higher at the start of every bar.
4 parameters are avaialble:
To calculate frames to the next beat from the start of current audio buffer, following implementation is used.
const TimePosition& timePos(getTimePosition());
if (timePos.bbt.valid)
{
double secondsPerBeat = 60.0 / timePos.bbt.beatsPerMinute;
double framesPerBeat = sampleRate * secondsPerBeat;
double beatFraction = timePos.bbt.tick / timePos.bbt.ticksPerBeat;
uint32_t framesToNextBeat = d_isZero(beatFraction)
? 0
: static_cast<uint32_t>(framesPerBeat * (1.0 - beatFraction));
// ...
}
Reference: