The sound of electronic music instruments plays more and more dominant role in the modern music. Many musical genres are based on special electronic sound. In my diploma thesis, I have designed and realized a drum synthesizer in embedded environment, which is able to generate electrical drum sounds.
The drum synthesizers available today are mostly based on pre-recorded sound sample playback. This playback is triggered by events generated by the sensor mounted on the electrical drum surface. It has a large disadvantage that the details of the playing disappear from the generated signal.
In my diploma thesis I have implemented a drum synthesizer which keeps the details of the playing in the generated output. My selected musical instrument was a cajon which has an Afro-Peruvian origin. Thus my solution is not only an electrical drum surface, it is an acoustic instrument. The synthesizer extends the acoustic instrument sound with electronic drum sounds.
I have analyzed sensors based on different technologies to decide which is the best for exciting the physics-based models. I have analyzed different piezo sensors, a force sensitive resistor, electromechanical microphone and an acceleration meter.
First of all, I have implemented the base units of the synthesis in Matlab. I have designed two models: one for lower sounds (like a big drum) and another one for higher sounds (like a snare drum) based on the typical cajon sounds. The basis of the physics-based drum models is the modal solution of the partial differential equation that describes the vibration of a circular membrane.
I have tested the models with signals of sensors which are mounted on my self-made cajon. Based on these tests, I have designed a preprocessing step to make a signal routing between the models according to the behavior of input signal in the frequency domain.
Based on the results of the testing in the modeling environment, I have implemented the drum sound synthesis to the floating-point Analog Devices SHARC ADSP-21489 digital signal processor and I made a touch screen based solution for the real-time parameter settings.