copyright © 2011 by denny lin1 computer music synthesis chapter 7 based on “excerpt from...

32
Copyright © 2011 by Denny Lin 1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Upload: robert-palmer

Post on 25-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 1

Computer Music Synthesis

Chapter 7Based on “Excerpt from Designing Sound”

by Andy FarnellSlides by Denny Lin

Page 2: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 2

Pure Data essentials

• The following is a collection of patches that implement essential concepts used for mixing, reading and writing files, and sequencing– 7.1 Channel strip– 7.2 Audio file tools– 7.3 Events and sequencing– 7.4 Effects

Page 3: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 3

7.1 Channel strip

• These patches consist of various mixer controls:– Signal switch– Simple level control– Log law fader– MIDI fader– Mute button– Panning

• Linear, square root, cosine, and MIDI panner

– Cross fader– De-multiplexer

Page 4: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 4

Signal switch and direct level control

• Both of these patches control audio levels by multiplying the audio signal input

• These controls are prone to clicks and zipper noise, which is caused by sudden level value changes on an audio block boundary

Page 5: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 5

Log Law Fader

• Sliders are linear (“lin”) by default. Can be changed to logarithmic (“log”) in the slider’s properties

• Half of the slider’s output range is compressed into the final ten percent of the movement range

Page 6: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 6

MIDI data scaling

• MIDI controller messages are generally linear signals in the range of 0 to 127

• Can be normalized by dividing by 127, or multiplying by 0.0078745

• Normalized output may be:– scaled to a log curve– multiplied by 100, and

converted to decibel scale via the dbtorms object (see fig. 7.6)

Page 7: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 7

MIDI Fader

• The ctlin object connects the MIDI fader patch to an external MIDI device

• Only volume messages from channel 1 can control the spigot

• MIDI message is normalized (between 0 and 1), and transformed to an audio signal

• 2Hz low-pass filter used to smooth out fader

Page 8: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 8

Mute Button and Smooth Fades

• Slider value (0 to 100) is in decibel scale

• Fader value is stored in cold inlet of * object

• Left inlet of * object gets inverted value of toggle switch

• Message data is transformed to audio signal and low-pass filtered to smooth the fader

Page 9: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 9

Panning

• The purpose of pan control is to place a monophonic sound source within a listening panorama

• Different from balance, which places a stereo sound source

fig. 7.10: Linear, square root, sine/cosine panning laws

Page 10: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 10

Linear Panner

• Consists of two volume controls, one for each channel (signal source is monophonic)

• Fader smoothing achieved by converting messages to audio signal, and low-pass filtering

• Cold inlet control directly alters left channel output

• Right channel is controlled by the complement of the left channel control value

• Problem: When a signal amplitude level of 1 is sent, the perceived loudness at each channel is halved

Page 11: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 11

Square Root Panner

• Similar to linear panner• Takes the square root of

control signals to produce panning that follows an equal power law

• Has a 3dB amplitude increase at the center position

• Problem: The square root curve is perpendicular to the x-axis when x is close to 0 and 1. The sound in one of the channels suddenly disappears at the slider’s extreme ends

Page 12: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 12

Cosine Panner

• The curve makes a 45 degree angle approach at the edges

• Cosine and sine are easier to compute than square root

• Tends to mimic placement of sound source on a circle

• Problem: The response around center position not as desirable as square root panner

Page 13: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 13

MIDI Panner

• Combines the MIDI fader (see fig. 7.5) with a cosine panner

• Pan information is sent to MIDI controller number 10 (64 is center position).

• Patch only responds to pan information on channel one

Page 14: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 14

Cross Fader• Used to smoothly transfer from

one sound source to another by mixing them to a common output

• Two inlets are used for signal sources

• Third inlet controls the ratio of the mixture

• Can be used to control proportion of reverb effect, or to cross fade between two tunes

• Constant power fading versions using sine and square root functions are sometimes better

Page 15: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 15

De-multiplexer

• Signal source selector to pick one out of several inputs to be routed to the outlet

• A number at the inlet selects and bangs the corresponding Boolean message list to the unpack object

• The signal~ and 80Hz low-pass filter objects are used to remove clicks

Page 16: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 16

7.2 Audio file tools

• The following example patches can be used to record and playback .WAV or .AIFF files:– Monophonic sampler– File recorder– Loop player

Page 17: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 17

Monophonic Sampler• Abstraction used to record and

play a few seconds of audio• Sounds are recorded into a table

that stores 88200 samples (2 seconds, given 44100 samples per second)

• First inlet gets signal• Second inlet controls the gain

(clicks are removed with signal and low-pass filter)

• A bang on the third inlet records the signal into the table

• A bang on the fourth inlet plays back the recording to the outlet

• Sampler can be used by connecting an adc~ input object, a gain slider, bang buttons to control record and playback, and a dac~ output object

Page 18: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 18

File Recorder • Fixed length file recorder

abstraction• Takes the recording length as first

argument (sent to $1), and directory housing the file as second argument (sent to $2)

• Uses the writesf~ object which takes the signal, and three commands: start recording, stop recording (after delay of $1 ms), and name of file to write

• A counter tracks the number of times the file recorder was run, and appends the number to the filename via the %d

• A bang message is sent to the done outlet when the recording has ended. Recording is stopped by the delay object

Page 19: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 19

Loop Player• Use this abstraction to play a .WAV

or .AIFF file endlessly• The openpanel object provides a file

dialogue to select a file to play• The pack object takes the filename

and the $0-a symbol as $1 and $2 items in the read message

