Replies: 6 comments 39 replies
-
Beta Was this translation helpful? Give feedback.
-
Naturally I'm interested in this because if you can accurately locate the position of the strike, you can do far more than simple positional sensing. You could, for example, split the drum head (or a suitably modified practice pad) into multipe zones for different sounds. I don't fully understand your plots though. I created a simple simulation in octave to compute the combined piezo signal based on simple time delays. It's simple because it assumes that the wavefront propagates from the strike point to the piezos without a change in amplitude or shape. However, I don't know what the impact looks like nor what the propagation speed of the mesh is. So I eyeballed both: If the speed of propagation is high, then the peaks are too close together to resolve separately. In fact, they overlap and combine constructively to produce a big signal. I had the speed of propagation really low to get separate peaks in the plots above. Only 10m/s. This is unrealistic. The chances are good that the speed of propagation will be higher than the speed of sound in air. I saw one reference that a mylar drum head speed of propagation is 1500m/s. At that speed there are very few samples of delay between the piezos even at 48kHz. To improve the model you could take some piezo recordings. Use one piezo as a reference and hit directly on top of it. We can measure the propagation time from the recording and using the distance between the piezos we can calculate the propagation speed. Can also fine tune the fake impact to look more like what the piezo sees. In fact, we could just subsitute a real recording. Here is the octave code 3piezo-position.zip. I don't know if it's useful to you. You can modify it for two piezos if you want. Should make it easier to test any algorithms with. However, the problem with edge mounted piezos is that the impact wave also travels to the edge of the rim and then reflects back. So at certain strike positions the reflection may reach the piezo before the main impact wave does. One way to deal with this might be to dampen the mesh and I know various edrum manufacturers do this differently. I found this (video)[https://www.youtube.com/watch?v=2b89V7kAbZ0] on youtube on how stuffing a pillow in the drum does the same thing for an edge mounted trigger. It also makes the mesh drum head less bouncy. I tried this out breifly on one of my toms (no triggers) and it feels much better than a single ply mesh head. |
Beta Was this translation helpful? Give feedback.
-
Here is a status update: Solving the double trigger issueTo overcome the issue that we can get double triggers in case we do a peak detection on each sensor separately, I have now introduced a fourth channel which is the sum of all three sensors. I now perform a peak detection on that sum signal which eliminates the double trigger issue. The additional individual sensor streams, I only use for positional sensing and hot spot elimination. That seems to work ok. One draw back of that algorithm is that since I have to wait for the detected peaks of the individual sensors, I have to introduce some additional delay (in the order of 2 ms). Determine the strike position on the mesh head based on the measured time differences of the detected peakIt turned out that the problem of finding the position based on measured time differences is a classic Hyperbolic Navigation problem. This is, e.g., utilized in the LORAN , Long Range Navigation: quote: "The time difference between receptions of pulses from several stations establishes a hyperbolic position line, which may be identified from a LORAN chart. A fix can be obtained by drawing two hyperbolic position lines." |
Beta Was this translation helpful? Give feedback.
-
corrados introduced me to the problem. |
Beta Was this translation helpful? Give feedback.
-
I have created a short Youbube video today, showing the latest algorithm performance. |
Beta Was this translation helpful? Give feedback.
-
I'm really interested in this. |
Beta Was this translation helpful? Give feedback.
-
The Roland PDA120LS mesh head pad is equipped with three piezo sensors which are evenly distributed close to the edge of the pad. The original wiring of these piezos is to combine their signal into one trigger output signal, i.e., Roland does not evaluate each piezo signal separately.
Since Roland uses multiple piezo sensors in their PD-140DS digital snare pad to improve the positional sensing and also eliminate the hot spot behavior of center mounted piezo sensors, it makes sense to try to explore this possibility for Edrumulus as well.
To output the individual piezo sensor signals, I have disconnected two of the piezos from the Roland PCB and extracted the signals to a separate audio jack connector:
On the Git branch dual_meash_head_trigger_tests, I have done a simple test where I run the complete Edrumulus peak detection algorithm on both signals and did a comparison of the detected first peak positions:
In this example, I have varied the position of the hit on the mesh head by moving from one edge to the other and I have done it four times with rotating 90 degrees further for each iteration.
It is clearly visible that even without interpolation (which would improve the precision of the peak detection), the time difference in samples is a clear indicator of the position of the strike on the mesh head.
Beta Was this translation helpful? Give feedback.
All reactions