Monday, October 22, 2007

Week 11

Creative Computing : FFT(2)

Keywords :
* Josh_PV_Ugens
PV_EvenBin : Returns the even numbered bins in an FFT buffer, resynthesize only even bins. Similarly PV_OddBin resynthesize only odd bins
PV_FreqBuffer(buffer, databuffer) : stores the freq values from an FFT analysis into a buffer to be used outside the FFT process
databuffer - a buffer of (fft buffer size / 2) for storing freq or mag data in
PV_Invert :
PV_MagBuffer(buffer, databuffer) : Store FFT data in another buffer for other uses.
databuffer - a buffer of (fft buffer size / 2) for storing freq or mag data in
PV_MagMap : Remap magnitudes to a new mag curve
PV_MaxMagN : return the N strongest bins
PV_MinMagN : return the N weakest bins
PV_NoiseSynthF : Decisions are based on whether or not freq data across numFrames is within a given threshold.return only bins that are unstable.
PV_NoiseSynthF(buffer, threshold, numFrames)
PV_NoiseSynthP : PV_NoiseSynthP and PV_PartialSynthP base these decisions on whether or not phase data across numFrames is within a given threshold.
buffer - the FFT buffer
threshold - a phase value (in radians) with which to allow values to pass through or be zeroed out
numFrames - the number of FFT frames needed to make the above decision
initflag - if 0, all bins are zeroed out while the initial is calculated, if 1, all bins pass through.

PV_OddBin : Return the odd numbered bins in an FFT buffer

MCLD Ugens

CQ_Diff : Logarithmic spectral difference measure.
CQ_Diff.kr(in1, in2, databufnum)
FFTDiffMags: Compares the spectra of two signals, finding the magnitude of the difference for each frequency bin. These differences are averaged onto the (control-rate) output.
FFTDiffMags.kr(chain1, chain2)

FFTFlatness : Calculates the Spectral Flatness Measure, defined as a power spectrum's geometric mean divided by its arithmetic mean. This gives a measure which ranges from approx 0 for a pure sinusoid, to approx 1 for white noise.
FFTFlatnessSplitPercentile : Splits the FFT power spectrum into two parts - above and below a given percentile and then calculates the spectral flatness measure for the two parts of the spectrum.
# lower, upper = FFTFlatnessSplitPercentile.kr(chain, fraction)
FFTFlux : Calculates the spectral flux of the signal, which is a measure of the rate of change of the FFT power spectrum. It measures the difference between the current and previous FFT frames, by calculating the 2-norm (the Euclidean distance between the two spectra) after normalising for power.
FFTInterleave : Takes two FFT "chain" signals and mixes them together. The FFT data is not actually combined, rather the trigger signals which indicate that a new FFT buffer is ready for processing are combined. The first chain takes priority: if both chains fire at the same time, then the frame from the second will be ignored.
FFTPercentile : Calculates the cumulative distribution of the frequency spectrum, and outputs the frequency value which corresponds to the desired percentile.
FFTPower : Sum of instantaneous FFT magnitudes.Operates on the frequency-domain rather than time-domain representation.
FFTSubbandPower : Calculates the spectral power measure, in the same manner as FFTPower, but divides the spectrum into (adjacent, non-overlapping) subbands, so returns separate power measures for the different subbands.
#[power1, power2, ... powerN+1] = FFTSubbandPower.kr(chain, [cutfreq1, cutfreq2, ... cutfreqN], incdc)
FFTTriggered : Based on [FFT], but analyses the signal only when triggered, rather than in a continuous sequence. The point is to be able to synchronise analysis windows exactly with trigger signals. Its purpose is for spectral analysis rather than "phase vocoder" manipulation, since IFFT typically won't be able to reconstruct a continuous audio signal.
chain = FFTTriggered(buffer, input, trig, maxoverlap=0.5)
FincoSprottL : chaotic system UGen
FincoSprottM : chaotic system UGen
FincoSprottS : chaotic system UGen
ListTrig : Emit a sequence of triggers at specified time offsets
Logger : Store values to a buffer, whenever triggered
RosslerL : A strange attractor discovered by Otto Rossler based on work in chemical kinetics.
The system is composed of three ordinary differential equations:

x' = - y - z
y' = x + ay
z' = b + z(x - c)

Readings :
More Simple Chaotic Flows with ABS Nonlinearity : http://sprott.physics.wisc.edu/chaos/finco/abs.html
some of the examples might use the FFT plugins from the library of Bhob Rainey
http://bhobrainey.net

Referenes:
* Haines.Christian."Workshop-11-sem2 conducted on Fast fourier Transform .Programming with SuperCollider".18 October'2007.Electronic Music Unit.University of Adelaide, South Australia.
* Parmenter, Josh 2007, JoshPV SuperCollider Library, 2007,
* Stowell, Dan. 2007, Signal Analysis - SuperCollider Plugins - MCLD UGens, 2007,
* IXI Tutorial 10 on FFT. www.ixi-software.net
* McCartney , James et al . 2007,SuperCollider Inbuilt Help.
* Source Forge, http://supercollider.sourceforge.net/

Audio Arts : Film Music
This week was presenting a draft for our alloted films. If you are not aware, I am doing the film made by Dan. I like the feel and question raised in the film, " What is Music". So far I have added the background track and the audio present with the video. I somehow like the minimalist characterstic to what I presented. After spending a bit more time on the musical ideas, I thought they are not really required. After adding the foley sounds the film can have a quite a different and unique characterstic to it. I do want to implement a paced motive when the car scecne comes up. Ther are two interviews in the film with a little more voice to be added on. The sound design work has to be quite precise and effective. Thats where i am .. What is Music : -- succesfully conveying the idea across and convincing the listener that this is music - Mark carrol ..

No comments: