[LAU] midi drum pad project

Joan Quintana joan_quintana at yahoo.com
Sun Nov 22 08:06:02 EST 2009


> hello,
> 
> I am working on a project to build a position and velocity
> sensitive midi drum pad. The idea is to make a pad which can
> tell where you have hit it in two dimensions, as well as how
> hard, and then use these 3 parameters to synthesise a sound
> which varies according to the position of the strike on the
> pad.
> 
> So far I have built a prototype pad which is looking
> promising. It consists of a 30 cm square aluminium sheet
> with piezo transducers under each corner. Each sensor sits
> on top of a small circle of closed cell plastic foam, which
> is in turn mounted on a plywood base. The sensors are hooked
> up to an arduino board, with firmware which detects when a
> signal has been received, measures the strength of the
> signal from each piezo, and sends the signals from each
> piezo to a computer over its USB cable.
> 
> This part of the project is working well so far - I have
> found that the total of the signals from each sensor is a
> good measure of the velocity of the strike, and that the
> share by which each of the sensors contributes to this total
> remains pretty stable in a characteristic pattern for
> different points on the pad, which hardly varies when you
> hit the pad harder or softer.
> 
> The next thing to do is find a way to map the series of 4
> sensor readings coming in from the pad into midi events
> representing the position and velocity of each strike.
> Velocity is easy - it's just the total value from all
> sensors - but mapping the 4 readings into an x-y position
> looks harder, and I thought I would ask to see if anyone has
> any suggestions on how to go about it before I go any
> further. My thought at the moment is to use an approach
> based on least-squares curve fitting and lookup tables. I
> have some ideas about how I would go about this, but it
> looks complicated (and probably computationally slow), so it
> would be good to know if anyone has any other suggestions.
> 
> I have done some preliminary testing and measured the
> response at a series of 9 points in a square grid on the pad
> surface. The results from this are in the attached
> spreadsheet (open office format). The pattern that comes out
> from this is that each sensor responds strongest when the
> strike is in its own corner, and weakest in the diagonally
> opposite corner. But the response of each sensor is
> different, and doesn't vary in a linear way according to the
> position of the strike, so I need some kind of mapping
> algorithm which takes account of this.
> 
> Thanks,
> 
> andy
> 


Very interesting.

I'm also interested in this area, nothing to show at the moment. I'm working with arduino, 

great possibilities!!

I don't understant if you want to map different areas from your surface to different 

instruments (cymbals, tom,...) or something different...

In theory, if you have the strength of each signal independent, it is possible to calculate 

the (x,y) position, no?

With arduino you have two posssibilities: 

1) to build a midi controller itself: the arduino sends the midi messages and you need just a synthesizer to produce sound. It's a firmware solution.
2) the software solution. You detect the signal in the usb port, and you need to program a little (or big) application to convert you signals to midi notes (or anything else that produces sound). In this case, I use Midishare, that for me is fantastic. There is already one year that I read the posts in this mailing list, and nobody speaks about midishare... I miss something? I there a better way to do that?

Joan Quintana




      



More information about the Linux-audio-user mailing list