UClock Versions Save

A tight BPM clock generator for Arduino and PlatformIO using hardware timer interruption. AVR, Teensy, STM32xx, ESP32 and RP2040 support

v1.1.0

1 year ago

Thanks @mightycoco for the coded support/tests and @m-r-m-s for reporting and testing.

  • Xiao Support
  • Compile time Warnings fix

v1.0.0

2 years ago

Clock generation and sync engine totally rewrited for better performance and timming.

  • You got plenty of more room to write your code at interruption calls.
  • Better clock, better slave sync!

0.10.6

2 years ago

Timer implemented to run from timer0, timer1 or timer2 on AVR boards.

Make use if you want to integrate uClock along with some library that already make use of timer1(the default and preferred uClock timer on avr boards).

You can chose your timer from uClock.cpp a #define code area:

// pickup a avr timer to make use.
// pickup only one!
// try to avoid timer0, only use it if you know what you are doing.
// 0 = delay(), millis() e micros()
// 1 = Servo.h library(any other?)
// 2 = tone()
//#define AVR_TIMER_0
#define AVR_TIMER_1
//#define AVR_TIMER_2

0.10.5

2 years ago

getTempo() fix for slave sync when receiving stop byte. this fix avoids getTempo() returns random tempo after stop byte received.

Thanks Matthew for reporting and debuging it.

0.10.4

3 years ago
  • phase lock was removed by mistaken on last release. getting him back!

0.10.3

3 years ago
  • revert back 32 and 16PPQN callbacks to keep compatibility. but give a try on polling method!

0.10.2

3 years ago
  • Remove last select frequency base clock. Not much gain and a lot of more cpu waste. revert!
  • Added a setSlaveDrift() method to setup special slave clock issues.
  • Code revised for external sync
  • Update and test USB hid midi examples leonardo and teensy

0.10.0

3 years ago
  • added high resolution clock base for teensy. from 16us resolution to 4us. better and more stable reads as slave clock. better and more precise master clock.
  • BPM float supported. set tempo using decimal 126.6!
  • Support to setup internal drift(for master clock generation) and external drift(for slave clock generation).
  • Lower examples midi read interrupt to 250 microseconds

0.9.4

3 years ago
  • added clock decimal precision(128.5bpm).
  • added a buffer for average interval tick reading on getTempo() to smooth slave tempo retrieve.
  • revised Teensy USB midi clock monitor example.

0.9.3

3 years ago
  • Added drift support for external sync
  • Added a Leronado example of Usb MIDI HID clock slave monitor using oled display