Releases: midilab/uClock
Raspberry PR2040 Support
Experimental support for RP2040 microcontrollers.
What's Changed
- README updates: typo's, readability by @vanzuiden in #34
- initial working proof-of-concept of rp2040 support by @doctea in #33
New Contributors
- @vanzuiden made their first contribution in #34
- @doctea made their first contribution in #33
Full Changelog: v2.0.0...v2.1.0
Higher PPQN resolution support and better swing feel!
Engine rewrited to perform higher PPQN resolutions and better swing styles.
// avaliable resolutions
// [ uClock.PPQN_24, uClock.PPQN_48, uClock.PPQN_96, uClock.PPQN_384, uClock.PPQN_480, uClock.PPQN_960 ]
// not mandatory to call, the default is 96PPQN if not set
uClock.setPPQN(uClock.PPQN_96);
BREAKCHANGES:
If you are comming from uClock version < 2.0 versions keep attention to the breakchanges so you can update your code to the new API interface changes:
setCallback functions name changing:
setClock96PPQNOutput(onClock96PPQNOutputCallback) is now setOnPPQN(onPPQNCallback) and his clock depends on the PPQN setup using setPPQN (clockPPQNResolution). For clock setup you now use a separeted callback via setOnSync24(onSync48Callback) or setOnSync24(onSync48Callback)
setClock16PPQNOutput(ClockOut16PPQN) is now setOnStep(onStepCall) and its not dependent on clock PPQN resolution
setOnClockStartOutput(onClockStartCallback) is now setOnClockStart(onClockStartCallback)
setOnClockStopOutput(onClockStopCallback) is now setOnClockStop(onClockStopCallback)
setOnClockStartOutput(onClockStartCallback) is now setOnClockStart(onClockStartCallback)
Tick resolution and sequencers
If you have write a sequencer using setClock16PPQNOutput only its ok to just change the API call to setOnStep, but if you were dependent on setClock96PPQNOutput you migth need to review you tick counting system depending on wich PPQN clock resolution you choose.
Programable Shuffle Support
After long waiting on TODO list, the shufle is done!
Please take a read at the following thread comment for more info on how to program and create your shuffle signatures to use with uClock: #27 (comment)
ESP32 Enhancement
This release enhance esp32 API usage by hidding the concurrency handle implementation to support UART and Serial general calls inside callbacks.
This release implementation makes use of FreeRTOS layer of esp32 support for arduino.
PlatformIO support
Official platformio support published:
https://registry.platformio.org/libraries/midilab/uClock
to install it on your platformio project:
pio pkg install --library "midilab/uClock@^1.4.1"
Generic STM32 Support released
- STM32 generic support by using STM32Duino and Hal library.
- Independent platform implementation support for easy arch ports, check platforms/ dir.
- Fixed missing name.c file for usb-midi definitions on teensy arm platforms
Thanks to @Jackson-Devices to manage the tests and examples.
ESP32 experimental support released!
An experimental support of ESP32, since this is a 2 cores platform there are some scenarios not tested extensivelly to guarantee full working uClock port, anyway, this is the one used for the Aciduino V2 ESP32 support working so far without problems.
Avoid xiao timer problems
- force the use of defined object TimerTcc0 to avoid problems with xiao mcu timer usage.
Example usage fixes
fixed a bpm printing problem within midi monitor examples that freezes the microcontroler.
Examples fixes
- Example usage fixes for tick access on calback