Coder Social home page Coder Social logo

moebiussurfing / ofxbeatclock Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 3.0 57.87 MB

DAW styled BPM-Beat Clock. Internal mode with Tap Tempo, external MIDI sync and basic Ableton Link.

License: MIT License

C++ 99.65% PowerShell 0.23% Batchfile 0.12%
openframeworks openframeworks-addon

ofxbeatclock's Introduction

ofxBeatClock

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.

Screencast

Usage

ofApp.h

#include "ofxBeatClock.h"

ofxBeatClock beatClock;

ofEventListener listener;
void Changed_Tick();

ofApp.cpp

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();
}

Features

  • 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 on ofxBeatClock.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.

Requeriments

Already included into OF_ADD-ON/libs. No need to add manually:

Tested Systems

  • Windows 10 / VS 2022 / oF 0.12+

Author

An add-on by @moebiusSurfing
( ManuMolina ). 2020-2022.

Thanks to the developers of the included core add-ons! @danomatika, @2bb and @castovoid.

License

MIT License.

TODO

  • 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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.