Home page
Course outline
Code
Practicals
Assignments
Columbia Courseworks E4896
|
Code resources
This page links to the various code resources (Matlab, Processing, Pd)
associated with the course. Most of these resources are located in the
course Code directory.
You can find more Processing sketches at my personal
Processing examples page.
But most of the examples on that page and below are for Processing 1; the only ones that I have
updated for Processing 3 (the current version as of Spring 2016) are:
These are the ones I have been using in class. You will need the
minim audio library, which means unpacking the zip file into
your Processing Libraries folder.
For Pd, you should download and install
Pd-extended (which should be easy to install for all platforms).
As an introduction/tutorial on Pd, I recommend the
PureData Floss Manual.
A good reference for Pd is Miller Puckette's book The Theory and Technique of Electronic Music. To look up individual units, you can try the Index of the online HTML version. A more terse description of the basic operation of Pd is in Miller's original Pd manual. See also the
Introduction to Pd excerpted from Andy Farnell's book,
Designing Sound - Practical synthetic sound design for film, games and interactive media using dataflow. There's also a useful 2 page cheat sheet which I got from
F J Kraan.
Finally, there's a list of all the units in Pd-extended at
Protman sound+music.
- 2016-01-20:
-
Here is the Processing ``sketch'' for the
Live Spectrogram (updated for Processing v3).
You should be simply able to copy and paste this
text into the Processing window. You can download
the processing environment from the
processing.org
- 2016-01-25:
-
The plain implementation of the Karplus-Strong plucked string in Processing is
plucked_string.pde.
The same thing with a spectrogram in the background is
plucked_string_sgram.pde,
and the one where you can shift-click on the string to damp it at different places is
plucked_string_damp.pde.
The simple plucked string in Pd is
karplus_strong1.pd.
It's based on the nicely encapsulated
karpluck~.pd
which I got from
Loomer.
The simple test setup for karpluck is
demo_karpluck.pd
(which uses the
keybd.pd
patch to simulate note events from the computer keyboard),
and the 6-voice polyphonic version is
ks-polysynth.pd
which wraps the karpluck unit in
ks-voice~.pd .
Here is
the YouTube link for
High-speed video of guitar string vibration and the segment of
the TV show
Time Warp
featuring Metallica.
- 2016-02-08:
-
Here is the simplesynth Pd patch I was playing with in class. It relies on
keybd to allow the computer keyboard to act like piano keys,
cmap to do simple control-range mapping (which also needs
twoway), and
adsr~ for envelope generation. You might also try
oscillator~, which is the band-limited pulse-width-modulated oscillator.
A good place to start with Pd is the
PureData Floss Manual I recommended.
I visualized the waveforms properties with the Processing sketches Oscilloscope and LiveSpectrum_grid.
- 2016-02-15:
-
The interactive sinusoidal analysis/synthesis program I used in class is Michael Klingbeil's
SPEAR, which is available for Mac and Windows.
The Matlab code for noise-residual construction is available on my page on
Sinusoid+Noise Analysis in Matlab.
Pd patches to resynthesize an analysis file exported from SPEAR are provided for
this week's practical. You can also read and rewrite them
with Matlab using spearread.m and spearwrite.m.
- 2016-02-22:
-
The Pd patch I used to listen to single-pole-pair resonances is
impulse_bpf.pd.
I was using the Processing sketches Oscope_Spectrum (now updated for Processing v3) and
LiveSpectrogram_wvfm to analyze the
results. For the LPC analysis in Matlab, I used
lpcfit.m and lpcsynth.m;
you can see examples of how to use them in this
Matlab diary (which uses
plotspec.m).
The Buzz/Hiss residual encoding that I mentioned
but didn't get to play is implemented by lpcBHenc.m
and lpcBHdec.m whose use is described in their
comments. I've also converted all this to Python which you can see in an IPython notebook,
E4896_L06_lpc_diary.ipynb.
The LPC cross-synthesis in Pd is part of practical 5.
- 2016-02-29:
-
Here are the Pd patches I used to demo various slides:
The patches also use loadsoundfile.pd, playloop.pd, and playsound~.pd to play sound files, audiosel~.pd to select audio streams, and plotpowspec~.pd. The example of group delay applied to audio on slide 5 comes from
my ELEN E4810 diary for allpass, and the example of reverb by convolution was from
the convolution introduction.
 This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Dan Ellis
<dpwe@ee.columbia.edu>
Last updated: Sun Feb 28 22:39:39 EST 2016
|