openFrameworks add-on to run a DAW-Styled BPM Beat-Clock.
Internal Clock with Tap Tempo, External MIDI Sync and Ableton Link modes.
Receives a callback notification when each beat happens.
#include "ofxBeatClock.h"
ofxBeatClock beatClock;
ofEventListener listener;
void Changed_Tick();
void ofApp::setup()
{
beatClock.setup();
listener = beatClock.BeatTick.newListener([&](bool&) {this->Changed_Tick(); });
}
void ofApp::draw()
{
beatClock.draw();
}
void ofApp::Changed_Tick() // -> Callback to receive BeatTicks
{
ofLogNotice() << "Beat! #" << beatClock.getBeat();
}
- NEW FEATURE:
Ableton LINK sync engine (Master/Slave). [WIP: Maybe some protocol feature could be missing.. but working] - Internal Clock based in a threaded timer from ofxDawMetro from @castovoid.
You can uncomment#define USE_AUDIO_BUFFER_TIMER_MODE
onofxBeatClock.h
to enable BETA alternative timer. [WIP] - Tap Tempo Engine.
- External Source as Input MIDI Clock (Slave) using ofxMidi from @danomatika. Easy to Sync to Ableton Live or any sequencer app with Midi Clock.
- Metronome Sound Ticks.
- ImGui based GUI.
- Auto Save/Load of all settings.
- ofxMidi
- ofxImGuiSurfing
- ofxImGui. / Fork from @Daandelange.
- ofxSurfingHelpers
- ofxAbletonLink. / Optional. Can be disabled.
- ofxWindowApp. / Not required. For examples only.
Already included into OF_ADD-ON/libs
. No need to add manually:
- Windows 10 / VS 2022 / oF 0.12+
An add-on by @moebiusSurfing
( ManuMolina ). 2020-2022.
Thanks to the developers of the included core add-ons! @danomatika, @2bb and @castovoid.
MIT License.
- Improve on-the-fly pushing sync/tweaking BPM smoothly.
- Test/improve all Ableton Link features like Ableton in slave mode or multiple peers. [?]
- Finish the improved Audio Buffer-based clock to allow more precision.
This seems important when moving/hiding the Window. Sometimes the sync is lost. [?]
FEEL FREE TO ADD MODIFICATIONS OR FEATURES AND TO SEND ME PULL REQUESTS OR ISSUES!