This report was done in the context of the final project for the MUMT 306 class at McGill university, during Fall 2024.


Introduction

The goal of this project was to enable a user to control the tempo of a midi accompaniment, without the user having to use their hands. This was designed with the intent of the user being the soloist, and have expressive control over their accompaniment.

The project is divided into both a digital implementation and a hardware implementation. The hardware implementation makes use of an LCD screen and a rotary switch for information and mode-switching, along with pedals for beats-per-minute (BPM) input. The digital implementation is in C++ and uses the usbMidi Teensy library to send MidiClock ticks and control the timing of midi clips.

IMG_0970.jpeg


The final product


Table of Contents


Objectives and Challenges

The objective of this project was to let a soloist have the control of the tempo on-the-go of their accompaniment, to allow for dynamic expressivity without requiring any prior choice our outside input.

Here were my completion condition:

Multiple challenges were encountered during the creation and implementation.

The first was the realization that the Arduino was not the best fit for this project. I switched to Teensy for its better refresh rate, processing power and higher number of digital pins, but mainly for it’s well implemented midi library and program [1]. This allowed for fast prototyping and testing.

Then, the beat-by-beat implementation originally planned had to be delayed by a single beat, to enable the midi-clock implementation (more on this below) to work properly. The midi clock was not able to set the correct tempo without knowing the current BPM, so this approached had to be taken if we were to use this method to sync.

Also, the 3D design of the custom box proved quite complicated, as discussed below. This meant a lot of tries and iterations to get it right. Even during the final presentation on December 3rd 2024, the box was not final and could still not quite close.