The sense of rhythm is a fundamental characteristic of every great musician. Improving it is crucial to hone your listening capabilities and overall understanding of music.
Master your perception, and overall feeling of the rhythm beats turns out to be as important as the technique and precision on the instrument.
Being able to juggle through multiple rhythms makes you aware of where you are and what to do while playing with other musicians. It enhances your creativity and unpredictability when writing music.
Feel the (poly)Rhythm is a game for training the user to feel and play polyrhythms correctly. Is suitable for every musician: who wants to test his knowledge and familiarity or wants to learn new methods to broaden his creativity.
There are two game modes:
-The first requires to match only one of the two rhythm beats of the polyrhythm.
It is indicated to train your sense of tempo and consistency, learning how the rhythms are distinctly related to each other.
-The second requires to match both the rhythm beats.
It requires more precision and sensitivity to master the feeling of each polyrhythm.
Here follows a Video Demonstration on how to play.
Instructions:
-The user has a potentiometer and three physical buttons (a, b and c) to play the game and control its settings while playing.
With Button a (click with right-hand) the user follows and try to match the main rhythm beat of the polyrhythm. With Button b (click with left-hand) he follows and matches the secondary rhythm beat. (e.g. for a right-handed player, on a 3:2 Polyrhythm, the right hand follows the 3, main beat, and the left one follows the 2, secondary beat.)
-On the startup, the potentiometer is used to navigate through the various settings (highlighted by the white circle when selected). One-click of Button c is used to confirm the chosen setting whilst two clicks to close the game window and stop the game.
–After the confirmation of the selected setting, the potentiometer is used to change the properties of the specific setting. One-click of Button c is used to confirm the property change, and two clicks to go back to the settings choice.
Controllable Settings:
–Invert Rhythm Beats: invert the buttons associated with the rhythm beats, to play the opposite configuration without crossing the hands.
“b:a” default configuration “secondary:main”
“a:b” inverted configuration “main:secondary”
–Change BPM(ms): choose the tempo in ms assigned to the main rhythm beat, thus changing the secondary accordingly.
–Change the polyrhythm: choose the polyrhythm to match between 8 options (3:2, 4:3, 5:4, 5:3, 5:2, 7:4, 9:4, 8:7).
–Mute Beats: choose which beat to mute and play the game with an added difficulty.
Prototype Design
The first step in the prototype design was to build the circuit.
I connected the micro:bit microprocessor to a breakout board that is connected through jumper wires to all the electronics on the breadboard: two resistors (10 ohm and 33 ohm) a MIDI connector, a push button and a potentiometer.
The connections are set as follows.

MIDI connector (MIDI Out):
-the shield pin to the 0V pin, connecting the MIDI connector to the ground;
-the voltage reference line pin to the 3V pin, with the 33ohm resistor between them, connecting the MIDI connector with the power needed to work;
-connecting the data line pin to pin 0, with the 10ohm resistor between them, setting pin 0 to pass the MIDI data from the microprocessor to the MIDI connector.
Push button:
-one terminal to 0V pin, connecting the button to the ground;
-the other terminal to pin 1, setting pin 1 to pass the pushing action to the microprocessor.
Potentiometer:
-top terminal to 0V pin, connecting the potentiometer to the ground;
-bottom terminal to 3V pin, connecting the potentiometer the power needed to work;
-the middle terminal to pin 2, setting pin 2 to pass the potentiometer values to the microprocessor.
Link to the GitHub page with the micro:bit code and the PD patch with in-depth analysis and comments.
PD patch Design
After the design of the prototype circuit and programming the microprocessor to output midi data through the connector. The central part of the design process was accomplished on PD writing the patch of the game.
The first step was to understand how to receive messages from the microprocessor; how to route them to perform different actions in the patch.
Then I started to test how to transcribe efficiently in a PD patch the game structure. The player hears the distinct beats of the polyrhythm and presses the associated buttons to match it. So, I first designed how to reproduce the polyrhythms beats and the audio output the listener would have heard.

Then I designed a way to have the code to understand the time delay between two inputs, and the timer function in PD came in handy. An important design choice was to understand the threshold under which the player would have been earned a “good timing” score.

