Here, for your reading enjoyment, is a history of Max (Max/MSP, PD, JMax, etc) by its original author, Miller S. Puckette.
PureData first sound patch, Music 2421
PD INSTALLATION INSTRUCTIONS –>
As a first introduction to PD and as a head-start to Tuesday’s Music 2421 meeting, I would like you to create a simple PD “patch”: two oscillators offset by 3 hertz, creating an interference/beating effect.
Steps for the impatient (TL;DR):
1. Create a new patch (File–>New)
2. Create two oscillator objects: [osc~ 440] and [osc~ 443] (Put–>Object)
3. Create a [dac~] audio output object (Put–>Object)
4. Connect the oscillators to the outputs, one to each of [dac~]’s two inlets
(LOWER DOWN YOUR SPEAKERS!!)
5. Turn on PD’s “DSP” in the PD main window, enabling sound processing
You should now hear two oscillators beating 3 hertz apart.
Detailed instructions:
Open PD and create a new patch (File–>New). You will get a completely blank slate, PD’s default state….ready for us to make anything we can imagine.
Onto this blank canvas, we will place “objects” (things that perform actions, receive data or audio, make calculations, etc), numbers, messages, comments, and graphical objects. By combining the functionality of lower-level objects (such as those that add numbers, generate a signal, or take in audio), we will construct our own musical instruments/tools.
IMPORTANT: When working in PD there are two modes: “Edit Mode” (when you are editing/building the patch) and “Performance Mode” (when you are operating the patch). While working, you will frequently toggle back and forth between these two modes. It is therefore worth, memorizing the keystroke, Command-E (or Ctl-E on Windows).
In Edit Mode, go to the “Put” menu and choose an “object” (note the keystroke as well, Command-1). In the dotted box that appears, type “osc~ 440″(that’s “osc tilde, SPACE, 440) and click anywhere on the patch to “instantiate” the object.
Note: the “~” (tilde) which, looking like a sine tone, designates this as an audio objects. In a minute we’ll see objects without the tilde, those that send/relay/create messages.
Objects like [osc~] have inlets (to receive messages) and outlets (to output their data) or values can be supplied as “arguments”. Here with [osc~ 440], the argument “440” tells the oscillator its frequency.
Even though we don’t hear anything yet, let’s create a second oscillator with a frequency 3 hertz higher than our first, so [osc~ 443].
To hear these sound generating objects, we need an audio output object called [dac~]. By default, [dac~]’s two inlets are speaker outputs 1 and 2 or the LEFT and RIGHT channels.
Your patch should now look like this:
Before the patch can make sound, we have to connect the oscillators to the “dac”. Mouse-over the outlet (black dash at the bottom-left of the object) and connect [osc~440] to the [dac~]’s left-most input (to channel 1, LEFT). Connect [osc~443] to the [dac~]’s right-most input (to channel 2, RIGHT).
Finally (after turning DOWN the volume on your speakers!!), go to PD’s main window and turn on the “DSP”, PD’s way of enabling sound processing.
You should now hear two oscillators beating together at a separation of 3 hertz.
For more fun: here’s a more advanced version (you may need to right-click and choose “Save As…”) that uses the text keyboard to play notes/frequencies. Hit the number keys 0 – 5 to change the interval between the two oscillators and hit any letter key to play a “solo” over this “drone”. I recommend, for once, turning on your CAPS LOCK as the notes will be lower that way. See if you can figure out why!
Notes, Wavelength, and Frequency
Note | Octave | Frequency (Hz) | Wavelength (M)* | Comment |
C | 0 | 16.351 | 20.812m | |
C# / Db | 0 | 17.324 | 19.643m | |
D | 0 | 18.354 | 18.540m | |
D# / Eb | 0 | 19.445 | 17.500m | |
E | 0 | 20.601 | 16.518m | |
F | 0 | 21.827 | 15.590m | |
F# / Gb | 0 | 23.124 | 14.716m | |
G | 0 | 24.499 | 13.890m | |
G# / Ab | 0 | 25.956 | 13.110m | |
A | 0 | 27.5 | 12.374m | Lowest Note of Piano |
A# / Bb | 0 | 29.135 | 11.680m | |
B | 0 | 30.868 | 11.024m | |
C | 1 | 32.703 | 10.405m | |
C# / Db | 1 | 34.648 | 9.821m | |
D | 1 | 36.708 | 9.270m | |
D# / Eb | 1 | 38.891 | 8.750m | |
E | 1 | 41.203 | 8.259m | Lowest Note of Bass |
F | 1 | 43.654 | 7.795m | |
F# / Gb | 1 | 46.249 | 7.358m | |
G | 1 | 48.999 | 6.945m | |
G# / Ab | 1 | 51.913 | 6.555m | |
A | 1 | 55 | 6.187m | |
A# / Bb | 1 | 58.27 | 5.840m | |
B | 1 | 61.735 | 5.512m | |
C | 2 | 65.406 | 5.203m | |
C# / Db | 2 | 69.296 | 4.911m | |
D | 2 | 73.416 | 4.635m | |
D# / Eb | 2 | 77.782 | 4.375m | |
E | 2 | 82.407 | 4.129m | Lowest Note of Guitar |
F | 2 | 87.307 | 3.898m | |
F# / Gb | 2 | 92.499 | 3.679m | |
G | 2 | 97.999 | 3.472m | |
G# / Ab | 2 | 103.826 | 3.278m | |
A | 2 | 110 | 3.094m | |
A# / Bb | 2 | 116.541 | 2.920m | |
B | 2 | 123.471 | 2.756m | |
C | 3 | 130.813 | 2.601m | |
C# / Db | 3 | 138.591 | 2.455m | |
D | 3 | 146.832 | 2.318m | |
D# / Eb | 3 | 155.563 | 2.187m | |
E | 3 | 164.814 | 2.065m | |
F | 3 | 174.614 | 1.949m | |
F# / Gb | 3 | 184.997 | 1.839m | |
G | 3 | 195.998 | 1.736m | Lowest note of violin |
G# / Ab | 3 | 207.652 | 1.639m | |
A | 3 | 220 | 1.547m | |
A# / Bb | 3 | 233.082 | 1.460m | |
B | 3 | 246.942 | 1.378m | |
C | 4 | 261.626 | 1.301m | Middle C |
C# / Db | 4 | 277.183 | 1.228m | |
D | 4 | 293.665 | 1.159m | |
D# / Eb | 4 | 311.127 | 1.094m | |
E | 4 | 329.628 | 1.032m | |
F | 4 | 349.228 | 0.974m | |
F# / Gb | 4 | 369.994 | 0.920m | |
G | 4 | 391.995 | 0.868m | |
G# / Ab | 4 | 415.305 | 0.819m | |
A | 4 | 440 | 0.773m | Tuning reference note |
A# / Bb | 4 | 466.164 | 0.730m | |
B | 4 | 493.883 | 0.689m | |
C | 5 | 523.251 | 0.650m | |
C# / Db | 5 | 554.365 | 0.614m | |
D | 5 | 587.33 | 0.579m | |
D# / Eb | 5 | 622.254 | 0.547m | |
E | 5 | 659.255 | 0.516m | |
F | 5 | 698.456 | 0.487m | |
F# / Gb | 5 | 739.989 | 0.460m | |
G | 5 | 783.991 | 0.434m | |
G# / Ab | 5 | 830.609 | 0.410m | |
A | 5 | 880 | 0.387m | |
A# / Bb | 5 | 932.328 | 0.365m | |
B | 5 | 987.767 | 0.345m | |
C | 6 | 1046.502 | 0.325m | |
C# / Db | 6 | 1108.731 | 0.307m | |
D | 6 | 1174.659 | 0.290m | |
D# / Eb | 6 | 1244.508 | 0.273m | |
E | 6 | 1318.51 | 0.258m | |
F | 6 | 1396.913 | 0.244m | |
F# / Gb | 6 | 1479.978 | 0.230m | |
G | 6 | 1567.982 | 0.217m | |
G# / Ab | 6 | 1661.219 | 0.205m | |
A | 6 | 1760 | 0.193m | |
A# / Bb | 6 | 1864.655 | 0.182m | |
B | 6 | 1975.533 | 0.172m | |
C | 7 | 2093.005 | 0.163m | |
C# / Db | 7 | 2217.461 | 0.153m | |
D | 7 | 2349.318 | 0.145m | |
D# / Eb | 7 | 2489.016 | 0.137m | |
E | 7 | 2637.021 | 0.129m | |
F | 7 | 2793.826 | 0.122m | |
F# / Gb | 7 | 2959.955 | 0.115m | |
G | 7 | 3135.964 | 0.109m | |
G# / Ab | 7 | 3322.438 | 0.102m | |
A | 7 | 3520 | 0.097m | |
A# / Bb | 7 | 3729.31 | 0.091m | |
B | 7 | 3951.066 | 0.086m | |
C | 8 | 4186.009 | 0.081m | |
C# / Db | 8 | 4434.922 | 0.077m | |
D | 8 | 4698.636 | 0.072m | |
D# / Eb | 8 | 4978.032 | 0.068m | |
E | 8 | 5274.042 | 0.065m | |
F | 8 | 5587.652 | 0.061m | |
F# / Gb | 8 | 5919.91 | 0.057m | |
G | 8 | 6271.928 | 0.054m | |
G# / Ab | 8 | 6644.876 | 0.051m | |
A | 8 | 7040 | 0.048m | |
A# / Bb | 8 | 7458.62 | 0.046m | |
B | 8 | 7902.132 | 0.043m | |
C | 9 | 8372.018 | 0.041m | |
C# / Db | 9 | 8869.844 | 0.038m | |
D | 9 | 9397.272 | 0.036m | |
D# / Eb | 9 | 9956.064 | 0.034m | |
E | 9 | 10548.084 | 0.032m | |
F | 9 | 11175.304 | 0.030m | |
F# / Gb | 9 | 11839.82 | 0.029m | |
G | 9 | 12543.856 | 0.027m | |
G# / Ab | 9 | 13289.752 | 0.026m | |
A | 9 | 14080 | 0.024m | |
A# / Bb | 9 | 14917.24 | 0.023m | |
B | 9 | 15804.264 | 0.022m |
Pitch ratios
Ascending | Intervals | Descending | Intervals |
Interval | Frequency Ratio | Interval | Frequency Ratio |
unison | 1 : 1 | unison | 1 : 1 |
m2 | 1 : 1.059 | minor 2nd | 1 : 0.943 |
M2 | 1 : 1.122 | Major 2nd | 1 : 0.8909 |
m3 | 1 : 1.189 | minor 3rd | 1 : 0.84 |
M3 | 1 : 1.26 | Major 3rd | 1 : 0.7937 |
P4 | 1 : 1.334 | Perfect 4th | 1 : 0.749 |
aug4/dim5 | 1 : 1.4142 | augm 4th/dim 5th | 1 : 0.707 |
P5 | 1 : 1.498 | Perfect 5th | 1 : 0.667 |
m6 | 1 : 1.587 | minor 6th | 1 : 0.63 |
M6 | 1 : 1.682 | Major 6th | 1 : 0.595 |
m7 | 1 : 1.7818 | minor 7th | 1 : 0.561 |
M7 | 1 : 1.887 | Major 7th | 1 : 0.530 |
Octave | 1 : 2 | Octave | 1 : 0.5 |
For ascending intervals greater than an octave, multiply the INTEGER portion
of the Frequency ratio by 2 for each successive octave (1, 2, 4, 8, etc.)
Examples:
– a minor tenth up = 2.189
– 2 octaves + a tritone up = 4.4142
For descending intervals greater than an octave, divide the Freq. ratio by
2 (if between 1 and 2 octaves), by 4 (if between 2 & 3 octaves), and so on.
Examples:
– an octave plus a perfect 4th down = 0.3745 ( 0.749/2 )
– 2 octaves plus a minor 3rd down = 0.21 ( 0.84/4 )
PD extended, installation
To install PD(-extended) on your Mac, PC, or Linux system please visit:
– http://puredata.info/downloads/pd-extended
Download the installer appropriate to your operating system and architecture (I don’t recommend the “Alpha” release for prime-time usage, but it you are curious about recent developments in the interface (significant) and function of PD, you are welcome to download that also).
For some Mac users, you may need to install “X11”, the venerable Unix graphics system on which some of PD’s functionality rests. You can download that, available now as “XQuartz” from here.
Here, too, is mPD, a mobile version for Android, for those interested:
– https://play.google.com/store/apps/details?id=org.mpd
In addition to PD’s built-in Help system, please see the following sites for more help and shared patches.
– PD Forum and Patch Repo – Repository for patches, tutorials, and discussion related to PD.
– PD FLOSS Manuals – including concepts, working patches, and installation/setup help
– Programming Electronic Music in PD (“loadbang”) – Johannes Kreidler’s book
No-input listening
Students of Music 6421: This week as you prepare your pieces for next Tuesday’s in-class performance, I would you just to listen to some music from a space outside of our normal purview, to seek out musical sub-genres of electroacoustic improvisation.
For starters, some music for you from Toyko and “Onkyo”, first Toshimaru Nakamura:
“The first thing for me is not emotion or concept, just sound”. – Nakamura
Sachiko M:
https://www.youtube.com/watch?v=8lcqFMuxHeo
And a brief excerpt from a “documentary” on both of them:
Class Performance #1
Here is the order for our Tuesday / Thursday (2/24 and 2/26) performances of your first pieces. Please come on time (or early, where possible) prepared to perform either on my provided laptop (along with a launchpad, microphones, and MIDI keyboard–likely the red one from Studio C) or with your own computer, using any of the USB studio devices.
I will have connectivity for two computers (stereo audio connection) with the hope of moving through your pieces as smoothly as possible. If you have your own audio interface, I can easily connect 1/4″ or XLR cables as well.
Tuesday:
Ian Hoffman
Cameron Niazi
Erna Woyee
Laura Furman
Vaibhav Aggarwal
Cassidy Molina
Charles Peng
Hanbyul Seo
Mihir Chauhan
Kristin Murray
Riley Owens
Thursday
Chun-Han Chuang
Jasmine Edison
Aarohee Fulay
Shane Moore
Julia Klein
Mimi Lee
Matthew Mardesich
Mengya You
Yuan Zhou Bo
Matthew Williams
Kevin Garcia
Brendan Sanok
Score11 and Csound examples and…templates!
This post is for students of Music 6421:
In addition to the examples found via “lsex sc” in the terminal, there are also a collection of blank templates (marimba, tsamp, gran, etc) that can be used to create your own scores. These are identical to the examples (same p fields and comments on ranges, scaling, etc) without any values in place.
To access the list of templates for Score11 (this is analogous to accessing examples):
lstp sc
gettp EXAMPLE > MYFILE
Some tips for using templates
– Semi-colons are required at the end of each p-field statement
– Anything after a “<” is a comment. I encourage you to make comments in your personal files
– for adding sound files to the tsamp and gran instruments, use mksffuncs (help file here)
No class, Tuesday Feb 10th
This is a reminder to all students that I am away from Ithaca on Feb 10th so there will be no class meetings. Classes will meet as scheduled later in the week (Thursday for those in Music 2421; by scheduled appointment for those in 6421).
— Professor Ernste
Abelton Drum Rack basics
Following onto our work in class, here are some tips for using the Drum Rack, very similar to the behavior in some other Ableton instruments that store and use audio samples (see simpler, instrument racks, and others).
Creating Drum Racks in Abelton Live 9