P. 1
The Theory and Technique of Electronic Music - Puckette

The Theory and Technique of Electronic Music - Puckette

5.0

|Views: 1,654|Likes:
Published by The Almighty Sound
Miller S. Puckette's groundbreaking foundational work on the basics of understanding how sound and technology work. The reading can be kind of dry at times, but the amount of information and theory is nearly unparalleled. Puckette is also the creator of Max/MSP and Pure Data.
Miller S. Puckette's groundbreaking foundational work on the basics of understanding how sound and technology work. The reading can be kind of dry at times, but the amount of information and theory is nearly unparalleled. Puckette is also the creator of Max/MSP and Pure Data.

More info:

Published by: The Almighty Sound on Aug 06, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/01/2013

pdf

text

original

As suggested in Section 5.2, when considering the result of modulating a com-

plex harmonic (i.e., periodic) signal by a sinusoid, an interesting special case

is to set the carrier oscillator to 1/2 the fundamental frequency, which drops

the resulting sound an octave with only a relatively small deformation of the

spectral envelope. Another is to modulate by a sinusoid at several times the

fundamental frequency, which in effect displaces the spectral envelope without

changing the fundamental frequency of the result. This is demonstrated in

Example E03.octave.divider.pd (Figure 5.10). The signal we process here is a

recorded, spoken voice.

The subpatches pd looper and pd delay hide details. The first is a looping

sampler as introduced in Chapter 2. The second is a delay of 1024 samples,

which uses objects that are introduced later in Chapter 7. We will introduce

one object class here:

fiddle~ : pitch tracker. The inlet takes a signal to analyze, and messages

to change settings. Depending on its creation arguments fiddle~may have a

variable number of outlets offering various information about the input signal.

As shown here, with only one creation argument to specify window size, the

third outlet attempts to report the pitch of the input, and the amplitude of

that portion of the input which repeats (at least approximately) at the reported

pitch. These are output as a list of two numbers. The pitch, which is in MIDI

units, is reported as zero if none could be identified.

In this patch the third outlet is unpacked into its pitch and amplitude com-

ponents, and the pitch component is filtered by the moses object so that only

successful pitch estimates (nonzero ones) are used. These are converted to units

136

CHAPTER 5. MODULATION

r fundamental

osc~

*~

osc~

*~

osc~

*~

* 2

osc~

*~

osc~

*~

osc~

*~

* 0

* 1

* 3

* 4

* 5

<-- On/Off

*~

partials

osc~

0

carrier

.

1 2 3 4 5 6 7

0

-- partial number --

SPECTRUM

0

1

0.5

frequency

(a)

(b)

(OUT)

|

Figure 5.9: Ring modulation of a complex tone by a sinusoid: (a) its realization;

(b) a measured spectrum.

5.5. EXAMPLES

137

fiddle~ 2048

unpack

osc~

moses 1

*~

mtof

*

0.5

0.5

15

pd

pd

*~ 2

loadbang

pd looper

pd delay

on/off for original

<--and processed sounds

<-- multiplier

ring modulation

extra gain

+~

(OUT)

|

Figure 5.10: Lowering the pitch of a sound by an octave by determining its

pitch and modulating at half the fundamental.

138

CHAPTER 5. MODULATION

+~

/ 100

50

clip~ -1 1

225

*~

loadbang

50

loadbang

<-- frequency of second tone

osc~ 300

225

<-- before clipping

amplitude of sum

(OUT)

|

osc~

Figure 5.11: Nonlinear distortion of a sum of two sinusoids to create a difference

tone.

of frequency by the mtof object. Finally, the frequency estimates are either

reduced by 1/2 or else multiplied by 15, depending on the selected multiplier,

to provide the modulation frequency. In the first case we get an octave divider,

and in the second, additional high harmonics that deform the vowels.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->