Next, after having obtained a basic working structure of the game, it was the time to design the user interface (UI).
I used GEM (Graphics Environment for Multimedia) extension library to build the UI. I first studied the different objects from the library, and later I decided to compose the UI in one window only. I aimed to have compact visual feedback with simple controls. The GEM objects used show the player if he is keeping the right consistency of tempo and precision in real-time.

The more the player keeps matching the polyrhythm, the more the squared lines colour will change from red to green.
The COVID-19 lockdown regulations during this period had me the necessity to stick with the only electronic components from my first prototype. This design limitation pushed me to plan the navigation controls employing one button and one potentiometer only.

Button “a” and button “b” were assigned to match the polyrhythm beats, so I used button “c” and the potentiometer to navigate through the different settings. After accomplishing to write an efficient way to use button “c” to confirm (with one click) or deselect (with two consecutive clicks) the chosen setting, I started to improve the overall user experience.
As the first player of my game, I tried to correct the flaws and inconsistencies in the code and to understand any additional settings needed to ensure a better experience. I choose to differentiate two game modes that are meant to meet distinct user demands or level of expertise. One requires the player to match only one of the two beats. It is finalised to train the sense of tempo and consistency while learning how the rhythm beats are distinctly related to each other. The other requires to match both the rhythm beats, and it is finalised to test the player precision and sensitivity, to hone its feeling of each polyrhythm.

Regarding the controllable settings, first, I added the ones for the Polyrhythm choice (1) and the tempo (ms) controls (2). Then I added the visual feedback of the polyrhythm beats to match (3). Consequently, I also added the possibility to mute the chosen rhythm beat of the polyrhythm (4). For last, I added the option to invert the buttons associated with the rhythm beats (5), to give the user the possibility to play the opposite configuration without crossing the hands.
Further adjustments on the patch would add more control over the difficulty settings, for example, adjusting the threshold below which the user input matches the rhythm beat. Other significant improvements, still not achievable because of COVID-19 lockdown, would involve the implementation of multiple sensors that could substitute the buttons to match the rhythm beats. These would enable the player to use the system combined with several musical instruments, thus to enrich the training and learning experience on their own instrument. Or the possibility to connect any MIDI instrument, receiving data from them and send the data directly to the game patch. Having various alternatives to acquire signal to send to the game patch, it could transformed into a complete rhythm training system suitable for any music player.
Market Analysis
Having a closer look at the market of musical software/apps for training rhythm; there are some good rated apps on the android and iOS store, two of them are up to date [1][2][3]. These apps have numerous settings to personalise in-depth the training experience. They work receiving inputs on the touchscreen of the device. However, they cannot connect external devices or collect midi data.
An example that utilises physical hardware combined with a training tool is the RMP-5 from Roland [4]. This system combined a single pad with a portable built-in tutor for simple rhythmic pattern practising. Another example always from Roland, still a little bit old, is the DT-1 V-Drums Tutor Software [5][6]. It offers a range of exercise and songs to play along with the Roland electronic drum set, receiving midi data from it. Similarly, but for a different target of users, the Guitar Hero and Rock Band video game series, especially using the electronic drum kit, provided an exciting way of learning some basics of the played instrument. All of these valid practice and training systems still have some limitations. Whether we are talking about the apps, the Roland systems or the rhythm video games, they are designed to be strictly linked to their hardware device. Except for the smartphone apps, all of the other are out of date, not supported or no longer for sale.
Modern devices that with their numerous positive reviews show a particular interest of the musicians target on the rhythm related innovative technologies are the Soundbrenner Pulse [7] and Core [8]. A kind of smartwatches that are meant to change the old-fashioned way of conceiving the metronome. The beats are instead sent to the player as vibrating pulses.
Summing up, looking back at the market of the software and hardware systems interested in the subject of music rhythm, we notice the lack of a tool capable of meeting multiple needs. To combine training with a more sophisticated multi-sensorial feedback experience that is not strictly related to a limited piece of hardware. Further investigations on the project design are determined to improve the training software (PD patch) and to widen the possibilities of connecting the microprocessor with more sensors and devices, with the added opportunity to make it a multiplayer experience.
More industry examples
–BodyBeat Pulse Solo
–Zildjan Gen16 “Direct Source” Pick-Up
–Zildjan Gen16 Acoustic Electric Cymbals