[sdiy] Percussion MIDI controller - again
Ian Fritz
ijfritz at earthlink.net
Sun Mar 27 21:35:16 CEST 2005
Hi Ingo!
Let's see ... the main peaks at one transducer should be separated by the
time it takes a sound wave to travel to the other end of the tube and back,
no? Sound in solids travels about 5mm/us, so a 2m tube should ring at
about 0.8ms. Sound roughly like what you are seeing? You could probably
help things by damping the tube so it doesn't resonate. Also, you could
delay the echos by extending the tube beyond its operating length.
Your best bet for detection might be to simply look for the first arrival
of the excitation signal: amplify the signal by a large amount, set a
threshold somewhat above the noise and detect the first crossing of the
threshold using a comparitor followed by a pulse stretcher (to keep the
final output from further switching during the time the excitation rings
down).
I believe this should work, provided the threshold is high enough. The
question is whether you get a musically useful dynamic range this way. You
might want a second circuit to rectify the pulse and measure its peak
envelope, if you also want amplitude information.
Don't give up! You should be able to get this idea to work.
Ian (who spent 10 years doing pulse-echo ultrasonic measurements in solids)
At 08:11 AM 3/27/2005, you wrote:
>I found a piece of PVC tube, two metres long, and hot-glued one piezo disk
>to either end, at the sides of the tube. I built two little preamplifier
>boards (TL072, only one amp used) with a gain of 10 to transmit the signal
>with low impedance, and attached these to the tube close to the piezos.
>Their output signals are high-pass filtered (simple RC, 10k/10nF) and
>offset by about +0.7 volts and fed into a 74HCT14 Schmitt Trigger. I
>intend to feed the output of the Schmitts into a microprocessor that
>calculates the time difference.
>
>The output signals of the preamplifiers look just like dampened
>oscillations, no surprise here. The big problem is, especially when the
>tube is hit far away from the receiving piezo, that the first peak of the
>signal isn't always the largest one. I think this is due to dispersion
>(correct term here?), i. e. parts of the signal are travelling with
>different speed than the rest. Thus it can happen that the first peak
>triggers the Schmitt, or that a later peak does this, Since the time
>between the peaks is in the same order of magnitude as the delay (fraction
>of a millisecond to a few milliseconds) it seems impossible to detect the
>position of the hit by the delay between the two signals.
>As this is meant to be used as a percussion controller, of couse various
>signal levels are possible, thus with a fixed threshold I can never tell
>which of the peaks caused the trigger.
>
>Any ideas how to solve this?
>I thought I could build analog peak detectors and use the peak with
>maximum amplitude, but if these are two peaks almost of the same
>amplitude, I'm lost again.
>
>Ingo
More information about the Synth-diy
mailing list