Gracenote Timing Analysis

Back in January 1995 the Great Gracenote Debate broke out on the bagpipe mailing list /newsgroup. I did a quick little experiment so see whether I play high-G gracenotes starting on the beat or ending on the beat.

I'm still very interested in studying the expressive timing of pipe music. A research lab where such things are studied is the Music Cognition Lab at the University of Nijmegen. Their approach (linking timing variations to musical structure) seems to me to be just what one would be looking for in piping, where timing is everything.

Here are some preliminary results from my investigation of timing.
This episode will deal only with high-G gracenotes and not with
strike-type gracenotes. The following theories have been proposed:

A:   All single gracenotes begin on the beat, and
     therefore "steal" time from the following note.

B:   All single gracenotes end on the beat,and therefore
     steal from the preceding note.

C:  "Lift" gracenotes anticipate the beat and steal
     from the preceding note, while "strike" gracenotes
     start on the beat, and steal from the target note.

I don't think I have enough data to clearly answer this question
yet, but since I'm not going to have much time to work on this for
a while, I thought I'd let you know the story so far.

Here's what I did:

a)   Recorded a dry bass drum sound from a drum machine on one
     track of a multi-track cassette tape.  Tempo 160 bpm.

b)   Played along on my practice chanter and recorded it on a
     different track so it was not mixed with the drum noise.

     I played 4 different patterns with 1 note per beat:
          1)   F   E   F   E   F   E   F ...
          2)   F   E   F  gE   F   E   F  gE  F ... (g= hi G grace)
          3)   B   A   B   A   B   A   B ...
          4)   B   A   B  GA   B   A   B  GA        (G= lo G grace)

     {I've only finished looking at 1 and 2 so far}

c)   Sampled the tape tracks in stereo at 20kHz.  I grabbed 8
     seconds of each pattern.

d)   Spent way too much time (sorry Fred!) writing code to do
     pitch-tracking on the chanter signal.  It turns out our
     beloved strong upper harmonics make this rather tricky since
     there are different numbers of zero-crossings per cycle
     depending on the note being played.  The idea is to measure
     the length of each and every cycle so that we can see
     precisely when the note changes.  A short-time Fourier
     transform wouldn't give good enough time resolution.

e)   Analyzed the pitch-tracks to find the start times of each
     note.  I had to do this by hand since the tracks weren't clean
     enough to devise some automatic method.  I estimate that the
     accuracy of this whole process results in getting within 5ms
     of the start times.

f)   Calculated the duration of each note just by taking the
     difference of the start times.


Here are the results for pattern 1.  At 160 bpm, 1 beat is 375ms
long.  This was done primarily to see how evenly I could play.

note    duration
    F        395
 E       354
    F        367
 E       370
    F        402
 E       356
    F        384
 E       353
     F        386
 E       349
     F        388
 E       374
     F        377
 E       358

     mean length of F: 386 +/- 11.5 ms

     mean length of E: 359 +/- 9.3 ms

So, unfortunately it looks like I was prolonging the F's even
though I was trying to play on top of every beat.  Also, when
compared to the beat times extracted from the drum track things
seemed to drift around a bit, which makes using the drum as an
absolute timing reference rather than just a tempo-setter
difficult.  This isn't necessarily a terrible problem, though.

Let's look at pattern 2 ...

    F          384
E         377
    F          349
       g            57
E         364
    F          371
E         361
    F          358
       g            39
E         368
    F          369
E         368
    F          337
       g            43
E         344
    F          387
E         370
    F          358
       g            39
E         350

    mean of regular F:  378 ms
    mean of regular E:  369 ms
    mean of pre-g   F:  350 ms
    mean of post-g  E:  357 ms
    mean of g grace  :   44 ms

Note that a pre-g F is 28ms shorter than a regular one, and a
post-g E is 12 ms shorter than a regular one.  This suggests that
the gracenote does start before the beat, but straddles it rather
than ending on the beat.  It seems to steal time from both
the preceding and following notes, but more from the preceding than
the target note.


This only represents the way I play on my practice chanter without
warming up.  Also, I didn't analyze tons of playing.  Ideally I
would like to get data from other people, on pipes, and at
different tempos.


I'll try to get to patterns 3 and 4, but prelim exams are looming ...

Ewan Macpherson (02/12/95)