This is an old revision of the document!


Stroke Analysis

In this section an analysis of the kick drum mallet movement is performed using a high speed camera, a tiny Qt application and some basic vector math.

Two types of analysis are performed:

  • A single hard kick drum stroke.
  • A series of strokes at high tempo.

These two types of strokes are the result of very different playing styles and should cover the most basic uses of the kick drum in metal music.

The experiment was performed on an Axis Longboard pedal only, but should for good measure be performed on other types of pedals too.

A movie was made with 200fps and the 10-20 frames containing each of the two stroke types were subtracted. A couple of examples can be seen here (click to enlarge):

Note the white dots on the center-of-axis as well on the mallet. These were added in order to be able to identify their exact position in the frame.

Single stroke:
Pos[  0]:  ( -255,  391)  len: 466.80px  angle: 0.000000  anglediff: 0.000000 anglespeed: 0.000000 dgr/s 
Pos[  1]:  ( -247,  394)  len: 465.02px  angle: 1.027597  anglediff: 1.027597 anglespeed: 205.519334 dgr/s 
Pos[  2]:  ( -235,  405)  len: 468.24px  angle: 2.987024  anglediff: 1.959427 anglespeed: 391.885459 dgr/s 
Pos[  3]:  ( -210,  420)  len: 469.57px  angle: 6.546291  anglediff: 3.559267 anglespeed: 711.853364 dgr/s 
Pos[  4]:  ( -176,  440)  len: 473.89px  angle: 11.309932  anglediff: 4.763642 anglespeed: 952.728338 dgr/s 
Pos[  5]:  ( -134,  458)  len: 477.20px  angle: 16.803111  anglediff: 5.493178 anglespeed: 1098.635630 dgr/s 
Pos[  6]:  (  -74,  480)  len: 485.67px  angle: 24.347241  anglediff: 7.544131 anglespeed: 1508.826102 dgr/s 
Pos[  7]:  (   -6,  491)  len: 491.04px  angle: 32.411225  anglediff: 8.063984 anglespeed: 1612.796717 dgr/s 
Pos[  8]:  (   73,  493)  len: 498.38px  angle: 41.534099  anglediff: 9.122874 anglespeed: 1824.574854 dgr/s 
Pos[  9]:  (  146,  480)  len: 501.71px  angle: 50.029355  anglediff: 8.495256 anglespeed: 1699.051165 dgr/s 
Pos[ 10]:  (  232,  451)  len: 507.17px  angle: 60.333194  anglediff: 10.303839 anglespeed: 2060.767896 dgr/s 
Pos[ 11]:  (  240,  446)  len: 506.47px  angle: 61.396774  anglediff: 1.063580 anglespeed: 212.715922 dgr/s 
Pos[ 12]:  (  229,  452)  len: 506.70px  angle: 59.979810  anglediff: -1.416964 anglespeed: -283.392753 dgr/s 

A plot of the angle velocities reveal a rather 'jaggy' picture:

Stroke sequence:
Pos[  0]:  ( -381,  215)  len: 437.48px  angle: 0.000000  anglediff: 0.000000 anglespeed: 0.000000 dgr/s 
Pos[  1]:  ( -370,  236)  len: 438.86px  angle: 3.095041  anglediff: 3.095041 anglespeed: 619.008128 dgr/s 
Pos[  2]:  ( -356,  267)  len: 445.00px  angle: 7.433667  anglediff: 4.338626 anglespeed: 867.725183 dgr/s 
Pos[  3]:  ( -331,  304)  len: 449.42px  angle: 13.129037  anglediff: 5.695370 anglespeed: 1139.074084 dgr/s 
Pos[  4]:  ( -298,  346)  len: 456.64px  angle: 19.826380  anglediff: 6.697343 anglespeed: 1339.468612 dgr/s 
Pos[  5]:  ( -255,  389)  len: 465.13px  angle: 27.317846  anglediff: 7.491466 anglespeed: 1498.293157 dgr/s 
Pos[  6]:  ( -203,  425)  len: 470.99px  angle: 35.032433  anglediff: 7.714587 anglespeed: 1542.917345 dgr/s 
Pos[  7]:  ( -144,  458)  len: 480.10px  angle: 43.110075  anglediff: 8.077642 anglespeed: 1615.528448 dgr/s 
Pos[  8]:  (  -78,  483)  len: 489.26px  angle: 51.390233  anglediff: 8.280159 anglespeed: 1656.031738 dgr/s 
Pos[  9]:  (  -14,  494)  len: 494.20px  angle: 58.940436  anglediff: 7.550203 anglespeed: 1510.040583 dgr/s 
Pos[ 10]:  (   54,  496)  len: 498.93px  angle: 66.777144  anglediff: 7.836708 anglespeed: 1567.341558 dgr/s 
Pos[ 11]:  (  110,  492)  len: 504.15px  angle: 73.166538  anglediff: 6.389394 anglespeed: 1277.878850 dgr/s 
Pos[ 12]:  (  162,  483)  len: 509.44px  angle: 79.105414  anglediff: 5.938875 anglespeed: 1187.775047 dgr/s 
Pos[ 13]:  (  198,  468)  len: 508.16px  angle: 83.495869  anglediff: 4.390456 anglespeed: 878.091137 dgr/s 
Pos[ 14]:  (  216,  464)  len: 511.81px  angle: 85.526559  anglediff: 2.030689 anglespeed: 406.137879 dgr/s 
Pos[ 15]:  (  210,  467)  len: 512.04px  angle: 84.776208  anglediff: -0.750351 anglespeed: -150.070120 dgr/s 

The graph of these angle velocities show a picture rather more 'smooth' than the one rendered from the single stroke:

Conclusion

The maximum angle velocity was found in the single stroke and was 2061 degrees per second. That the maximum angle velocity should be found in the stroke type is not surprising since a single stroke is the result of the hardest foot impact on the pedal.

If we assume the target latency to be at most 1ms and we assume that the software is responding in the area of microseconds we can estimate the target ADC resolution.
Lets start by pointing out that since the video framerate was 200fps each frame represent a state in 5ms intervals; ie. we are looking for something around at least 5 times more accurate.

The single stroke took 11 frames in total which is 55ms and duriong this time the mallet moved 61.4 degrees, resulting in a minimum resolution of 1.12 samplings per millisecond.

However, if we look at the diff in the last two velocities before the impact was 10.3 degrees in 5ms it is evident that the minimum resolution should be much higher, namely 2.06 samplings per millisecond.

Earlier studies performed with a shaft encoder showed that approximately 600 sampling points during the 61.4 degrees we sufficient, resulting in a upper-bound resolution of 92 sampling per millisecond.

strokeanalysis/stroke_analysis.1359900374.txt.gz · Last modified: by deva
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0