Chladni Plates

A really pretty effect that is just very interesting to watch!

Mojo Goro

Ernst Chladni  was a German physicist and musician, most known for the Chladni Plates – an experiment which still looks intriguing to most of the people. This experiment is a good and beautiful way of visualizing the nodes and antinodes on a vibrating surface. Originally this experiment was obtained with a metal plate with some sand on it that is driven into various resonant states with the use of a violin bow. The plate itself like everything in the physical world would have a certain resonant frequency, and when the frequency of the vibrations matches or is proportional the resonant one, these interesting shapes as in the picture below would be formed by the sand.

Chladni Plates patterns for different frequencies

You can actually watch a modern recreation of the original experiment on youtube:

View original post


Why study Acoustics?

Plus one, Acoustics is a very interesting course to study!

Cameron Maskew - Acoustics - Interests - Topical Discussions

Acoustics is a very niche area of physics that only two universities teach in the UK. Whenever I tell someone I study acoustics they assume I do a music based course, the common response being ‘is that like music????’. Let me clear this up right now. No. It is not like music. My course consists of maths, electronics, maths, programming, maths, signal processing, and maths.  Now that I have made it sound appealing I’ll talk a little bit about why it is in fact a very good area of physics to specialise in.

Jobs, lots of jobs.

As I mentioned, acoustics is a very niche area of physics but it is actually used in all forms of applications. A large area is dealing with environmental noise which is what a lot of acoustic consultancies specialise in. There is a huge demand for acousticians and there just aren’t enough being produced to satisfy the demand…

View original post 263 more words

PD Synth 8 – Delay Effect

A very simple but pretty send effect to make is a Delay line, we can make it ping pong or anything, but for now we’ll stick to mono and come back later to make it sparkle more!

Building the Delay

Create a new PD window and call it DelaySend. Create an inlet~  and inlet object and a new object called throw~ SendOut. Throw is pretty much the same as a send object but is more stable to send multiple objects to one source.

Setting up for Sends

So now I think we should make a sub-window dedicated for send effects. This will help us keep organised if we ever want to add even more effects later! Create a new PD window and call it Sends. In the window put an object called r SendIn. (TBC)

PD Synth 7 – Band Pass

Now we will add another filter type; a band pass filter. This is a filter that increases the volume of a number of frequencies, and is a little bump on a frequency graph. You can get a general idea from Google Images.

Creating the Filter

First step first, open the FilterBase and add a vcf~ object, this stands for voltage control filter and we are using it over the standard band pass (bp~) object so we can easily develop it later on.

VCF Guide

Connecting the Filter

Add a r Q object to the second inlet of the VCF~ and a new r CutOff object to the third inlet. Now you may be thinking how we are going to be able to switch between the two filters? The answer is with a spigot! A spigot is like a tap with an on and off which allows the signal to pass or to stop:

Spigot Guide

now create two spigot~ objects and connect the seperatly to the inlet, removing the already connected lop~. Connect the first outlet of each spigot to the respected filters, and connect the vcf with the outlet~ object. Now to make them taps work! Create a new reciever object called FilterSelect and create another two objects connected to its outlet called; != 0, != 1. These are simple programming terms in If statements, != means “if it doesnt equal x, then let it pass.”

Filter Tutorial 7

(Edit: Lookout for that error in the image above r CuOff, should be r CutOff). That’s all the work in the FilterBase today, now lets update the interface to make it all work.

Updating the Interface

We need to add two new features to our synthesiser, a Q factor slider and a Filter Selector. So Firstly lets add the Q factor. Make a new horizontal slider and label it Q Factor, in the send symbol place Q. For the limits a good limit range is between 0.5 and 10, the Q factor can vary but this gives a great allowance to play with!

Next create a Vertical Radio (Ctrl + Shift + D), and place it somewhere appropriate. This will allow us to select the filter with a single button. Go into the properties and name it Filter Select with the send being called FilterSelect, make it that the number is 2 and we are ready to go. Test out your new filter and have fun!


The Basics

This tutorial has now covered the basics of synthesis design with  an oscillator and filter! Next we will add a delay line to start creating more interesting sounds!

PD Synth 6 – Low Pass Filter

So today we will move onto creating filters for our synthesiser. Filters are a crucial part to making a synthesiser sound professional and interesting, so we will be adding two filter types for now. In this tutorial we will add a Low Pass Filter.

Creating the Low Pass

Open a new Pd window and save it calling it FilterBase. Create one audio inlet (inlet~) object and audio outlet (outlet~) object. Next we create a low pass object that is built into the program, lop~ :

lop Guide

