tones, we can include timbre in a more flexible and faithful way. Rather than using a prescribed overtone series to model each pitch of an instrumental chord, we use specific data from spectral analyses of sampled instruments stored in SDIF files. A chord orchestrated for diverse instruments can be simulated by combining the SDIF data from these instruments. We further revise Parncutt's algorithm to treat the precise frequencies of the partials of complex tones, rather than rounding them to equally-tempered pitches. We also do not limit our calculation to 10 partials; instead we include all partial data available from spectral analysis. One reason Parncutt uses only 10 partials is that the 11th partial is poorly-approximated by semitones [3]. By avoiding equal-temperament, we eliminate this problem. Including an unlimited number of partials allows for a finer measure of the interaction of complex tones. And by using precise frequencies rather than idealized harmonics, we leave open the possibility of analyzing sounds that contain inharmonic spectra, for example bells or electronically-generated sounds. 2.3. Successive Pitch Relationships A major extension Parncutt makes to Terhardt's theory is in the consideration of successive pitch relationships. In doing this he seeks a perceptual groundwork by which we can understand existing traditions of voice leading and harmonic progression and extend them to post-tonal music. However a limitation of the algorithm is that it is designed for equally-tempered music. Such a theory would be especially useful for microtonal music, as there have been fewer studies of the progression between microtonal harmonies. By revising Parncutt's chord distance algorithm to take microtonal frequencies into account, we take advantage of a powerful feature latent in the theory. 3. IMPLEMENTATION OF ALGORITHMS 3.1. Roughness Roughness (sensory dissonance) is the beating sensation produced by the interaction of two or more components that are sensed within a certain distance in the inner ear. This distance is referred to as the "critical bandwidth" and varies with frequency. Following Parncutt [3], to calculate the degree of roughness between two pitches, we first calculate the critical bandwidth for the area around the mean frequency Web = 1.72 (fr65) (1) where fm= (fl + f2) /2. We then define the roughness of a sonority as the sum of the roughness of each pair of components n n-1 I:aj. ak g(fcb) (2) j= k a (2) j=0 k=l a3 where aj and ak are the amplitudes of the components and fcb is the distance between fi and f2 in critical bandwidths. g(fcb) is a 'standard curve'1 developed by Parncutt 2 and defined by g(fcb) = (e(b/0.25) - e(-/0.25))2, cb< 1.2 (3) 3.2. Correlation In order to measure the harmonic correlation between two chords, using the technique adapted from Parncutt, we must first adjust the chords to take masking into account. 3.2.1. Masking When two sounds lie within approximately three critical bands, the louder of the two will mask the other. Moore and Glasberg [2] define the following function for equivalent rectangular bandwidth rate (ERB-rate) or what Parncutt refers to as pure-tone height H,(f) =H log,( f +f2 +Ho (4) where f is frequency in kHz and H1 = 11.17, Ho = 43.0, f = 0.312 kHz, and f2= 14.675 kHz3. The next step is to calculate the auditory level TL(f) of each pure-tone component which is defined as the level relative to the threshold of audibility in dB (sound pressure level, SPL). This threshold, formulated by Terhardt et al. [10] is LTH = 3.64f-0-8 - 6.5e-0.6(f-3.3)2 + 10-3f4 (5) where f is frequency in kHz. From there, we can calculate the auditory level as follows TL(f) = max{SPL(f) - LTH; 0} (6) where SPL(f) is the level of f in dB (SPL) and the max function ensures that the result will not drop below zero 4 The degree to which one pure-tone component of a sonority masks another is defined by ml(f, f') = TL(f') - kMHp(f') - Hp(f) (7) where kM is the masking gradient which, should be set to a value between 12 and 18 dB. Next, because one maskee could be masked simultaneously by several maskers, we must calculate the overall masking level of a given puretone component. ML(f) = max{20 loglo E 10ml(ff')/20; 0} f1f' (8) 1 Parncutt's standard curve approximates the experimental data collected by Plomp and Levelt [5] 2 This curve is not published, but found in the C code available for download from Richard Parncutt's website: 3 These parameters were chosen by Moore and Glasberg [2] by fitting experimental ERB estimates using non-linear regression. 4 In Parncutt's work, this formula is TL(P) = max{SPL(P) - LTH; O} where P is the pitch category in semitones. We have substituted f (frequency) for P here and the formulas to follow. 0
Top of page Top of page