Personal tools
You are here: Home community PdWikiWiki PdTutorialTutorialFour

Edit history

Edit: -1 of 1
Time: 2008-02-15 16:30:32
Note: /pd/pd/community/pdwiki/PdTutorialTutorialFour/comment "not found"

!!Tutorial ­4­
A simple FM synthesizer. (patches
Refer to the tutorial patch if you want to find out more
about FM (there's a link to a good mini­tutorial). In
short, Frequency Modulation consists of applying the output
of one oscilator (the modulator) to the frequency of
another (carrier). This way the frequency of the carrier
is being MODULATED by the carrier. In this patch, we build
the simplest FM generator.
How it works:
On the left "column" you can see a number box conneced to
"[sig~":[sig~ (which simply converts an int/float to a signal,
suitable for the "[+~":[+~ object) and this signal sets the
frequency of the "[osc~":[osc~ down below. The signal from the
"[osc~":[osc~ on the right is added to the frequency information
of the carrier oscillator. Since the signal coming from
the modulator is constantly changing different values are
being added at different times (at the audio rate). Low
values (up to few times a second) will give an effect of a
vibrato, while the amplitude of the modulator will
influence the width of the vibrato (the smaller amplitude,
the more subtle vibrato).
Now, when you get bored playing around with the parameters
in this patch you can stop the audio and close the patch.
Then open tut4a.pd. It is exactly as this one but it adds
rude waveform display. Follow the instructions in the
patch to activate it. The "[metro":[metro is set to 100 which
means it will be updating the waveform every 1/10 of a
second, which is not very smooth. You can change it to a
smaller value (or larger for that matter) if you want tot
update the display at a different rate. This patch doesn't
add anything to your FM synth but at least it shows you one
of the ways to use "[tabwrite~":[tabwrite~ object with a table (or
array). "[tabwrite~":[tabwrite~'s argument is the name of the array.
Now, here's a trick: hit CTRL­m (or select File­>Message)
and a little window will pop up that is very useful for
sendig various messages to PD or your patches. Arrays
understand such messages so if you type "display resize
44100" (without the quotes) the table will resize itself to
contain 44100 points. If you're running pd at 44100 Hz
sampling rate then the array will hold one second of audio.
You can play with different sizes of this array if you want
to "zoom" in or out on your waveform. Array takes other
messages. You can look them up in the "11.arrays.pd" in
the control section of PD documentation.
Let's go on with our FM mini­synth. What we've done so
far, is a boring little patch. What is usually more fun is
the ability to control when a note will start, how long it will
last and what will be its amplitude and of course its
envelope. First we'll do it in the poor man way. This way
we'll be able to explore a few other PD objects. Later on
I will give you some shortcuts. Don't skip to the
shortcuts, though, you're here to learn the basics.
Open the tut4b.pd patch. Here you see the patch that we
started with except we've added an attempt at making the
But it introduces a new object: "[line~":[line~. "[line~":[line~ accepts a
message composed of a pair of numbers. First number gives
the destination point and the second the ramp time. Those
who are used to Max will be disappointed because "[line":[line and
"[line~":[line~ in PD take only one pair of numbers. As in Max,
however, you can specify the starting point, destination
point and the ramp time as I did in this patch (i.e. "0,
0.9, 520").
'''Previous: '''PdTutorialTutorialThree '''Back''' to: FrontPage

From fr4nck Fri Feb 15 16:30:24 +0100 2008
From: fr4nck
Date: Fri, 15 Feb 2008 16:30:24 +0100
Subject: not found
Message-ID: <>

The requested URL /pdwiki/images/pdtutorial06.png was not found on this server.

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser