Max abstraction of the Pd vd~ object.
bp~
Max abstraction of the Pd bp~ object.
By Volker Bohm
vcf~
Max abstraction of the Pd vcf~ object.
max-pd-abstractions index
Max abstractions that simulate Pd objects.
Each project is in a separate folder. Several projects require additional external objects or dependencies. Get instructions by clicking links next to each project names below.
download
max-pd-abstractions at Github: https://github.com/tkzic/max-pd-abstractions
Runs in Max 6.1.7 on Mac OS 10.9
index
- bp~ https://reactivemusic.net/?p=16171
- delread~ and delwrite~ https://reactivemusic.net/?p=16178
- hip~ https://reactivemusic.net/?p=16183
- vcf~: https://reactivemusic.net/?p=16165
- vd~ https://reactivemusic.net/?p=16174
Pd signal streaming objects
car engine simulation in Max
From “Desigining Sound” by Andy Farnell
download
https://github.com/tkzic/max-projects
folder: car-engine
patch: car-engine.maxpat
abstractions:
- engine-overtone.maxpat
pd abstractions:
- delread~.maxpat
- delwrite~.maxpat
- hip~.maxpat
- vd~.maxpat
jet engine simulation in Max
From “Desigining Sound” by Andy Farnell
download
https://github.com/tkzic/max-projects
folder: jet-engine
patch: jetengine-wrapper.maxpat
pd abstractions:
- bp~.maxpat
- hip~.maxpat
- vcf~.maxpat
Granular time stretching in Max
Adaptation of Andy Farnell’s Pd granular timestretch patch
Adjustable chunk-size, pitch, and speed – as well as manual scrubbing.
The original Pd patch (timestretch.pd) is available here: http://aspress.co.uk/sd/index.php
download
https://github.com/tkzic/max-projects
folder: granular-timestretch
patches
- timestretch5.maxpat (main patch)
- tabread4~.maxpat (Pd abstraction)
- hip~.maxpat (Pd abstraction)
How it works
An index pointer (file phasor) scans from the beginning to the end of the file. For example, at 44.1KHz, a 1 second file of audio would have 44,100 samples. Each sample is 022676 ms. Another phasor (grain phasor) scans small chunks (grains) of audio. If audio is playing back at the normal rate and pitch, this grain phasor runs at zero. the file phasor just moves sequentially from one grain to the next.
To stretch the time, the file phasor is slowed down, but the grain phasor speeds up, scanning grains of audio, that start at the current file phasor index. In this way, in listening to the file from beginning to end, you are actually listening to a series of overlapping grains.
As the chunk (grain) size increases the grain phasor frequency decreases.
To raise the pitch, the grain phasor frequency would be increased. To lower the pitch, the phasor frequency goes negative and increases in a negative direction to reduce pitch further.
As you can see, while running this patch, the chunk size, pitch, and speed are all related by a single equation.
phasor frequency = ((pitch / 120)**2 – speed) / chunksize
- where pitch is in cents (0 is normal)
- speed is a scaling factor (1 is normal)
- chunk (grain) size is in ms.
So the input values interact with each other.
In addition, the grain player uses a technique called PSOLA. Pitch synchronous overlap and add. There are actually two grain players playing simultaneously 180 degrees out of phase. Each is windowed using a positive cosine function. This helps to reduce clicks by crossfading from one grain to the next.
There is some comb-filtering and ringing present on the audio. There are various techniques to reduce this, including:
- trying different window functions
- higher sample rates
- changing the overlap
- varying the grain size
Interesting artifacts:
- reducing the grain size to several ms. causes oscillation similar to the Karplus-Strong effect
- increasing the grain size to around 1000 ms. causes a feedback delay effect due to the out of phase grain players
- setting the overlap to anything other than .5 causes random phase cancellation
Manual or automated scrubbing.
There is also an option to manually scrub the file. This way you can listen to the texture of grains of various sizes from various points in the file.
You can also set random automatic scrubbing to branch to various points in the file.
Radio with Pure Data
Information page for radio and Pure Data
By Fred Jan Kraan
http://fjkraan.home.xs4all.nl/digaud/puredata/rtlsdr/index.html
ep-4yy13 DSP – week 13
“I think its just the biggest conceptual art project uninentional or otherwise that anyone ever made. it puts Christo and those other guys to shame. Its planetary”
Roman Mars “Episode 97 – Numbers Stations” from 99% Invisible
Radio
- Measuring the invisible
- What is the difference between sound waves and radio waves?
- What is an antenna?
- Wave propagation is frequency dependent
- Sunspots and magnetic fields http://spaceweather.com
- Extreme frequencies, negative frequencies?
examples
- A simple arduino AM transmitter https://reactivemusic.net/?p=4450 (antenna pin D8)
- Transmitting music using light https://reactivemusic.net/?p=8487
- Analog signals. Digital signals.
- Crystal sets. Inadvertent radio. Patch Cords.
- Software defined radio (cellphones, wiFi, bluetooth, etc., )
- Software defined radio in Max http://zerokidz.com/radio (The user guide http://zerokidz.com/radio/docs/maxsdr5.pdf and tutorials provide a basic introduction to working with radio signals in the audio domain.
- rtl-sdr – inexpensive software defined radio
- information http://sdr.osmocom.org/trac/wiki/rtl-sdr
- Where to buy one: http://www.nooelec.com/store/sdr/sdr-receivers/tv28tv2-sdr-dvb-t-usb-stick-set.html#.U2BX1K1dVKk
- installation https://reactivemusic.net/?p=8360
- sub-reddit http://sl.reddit.com/r/RTLSDR/
- Max and Pd externals https://github.com/tkzic/pd-rtlsdr
- Raspberry Pi FM transmitter https://reactivemusic.net/?p=10186
- Transmitting signals in water https://reactivemusic.net/?p=853
- The noise floor: Noise Floor: Exploring the world of unintentional radio emissions by Melissa Elliott: http://www.youtube.com/watch?v=5N1C3WB8c0o
Internet radio streams and recordings
- Roman Mars: Numbers Stations: http://99percentinvisible.org/episode/numbers-stations/
- You are listening to: http://youarelistening.to/boston
- broadcastify: http://www.broadcastify.com/listen/feed/15433/web
- the listening post: http://www.chilton.com/scripts/radio/R8-receiver
- Very Low Frequency: http://www-pw.physics.uiowa.edu/mcgreevy/
- Macbook trackpad: Noise 5 mHz. (try holding radio near screen too)
- Macbook AC adapter: Noise 600-1400 kHz. (~1000)
- AC adapters, LED’s, Utility poles: 3.2 Khz
- Arduino transmitter: AM 1330 kHz.
- Laser light at 650nM
- What wavelength goes with a color? http://science-edu.larc.nasa.gov/EDDOCS/Wavelengths_for_Colors.html
- Frequency of red light is 4.6 * 10e14 = 300,000,000 / .000000650 (460 THz)
- Wireless micorophone (Orange-brown): Wide FM 614.150 MHz. (R band)
- Cordless phone: Narrow FM 926 mHz.
- Cell phone: Digitally encrypted trunking FM 836 mHz.
- Wifi: Digitally encoded PCM 2.4 gHz.
- FM broadcast band: Wide FM 89.7 mHz (Raspberry Pi example 98.1 Mhz)
- TV audio 600 mhz/660 mhz FMW
- The sun http://www.ips.gov.au/Solar/3/4
Topics not covered
(due to snow and stuff)
Visualization
- d3
- processing
- jitter
- hardware control
Statistics
- What are the chances?
- What to do next?
- improvisation. Randomness.
- r: http://www.r-project.org/
- Infinity row by Karlheinz Essl https://reactivemusic.net/?p=9222
- Music recognition. Deep learning.
Miscellaneous
- Enhanced automobile audio https://github.com/tkzic/automax
Assignment
Please send me a copies of your earlier compositions. Have a prototype ready to demonstrate or talk about for the next class.