• The soundfiler reads the sound file into the $0-a table. When complete, the number of bytes read is used to trigger a bang message to the tabplay~ object

• When done playing, the right outlet of tabplay~ sends a bang that is routed via spigot to trigger the tabplay~ object to repeat

• A zero received on the right inlet stops the spigot object from re-triggering the tabplay~; a one received on the right inlet triggers a bang to play the sound file

Page 20: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 20

7.3 Events and sequencing

• The following example patches create time, event, and sequence triggers:– Time base– Select sequencer– Partitioning time– Dividing time– Event synchronized Low Frequency Oscillator (LFO)– List sequencer– Text file control

Page 21: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 21

Time base• This time base abstraction

accepts beats per minute• The control inlet activates the

metro object, and resets the internal counter whenever the time base is stopped

• The second inlet takes beats per minute

• The third inlet takes the number of beats per measure (2, 3, 4, 6, etc)

• The fourth inlet takes the swing percentage, multiplied by the number of beats per measure, sent to the delay object before the counter increments

fig 7.19: A more useful musical time base abstraction with BPM and swing

Page 22: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 22

Select Sequencer• This patch demonstrates that

repetitive patterns can be generated with a time base, mod and select objects

• Uses the time base abstraction• The mod object wraps the

time base counter output to 8 beats, so events within the 0 to 7 range can be triggered

• A separate event at time=1024 can be triggered with the select object using the same time base

• Instead of bang boxes, note and frequency related objects can be triggered to generate repeating sequences

Page 23: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 23

Partitioning Time• Specific events at musical measure

numbers can be triggered. This patch ignores events from time 0 to 127 using a chain of moses objects

• Given time at 208, the first moses object routes the time value to the second moses object

• Time value is shifted down, treating this section as if this were the beginning of the piece

• mod 64 creates 2 measures of 64 beats each, in the range 128 - 256

• Event at time 208 is beat 80, which would be the second measure of the partitioned timeframe

• Each of these 64 beat measures can be further subdivided into 4 measures that each contain 16 beats. Each bang box marks the downbeat of the first of 4 measures

Page 24: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 24

Dividing Time

• Output from the time-base can be divided to tell which measure the music is at

• The time base number is divided by the beats per measure value (2 or 4)

• Uses the int object to get whole measure numbers

• Uses the change object to remove repeating measure numbers

Page 25: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 25

Event Synchronized LFO

• If the time base is to be used as a control signal, dividing the time base using change and int objects could result in several consecutive equal values

• Output from the Low Frequency Oscillators (LFOs) becomes choppy

• Using higher mod and / values fixes the problem fig. 7.23: Synchronous message LFOs

Page 26: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 26

List Sequencer• This list sequencer does not rely on a

time base• Uses relative time from a message list,

so the list {61 0 60 500 59 500} means play note 61 at time 0, then note 60 at time 0 + 500, and note 59 at time 0 + 500 + 500

• The list split 2 object processes two items at a time; the remainder of the list is sent to the cold inlet of the list append object

• First item (note number) is sent to the cold inlet of float object

• Second item (time value) is sent to a delay object that bangs the note number at the end of the delay time, sending output to the synthesizer

• The list append object is banged, sending the remainder of the list to the list split 2 object, which processes the next two items. Continues until list is empty

fig. 7.24: An asynchronous list sequencer

Page 27: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 27

Synthesizer Part

• The patch on the right half of fig. 7.24 is a monophonic synthesizer that accepts MIDI note numbers

• The phasor~ output is modified with a 400ms curved envelope fig. 7.24b: Monophonic Synthesizer

Page 28: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 28

Text file control• Text files can be used to store MIDI data. File contains note number

and note duration data• The notein object gets MIDI note numbers, and the stripnote

removes 0 velocity notes. Note data is sent to the pack object’s hot inlet (first item)

• The timer object measures the time the note was pressed, and sends its output to the pack object’s cold inlet (second item)

• When the user clicks on start-record, the timer object is reset, the list accumulator is loaded with a bang, and the textfile writer is cleared using a clear message

• After the user has finished playing, the write button is banged so that the textfile object writes the performance data from the list append and list prepend set data into the text file using the textfile object. The name of the text file is specified by the write message object

• The load-playback button rewinds the textfile to the beginning, and sends it to the monophonic synthesizer

Page 29: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 29

Fig. 7.25: MIDI Sequencer that uses text files to store and play data

Page 30: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 30

7.4 Effects

• Two simple effects are introduced:– Stereo chorus and flanger effect– Simple reverberation

• Use these effects sparingly

• External mixers or plugins may already have better implementations of these effects

Page 31: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 31

Stereo Chorus/Flanger

• Produces multitude of sound sources by doubling up several copies of sound using delays

• LFOs are always 1Hz apart, and vary between 1Hz and 5Hz

• Fig. 7.27 uses the stereo chorus sub-patch and passes the feedback, rate, and depth

fig. 7.26: A chorus type effect

fig. 7.27: Testing the chorus

Page 32: Copyright © 2011 by Denny Lin1 Computer Music Synthesis Chapter 7 Based on “Excerpt from Designing Sound” by Andy Farnell Slides by Denny Lin

Copyright © 2011 by Denny Lin 32

Simple Reverberation• Designed to mimic

reverberating sounds on 4 surfaces

• Minimum delay should be at least a quarter of the reverb time

• To avoid phase cancellation and reinforcement between echoes:– Delay times in the delread~

objects should be prime numbers

– Amplitude for each buffer output is scaled at different levels

• rev1~, rev2~, rev3~ are reverb abstractions

fig. 7.28: A re-circulating Schroeder reverb effect