Smart MIDI Master Clock (UberClock project)
UberClock is a smart MIDI master clock designed for synth jam sessions (up to 6 people). This master clock, and its MIDI distribution boxes, ensures that anyone in the jam session always -and automatically- start at the downbeat keeping everything and everyone nicely in sync. The Restart feature allows for an on-the-fly re-sync of all gear in case one or more participants start to run out of sync.
In addition to this project being a MIDI Master clock, it also offers a timer to keep an eye on how long you've been jamming. Just press the encoder's knob to reset the timer. PS: the timer refreshes every 5 seconds (no every second to keep "CPU power" available for the main clock functions).
The clock also offers a rather unique feature of providing three random words whenever you press the encoder. The person operating the clock can use these word-combinations to offers inspiration to the participant in terms of the musical direction of the jam - so the jam keeps moving into different moods/atmospheres etc. There are over 3 million word-combinations possible - so plenty to play with.
In the 360 video below you can see the clock in action at a synth jam session with 6 people (I am sitting front right). Have a look around and spot the UberClock (the Master Clock) and the six UberBoxes (Clock Distribution)
In the video below the UberClock has just been started (tapping the Re/Start button). You can see that all 6 UberBoxes run in sync with the UberClock. It also shows the beat count with the Blue led being count 1 (or downbeat)
In the video below the UberClock has Stopped (tapping the Stop button). You can see that all 6 UberBoxes keep running in sync with the UberClock. You can start/stop your own setup independent from the other participants; anyone can, but the start only ever takes place on the global downbeat so all gear -of all participants- are always in sync with each other.
Below; some of the main DFRobot components used for this project
Shown below; how the PCBs (simple vero/strip boards anyone can build) are interconnected. We only show just one UberBox connection - but the remaining five are connected identically (OUT 2 → OUT6).
The .zip below contains top and bottom view (in .pdf) of the vero PCBs shown above
The .zip below contains the sketches required to be uploaded to the DFRobot ESP32-E board (UberClock) and the Arduino Nano v3 board (UberBox).
You can use the standard Arduino IDE software to do the uploads but you might have to tweak a few settings on the IDE software to make it all happen successfully (check out the Arduino and DFRobot websites for this). I'm providing the additional libraries used below (in case you don't have these already).
If you fancy the same front panels as on the images, then work with the contents of the .zip below. It holds the .pdfs to print out as a label and stick of the front panels and CNC files so you can automatically cut the front panels.
Last but not least, some more images of the clock: