@Coalman said:
if I make a simple patch like this:
[osc~ 220]
| [bang]
|
[print~]
I get an array of numbers for each bang in the console.
Can someone tell me what these numbers represent?
are they amplitudes of the signal at various time points in chronological order?
Yes. Kind of. It's the value of each sample within the current DSP block (buffer) at the time of the bang. To test the chronology you could use a [phasor~] instead of [osc~] and have the same bang trigger a [0( message connected to phasor's phase input.
if I use [tabwrite~] to store them in an array in my patch instead of printing them to the console are the indices then in chronological order?
Yes, from the time of the bang and throughout the table. The difference here is that printing the buffer will give you as many samples as the block size (64 by default), where as you can set your table/array to be any length you like (you can also change the DSP block size on the fly with [block~] or [switch~] but only to powers of 2)
how does one get the frequency content of the signal back from this array of amplitude/time points?
I guess this is a question that is related to how FFTs work maybe...
FFT is indeed how you analyse frequency content. Samples stored in an array are a representation of your signal in the time domain. An FFT block is a representation of your signal in the (complex) frequency domain.
I am giving away the fact that I am not a signal processing wizard here, but I would be very interested to know how these different numeric representations of these signals show their (the same?) information..
thanks!
J
Your intuition is spot on, so don't beat yourself up.
Here is some good reading adressing everything you've touched on: http://www.pd-tutorial.com/english/ch03s08.html