Go to: Title Page Chapter 1 Appendix A Appendix J Copyright Chapter 2 Appendix B Appendix K Abstract Chapter 3 Appendix C Appendix L Acknowledgements Chapter 4 Appendix D References Table of Contents Chapter 5 Appendix E List of Figure Conclusions/ Appendix F List of Tables Future Directions Appendix G List of Audio Examples Appendix H List of Programs Appendix I
I. Introduction
Wavelet analysis is interesting from a psychoacoustician's point of view because of its close relation to many logarithmically-structured perceptual scales such as pitch and loudness. As discussed in previous chapters, higher level wavelet coefficients refer to frequency bands with higher center frequencies and higher bandwidths. This "constant-Q" feature of the frequency bands of a wavelet analysis mirrors perceptual qualities well, and promises to be an important analytical tool in the field of audition.
For the composer involved with electro-acoustic music, however, constant-Q systems often mean that a composer has a more intuitive control over sound synthesis and processing parameters. This is because linear systems are generally more intuitive than logarithmic scales. Wavelets may provide a way for a composer to gain better perceptual control over parameters that are logarithmic in nature. In this chapter, a wavelet-based, time-varying, linear-interpolating, wideband equalizer with variable number of bands was implemented. This program is documented in Appendix F, and allows the user to independently specify band, time, and level equalization data for each channel in a standard AIFF soundfile. Since a control file is used to specify equalization parameters, complex manipulations can be achieved easily and intuitively.
The algorithm for wavelet-based equalization is fairly simple.
A wavelet analysis is performed, and then various levels of wavelet
coefficients are either boosted or attenuated by a certain amount
specific to that level. The inverse transform is then performed.
II. Equalization experiments for pedagogical purposes
A. Listening to individual levels of wavelet coefficients
Since the equalization program is very flexible, it allows the user to "solo" each level of wavelet coefficients in each channel of audio. In this way, the approximate frequency content of each level of wavelet coefficients can be assessed. Since the number of levels in a typical wavelet analysis is few, certain macroscopic elements are isolated in some of the frequency bands. For example, different drum sounds are sometimes effectively separated into different wavelet analysis levels. Conversely, however, speech is not well suited to wavelet analysis, as the frequency bands represented by the levels of a wavelet analysis are often too wide to resolve individual formants.
Here are some examples of how individual levels of wavelet coefficients
sound. Each original file was analyzed using a five iteration
wavelet decomposition, resulting in a total of six bands. One
file was analyzed with two sets of wavelets which had different
numbers of vanishing moments. The control files used for these
examples are provided at the end of this chapter. No normalization
was done to the output files; therefore, the outputs accurately
represent the amount of power in individual levels of the wavelet
analysis.
| CD
Track # | Audio example | Artist / Title | Description | Approximate Band characteristics of this level of coefficients at a sampling rate of 44.1kHz (given in Hz) | Control file used | Wavelet Filters used / vanishing moments (see tables 2.1 and 2.2) |
| 56 | 5.15 | Bye Bye Birdie Soundtrack / Honestly Sincere | original file | |||
| 57 | 5.16 | " | level 0 "final average"
coeffs only | 0 - 689.062 | solo.level0_of_5.eq | 6/10, 3/3 |
| 58 | 5.17 | " | level 1 wavelet
coefficients only | 689.062 - 1378.12 | solo.level1_of_5.eq | 6/10, 3/3 |
| 59 | 5.18 | " | level 2 wavelet
coefficients only | 1378.12 - 2756.25 | solo.level2_of_5.eq | 6/10, 3/3 |
| 60 | 5.19 | " | level 3 wavelet
coefficients only | 2756.25 - 5512.5 | solo.level3_of_5.eq | 6/10, 3/3 |
| 61 | 5.20 | " | level 4 wavelet
coefficients only | 5512.5 - 11025.0 | solo.level4_of_5.eq | 6/10, 3/3 |
| 62 | 5.21 | " | level 5 wavelet
coefficients only | 11025.0 - 22050.0 | solo.level5_of_5.eq | 6/10, 3/3 |
| 63 | 5.22 | Sting / Fields of Gold | original file | |||
| 64 | 5.23 | " | level 0 "final average"
coeffs only | 0 - 689.062 | solo.level0_of_5.eq | 6/10, 3/3 |
| 65 | 5.24 | " | level 1 wavelet
coefficients only | 689.062 - 1378.12 | solo.level1_of_5.eq | 6/10, 3/3 |
| 66 | 5.25 | " | level 2 wavelet
coefficients only | 1378.12 - 2756.25 | solo.level2_of_5.eq | 6/10, 3/3 |
| 67 | 5.26 | " | level 3 wavelet
coefficients only | 2756.25 - 5512.5 | solo.level3_of_5.eq | 6/10, 3/3 |
| 68 | 5.27 | " | level 4 wavelet
coefficients only | 5512.5 - 11025.0 | solo.level4_of_5.eq | 6/10, 3/3 |
| 69 | 5.28 | " | level 5 wavelet
coefficients only | 11025.0 - 22050.0 | solo.level5_of_5.eq | 6/10, 3/3 |
| 70 | 5.29 | Sting / Fields of Gold | original file | |||
| 71 | 5.30 | " | level 0 "final average"
coeffs only | 0 - 689.062 | solo.level0_of_5.eq | 5/3, 2/2 |
| 72 | 5.31 | " | level 1 wavelet
coefficients only | 689.062 - 1378.12 | solo.level1_of_5.eq | 5/3, 2/2 |
| 73 | 5.32 | " | level 2 wavelet
coefficients only | 1378.12 - 2756.25 | solo.level2_of_5.eq | 5/3, 2/2 |
| 74 | 5.33 | " | level 3 wavelet
coefficients only | 2756.25 - 5512.5 | solo.level3_of_5.eq | 5/3, 2/2 |
| 75 | 5.34 | " | level 4 wavelet
coefficients only | 5512.5 - 11025.0 | solo.level4_of_5.eq | 5/3, 2/2 |
| 76 | 5.35 | " | level 5 wavelet
coefficients only | 11025.0 - 22050.0 | solo.level5_of_5.eq | 5/3, 2/2 |
B. Viewing the contributions of individual levels of wavelet coefficients to a waveform in the time domain
Although much of wavelet analysis is based on frequency response, the dyadic self-similarity of wavelet basis functions across analysis levels is also interesting to observe in the time domain. As was demonstrated above in II.A., the equalization program provides a way of producing a soundfile which contains only one type of basis function. In this manner, one can observe how different mother wavelet functions associated with different analysis and resynthesis banks affect the time-domain audio signal.
By examining the time-domain audio signals derived in II.A on a microscopic level, the general wavelet shape associated with an individual analysis level can actually be seen directly in a soundeditor.
Figure 5.2 is a microscopic snapshot of a small portion of audio example 5.30, a soundfile produced only from the level 0 coefficients of a five-level analysis. The 5/3 analysis/synthesis bank was used, which has 2/2 vanishing moments. Note that we can clearly observe how the vanishing moments affect the reconstructed signal. As was explained in Chapter 2, a wavelet analysis with p vanishing moments can reproduce polynomials of up to order p-1. This is observed in Figure 5.2, where there is definitely a piecewise linear reconstruction of the signal.
Figure 5.3 is a microscopic view of a small portion of audio example 5.23, a soundfile produced only from the level 0 coefficients of a five-level analysis. The 6/10 analysis/synthesis bank was used, which has 3/3 vanishing moments. The added vanishing moment can be seen in this representation of the signal; instead of being a piecewise linear reconstruction of the original signal, the reconstruction has become piecewise quadratic, consistent with the p-1 polynomial reconstruction rule.
Figure 5.4 is a microscopic snapshot of a small portion of audio
example 5.31, a soundfile produced only from the level 1 coefficients
of a five-level analysis. The 5/3 analysis/synthesis bank was
used, which has 2/2 vanishing moments. Here, we can see the two-scale
time-domain similarity between the wavelet and scaling functions
of different analysis levels. Roughly speaking, the local peaks
in Figure 5.4 are about half as far away from each other as they
are in Figure 5.2, indicating that the scaling and wavelet functions
associated with level 1 are one half the size of those associated
with level 0.
Figure 5.5 is a microscopic view of a small portion of audio example 5.24, a soundfile produced only from the level 1 coefficients of a five-level analysis. The 6/10 analysis/synthesis bank was used, which has 3/3 vanishing moments. Here, we can also see the two-scale time-domain similarity between the wavelet and scaling functions of different analysis levels. Roughly speaking, the local peaks in Figure 5.5 are about half as far away from each other as they are in Figure 5.3, indicating that the scaling and wavelet functions associated with level 1 are one half the size of those associated with level 0.
This procedure can be done with other analysis/synthesis banks
with different numbers of vanishing moments. For certain analysis/synthesis
banks, one can even see the shape of the wavelets cleanly with
only the sound editor used above.
III. Equalization experiments for compositional purposes
Here are some examples of how such an equalizer might be used
for creative purposes. In all examples, a five-level wavelet analysis
was used, so that six EQ bands were available for independent
control. The same control file was used to equalize all of the
examples below, so that similar filtering can be heard over time.
Note how certain macroscopic features associated with specific
levels of the wavelet analysis of a sound are emphasized as the
equalization changes. The control file is listed at the end of
this chapter.
III. Conclusions and future directions
Although many of the equalization techniques presented were effective, both the isolation of specific wavelet levels and the blending of several wavelet levels often resulted in heavily aliased sounds. Although this may be a compositionally useful technique in itself, the flexibility predicted for such a wavelet-based equalization system was not fully realized, and the sonic results of the implemented system are not entirely successful.
Although the logarithmic property of pitch is mirrored by the constant-Q decomposition of the standard wavelet transform, the relatively small number of available levels (typically 5 or 6) makes the use of a direct parallel between pitch and wavelet analysis level too impractical.
However, further improvements to the equalization process, along with longer analysis and synthesis filters could significantly improve such an equalization scheme.
// file: time_varying.eq
// time-varying equalization example
in.aiff out.aiff 2 5 32768 percent
0 0 .05 .3
0 0 .1 .7
0 0 .15 .2
0 0 .20 .2
0 0 .25 .5
0 0 .30 .7
0 0 .35 .3
0 0 .40 .3
0 0 .45 .8
0 0 .50 .1
0 0 .55 .2
0 0 .60 0
0 0 .65 .7
0 0 .70 0
0 0 .75 .2
0 0 .80 .3
0 0 .85 .6
0 0 .90 .2
0 0 .95 .3
0 1 .05 .4
0 1 .1 .8
0 1 .15 .9
0 1 .20 1.0
0 1 .25 .35
0 1 .30 .6
0 1 .35 .8
0 1 .40 .5
0 1 .45 .1
0 1 .50 .3
0 1 .55 .3
0 1 .60 .9
0 1 .65 .7
0 1 .70 .5
0 1 .75 .2
0 1 .80 .9
0 1 .85 .1
0 1 .90 .9
0 1 .95 .2
0 2 .05 .3
0 2 .1 .3
0 2 .15 .1
0 2 .20 1.0
0 2 .25 1.1
0 2 .30 0
0 2 .35 .3
0 2 .40 .5
0 2 .45 .7
0 2 .50 .9
0 2 .55 .2
0 2 .60 .6
0 2 .65 .7
0 2 .70 .2
0 2 .75 .5
0 2 .80 .9
0 2 .85 .2
0 2 .90 .3
0 2 .95 .2
0 3 .05 .1
0 3 .1 1
0 3 .15 .1
0 3 .20 1
0 3 .25 .1
0 3 .30 1
0 3 .35 .3
0 3 .40 .7
0 3 .45 .2
0 3 .50 .6
0 3 .55 .2
0 3 .60 .9
0 3 .65 .7
0 3 .70 .6
0 3 .75 .2
0 3 .80 .1
0 3 .85 .6
0 3 .90 .2
0 3 .95 .1
0 4 .05 .9
0 4 .1 1
0 4 .15 1
0 4 .20 1
0 4 .25 .1
0 4 .30 .5
0 4 .35 .7
0 4 .40 .2
0 4 .45 .1
0 4 .50 .8
0 4 .55 .3
0 4 .60 .2
0 4 .65 .9
0 4 .70 .5
0 4 .75 .4
0 4 .80 .5
0 4 .85 .7
0 4 .90 .9
0 4 .95 1.0
0 5 .05 1.1
0 5 .1 .7
0 5 .15 .4
0 5 .20 .2
0 5 .25 .7
0 5 .30 2.3
0 5 .35 3.2
0 5 .40 2.1
0 5 .45 .1
0 5 .50 1.5
0 5 .55 .7
0 5 .60 .9
0 5 .65 .9
0 5 .70 .2
0 5 .75 1.1
0 5 .80 .8
0 5 .85 2.9
0 5 .90 3.2
0 5 .95 .2
1 0 .05 .6
1 0 .1 .2
1 0 .15 .5
1 0 .20 .2
1 0 .25 .1
1 0 .30 .8
1 0 .35 .2
1 0 .40 .1
1 0 .45 .6
1 0 .50 .7
1 0 .55 .2
1 0 .60 .1
1 0 .65 .6
1 0 .70 .8
1 0 .75 .6
1 0 .80 .3
1 0 .85 .2
1 0 .90 .8
1 0 .95 .9
1 1 .05 1
1 1 .1 1
1 1 .15 .2
1 1 .20 .6
1 1 .25 .1
1 1 .30 .9
1 1 .35 .5
1 1 .40 .2
1 1 .45 .1
1 1 .50 1.0
1 1 .55 .6
1 1 .60 .8
1 1 .65 .7
1 1 .70 .35
1 1 .75 .23
1 1 .80 .67
1 1 .85 .73
1 1 .90 .73
1 1 .95 .23
1 2 .05 .25
1 2 .1 .1
1 2 .15 .9
1 2 .20 .1
1 2 .25 .7
1 2 .30 .2
1 2 .35 .7
1 2 .40 .7
1 2 .45 1
1 2 .50 .2
1 2 .55 .6
1 2 .60 .2
1 2 .65 .6
1 2 .70 .2
1 2 .75 .1
1 2 .80 .9
1 2 .85 .9
1 2 .90 .1
1 2 .95 .2
1 3 .05 .2
1 3 .1 .6
1 3 .15 .7
1 3 .20 .8
1 3 .25 .2
1 3 .30 .1
1 3 .35 .16
1 3 .40 .74
1 3 .45 .87
1 3 .50 .34
1 3 .55 .63
1 3 .60 .53
1 3 .65 .25
1 3 .70 .16
1 3 .75 .256
1 3 .80 .867
1 3 .85 .256
1 3 .90 .87
1 3 .95 .26
1 4 .05 .876
1 4 .1 1.0
1 4 .15 1.1
1 4 .20 .5
1 4 .25 .8
1 4 .30 .1
1 4 .35 1
1 4 .40 .2
1 4 .45 .7
1 4 .50 .2
1 4 .55 .1
1 4 .60 .16
1 4 .65 .7
1 4 .70 .89
1 4 .75 .9
1 4 .80 .3
1 4 .85 .67
1 4 .90 .762
1 4 .95 .62
1 5 .05 .26
1 5 .1 .9
1 5 .15 2.76
1 5 .20 4.0
1 5 .25 1.1
1 5 .30 .1
1 5 .35 .16
1 5 .40 .87
1 5 .45 .96
1 5 .50 .23
1 5 .55 .26
1 5 .60 .16
1 5 .65 .27
1 5 .70 .276
1 5 .75 .27
1 5 .80 .17
1 5 .85 .327
1 5 .90 2.76
1 5 .95 3.3
// file: solo.level0_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 0
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 1
0 1 0 0
0 2 0 0
0 3 0 0
0 4 0 0
0 5 0 0
1 0 0 1
1 1 0 0
1 2 0 0
1 3 0 0
1 4 0 0
1 5 0 0
// file: solo.level1_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 1
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 0
0 1 0 1
0 2 0 0
0 3 0 0
0 4 0 0
0 5 0 0
1 0 0 0
1 1 0 1
1 2 0 0
1 3 0 0
1 4 0 0
1 5 0 0
// file: solo.level2_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 2
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 0
0 1 0 0
0 2 0 1
0 3 0 0
0 4 0 0
0 5 0 0
1 0 0 0
1 1 0 0
1 2 0 1
1 3 0 0
1 4 0 0
1 5 0 0
// file: solo.level3_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 3
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 0
0 1 0 0
0 2 0 0
0 3 0 1
0 4 0 0
0 5 0 0
1 0 0 0
1 1 0 0
1 2 0 0
1 3 0 1
1 4 0 0
1 5 0 0
// file: solo.level4_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 4
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 0
0 1 0 0
0 2 0 0
0 3 0 0
0 4 0 1
0 5 0 0
1 0 0 0
1 1 0 0
1 2 0 0
1 3 0 0
1 4 0 1
1 5 0 0
// file: solo.level5_of_5.eq
// equalization control file used to 'solo' the wavelet
// coefficients on level 5
// of a five level analysis
in.aiff out.aiff 2 5 32768 percent
// channel, band, time, eq percentage
0 0 0 0
0 1 0 0
0 2 0 0
0 3 0 0
0 4 0 0
0 5 0 1
1 0 0 0
1 1 0 0
1 2 0 0
1 3 0 0
1 4 0 0
1 5 0 1
Go to: Title Page Chapter 1 Appendix A Appendix J Copyright Chapter 2 Appendix B Appendix K Abstract Chapter 3 Appendix C Appendix L Acknowledgements Chapter 4 Appendix D References Table of Contents Chapter 5 Appendix E List of Figure Conclusions/ Appendix F List of Tables Future Directions Appendix G List of Audio Examples Appendix H List of Programs Appendix I