Granular and spatial motion.
By CICM
The library is also available for Max/MSP: https://cycling74.com/toolbox/hoalibrary-v2-2/#.V6lvoZMrIcg
By CICM
The library is also available for Max/MSP: https://cycling74.com/toolbox/hoalibrary-v2-2/#.V6lvoZMrIcg
An interactive granular synthesizer.
By Chris Carlson
https://ccrma.stanford.edu/~carlsonc/256a/Borderlands/#Guide
Installed on Mac OS 10.9.2.
Modified the makefile to point to the Macports version of /opt/local/lib/libsndfile.dylib and /opt/local/include/sndfile.h
Using some of the Max/MSP example sound files.
The app seg faults on load, randomly. If you keep trying, it eventually comes up.
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
https://github.com/tkzic/max-projects
folder: granular-timestretch
patches
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
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:
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.
By Nathan Wolek