Connect the new object with the inlet and outlet. Next create an object and call it r CutOff, this is where we will link the CutOff frequency, (where the filter begins to work), with the interface of the synthesiser. Attache the reciever to the 2nd inlet of the lop~ object.

Filter Tutorial 6


Updating the Interface

Lets go back to the SynthBase and add a new parameter for our synthesiser. Firstly we need to actually add the filter into the program, so slot it in-between the OscBase and dac~. Now add a new horizontal slider with (ctrl + shift + H), you can add a vertical slider or even a knob object it doesn’t really matter. Place the new slider somewhere that looks nice and rightclick into its properites. Make the output range to be between 20 and 20000, we do this because human hearing is between that in Hz. Label the slider CutOff Frequency and make the send symbol equal CutOff. Finally click the lin button, this will change it to be log which means the slider is now logarithmic, making it have more emphasis on the lower numbers. If you want to see how it works you can put a number object (ctrl + 3) at the r CutOff in the FilterBase, but essentially it just makes it nicer to work with.



And we are done for the day, next time we’ll add a band pass filter and a way to change between them both.

PD Synth 5 – Aliasing

So you may or may not of noticed that our saw wave has some imperfections. Using Fourier analysis we can find that a perfect saw tooth wave has an infinite amount of harmonics however our sample rate is 44.1kHz, so after the harmonics get above 22.05kHz, the Nyquist limit, aliasing will occur.


Briefly aliasing is where the higher frequencies will now be heard as lower frequency, it’s not desired because it normally sounds messy and not sharp. We can combat this with a low pass filter near the Nyquist limit this will stop any aliasing if the filter is correct.

Creating the filter

Create a new PD window and call it AntiAlias. For this tutorial there is an accompanying patch that can be found in PD manual called J07.oversampling (Check program files for the documents). Make inlet~ and outlet~ objects in suitable places. Next connect and copy the following data:


These are the poles and zero’s for the low pass filter at 15000 Hz. This is a butterworth 3rd order filter which will provide a good dB roll off to stop aliasing.  Poles and Zero’s are a little more complex but the basics are the zero’s represent the point in the frequency spectrum where there will be no signal. The poles represent where the signal will be at the maximum. For something to play around with and get the basics of it go here. It’s a really good tool to imagine the pole zero’s.

Next write an object called block~ 1024 1 16, this oversamples the signal to make the filter more accurate. Finally save the pd window.

Open up SawOsc and make an object AntiAlias placing it inbetween the expression object and multiply object. And we’re done!



Next time we will add a bandpass filter into the system to make much more interesting sounds!

PD Synth 4 – Amplitude Envelope

Our synthesiser at the moment is just on and off, not that great. All good synthesisers and instruments have specific envelopes and we will be adding a simple ADSR envelope. Not sure what an envelope is? Check here:

Setting Up The Inputs

First open the SynthBase window. We need to add some sliders for the Attack, Decay, Sustain and Release. Goto Put -> VSilder or (Ctrl + Shift + V) and place four sliders down. You could alternatively use the object knob for a different aesthetic but it doesn’t matter.

Now rightclick -> properties on the first slider. Change the bottom range to 1 and the top range to 1000. This is the slider range and is in milliseconds, we use the bottom range as 1 to stop any popping sounds from occurring. Now make the send symbol equal Attack, this will be used for sending the number value later. Make the label equal A. The rest of the values are below:

Vsilder GuideDecay GuideSustainRelease


Note that the values for sustain are between 0 and 100. This is because it is a percentage based value from 0% to 100%.


Creating The Envelope

Firstly download this pure data patch save this to your project folder. This is an adsr envelope took from the PD manual, it will already be somewhere on your pc but this way is easier.

Now open up your SawOsc file and add the gadsr object. This object is pretty, it has six inlets: Trigger, Gain, Attack, Decay, Sustain, Release. To hook up connects we have to use the receive object. Using the same names you used before for each slider make the objects: r Attack, r Decay, r Sustain, r Release and attach these to the 3rd, 4th, 5th, 6th inlets of gadsr (5th is hidden behind the number box but you can still connect it).

Next remove the / 127 link to *~ 1 and connect it to the 2nd inlet of gadsr. Connect the 2nd outlet of the unpack 0 0 0 object to the 1st inlet of gadsr. Finally rename *~ 1 to just *~ and connect the gadsr outlet to it and voilà!  We have an amplitude envelope. Save your file and try it out by adjusting the sliders.


Adding a Volume Tool

Now a lot of clipping has occurred since everything is so damn loud. It’s time to fix this by adding another slider. Add the slider to SynthBase and make the numerical values be between 0 and 1, give it an appropriate name and an appropriate send name. Next go into the OscBase subwindow and place a receiver object going to the *~ 1 value. Done! Next time we will deal with the issue of aliasing.