Hi All,
The final blog is here about my instrument "KEMET Music Pad" or "Music Surface Kit"
Introduction:
When you clap with hands we can hear a sound, it can be turn into music based on the variation , vibration and velocity. Its clearly says
instruments are not really required to make any music. I remember those days where i used to make some sounds on our school desk/table.
Today i have the vibration sensor which outputs can be used to produce some actual instrumental music with Apple's GarageBand.
Blocks:
This blocks shows the overall concepts of this KEMET Music Pad,
The BLE baseboard has the implementation of BLE GATT Server with custom service for sending MIDI data over Bluetooth. To know more details about
MIDI frame format check here. AFE data is read using periodic timer and Vibration sensor is captured with GPIO interrupt and converted into pulse count.
Based on the pulse count the velocity of the music is adjusted. Not used any FFT approach here to make it very simple.
- The header and timestamp default value is 0x80,
- Status byte is to ON/OFF the playing.
- Midi data contains the General MIDI keys, for more details check here
uint8_t drum_1[8][4]= {{36u,37u,38u,40u}, // Bass Drum 1, Side Stick, Acoustic Snare, Electric Snare
{41u,36u,45u,44u}, //Low Floor Tom, Bass Drum 1, Low Tom, Pedal Hi-Hat
{40u,48u,37u,51u}, //Electric Snare, Hi Mid Tom, Side Stick, Ride Cymbal 1
{38u,39u,42u, 49u}, //Acoustic Snare, Hand Clap, Closed Hi Hat, Crash Cymbal 1
{60u,61u,64u,66u},
Tools Used:
For development purpose i have used below tools,
1. ModusToolbox - for CY920819 Kit BLE GATT Implementation
2. PSoC Creator - AFE Shield board
How it works:
There is two working mode, Mode 1 we can operate this without Vibration sensor , just tap on the CapSense button to product the music.
Another mode is with vibration sensor. In this mode2 we use CapSense proximity to detect the hands which is closer to the music kit.
As per the Note1 two hand keys are handled with two hands. The CapSense buttons is ask as music picker , we can pick any of two music for
two hands on the queue order. When user hits the surface, the baseboard sends the midi command over BLE. Thease midi commands are
captured by the Apple IOS Garageband app and its play it on the mobile. In order to keep the BLE connection active its mandatory to use
connection interval between 10 to 15ms.
The source code of this project will be found here
Checkout the working video demo here and leave your thoughts.
Conclusion:
It's kind of an experiment I did for music generation through vibration. This can be extended to good prototype design with multiple vibration sensors. Using the efficient software and FFT analyses will take this experiment into the next level for designing music pads.
Top Comments