very interesting video concerning FFT spectrum player


    Mar 25 2006 | 2:33 pm
    http://www.youtube.com/p.swf?video_id=eRlhKaxcKpA&eurl=http% 3A//www.popmodernism.org/scrambledhackz/%3Fc%3D4&iurl=http%3 A//static16.youtube.com/vi/eRlhKaxcKpA/2.jpg
    Application that links the sound from one medium to the spectrum
    analysis of another; recall any sample in time as a 3D vector in time.
    Similar techniques were discussed at a cycling lecture given in
    Switzerland in 2005 by Puckett, so this may be of interest to folks here.
    ;)
    Seb.

    • Mar 25 2006 | 3:38 pm
      The principle employed is very similar to what was used in the
      European project Flying Cities, in which I was involved in 2003: Only
      in this case the audio analysis and mapping was used to drive the 3D
      animation of the waxing and waning of virtual space cities.
      Check out the Flying Cities website at www.flyingcities.net.
      Georg
    • Mar 25 2006 | 8:00 pm
      On the audio side, there's a more inticate analysis and synthesis of
      the sound from samples at
      wes
    • Mar 27 2006 | 5:45 pm
      I visited the scrambledkackz site, that is pretty cool stuff.
      I am curious to know how would one implement this is in Max.
      Obviously the audio input would have to be loaded, analyzed,
      and saved. Is there an external that allows you to save FFT
      data to a file? What would be the best way to access this
      potentially large data set: load it in a coll, or some DB?
      If it were in a DB, what could I use to access it it?
      Anthony
    • Mar 27 2006 | 5:59 pm
      Icidentaly there is an external out there called bonk~ ( by Puckette)
      that does a similar thing. It allows you to trigger a sound with
      the spectrum of another sound. But in this case one would need to
      be able to handle a massive data set. I think bonk~ only uses RAM
      to store FFT data.
    • Mar 27 2006 | 6:06 pm
      Jitter is very good for this sort of thing.
      Check out Jitter Recipe 07:FFTCollector
      for an idea of how this might be done. Depending on how long your
      sample is, you may need a pretty large matrix. You can then save the
      matrix as a jitter binary file using the write message.
      Cheers,
      Andrew B.
    • Mar 27 2006 | 6:31 pm
      The problem is, I do not have jitter. Another problem
      is that I may be constrained by how much RAM I have.
      What are some alternates methods to doing this Max/MSP?
      I would need to redirect fft~ output to a file/db. What
      kind of data does fft~ output? What format is this in?
      If no RAM were to be used, I would need to manage data
      storage/retrieval either to a flat file or a DB. Is there
      any support for that in Max?
      Anthony
    • Mar 27 2006 | 8:30 pm
      I can see from fft~ help that it outputs and audio signal
      called real output and imaginary output. What can I use
      to convert this data into something I can save? I want to
      later be able to compare an incoming FFT~ data point with
      a saved one. Any ideas?
      Anthony
    • Mar 27 2006 | 11:39 pm
      finally a reason to get it!
    • Mar 28 2006 | 4:46 am
    • Mar 28 2006 | 10:03 am
      apalomba@austin.rr.com wrote:
      > I can see from fft~ help that it outputs and audio signal
      > called real output and imaginary output. What can I use
      > to convert this data into something I can save? I want to
      > later be able to compare an incoming FFT~ data point with
      > a saved one. Any ideas?
      sfrecord~, record~, peek~ into a buffer~ and save...
      Stefan
      --
      [][] [][][] [][] [][][]
      [][][][][][][][][][][][][][][]
      Stefan Tiedje
      Klanggestalter
      Electronic Composition
      &
      Improvisation
      /~~~~~
      \ /|() ()|
      ))))) )| | |( \
      /// _/)/ )))))
      ___/ ///
      -------------------------x----
      --_____-----------|-----------
      --(_|_ ----|-----|-----()----
      -- _|_)----|-----()-----------
      ----------()------------x-----
      14, Av. Pr. Franklin Roosevelt,
      94320 Thiais, France
      Phone at CCMIX +33-1-57 42 91 09
    • Mar 28 2006 | 5:18 pm
      apalomba@austin.rr.com wrote:
      > What kind of data does fft~ output? What format is this in?
      You can save it as a sound file, but I guess you want to make an
      interpretation of an analysis and store that, and thats up to you.
      I'd like to have fiddle~/bonk~ versions for use inside a pfft~, does
      somebody tried that already?
      > If no RAM were to be used, I would need to manage data
      > storage/retrieval either to a flat file or a DB. Is there any support
      > for that in Max?
      There is a mysql external should be listed on Maxobjects.
      Stefan
      --
      [][] [][][] [][] [][][]
      [][][][][][][][][][][][][][][]
      Stefan Tiedje
      Klanggestalter
      Electronic Composition
      &
      Improvisation
      /~~~~~
      \ /|() ()|
      ))))) )| | |( \
      /// _/)/ )))))
      ___/ ///
      -------------------------x----
      --_____-----------|-----------
      --(_|_ ----|-----|-----()----
      -- _|_)----|-----()-----------
      ----------()------------x-----
      14, Av. Pr. Franklin Roosevelt,
      94320 Thiais, France
      Phone at CCMIX +33-1-57 42 91 09
    • Mar 28 2006 | 5:42 pm
      On Mar 28, 2006, at 2:03 AM, Stefan Tiedje wrote:
      > apalomba@austin.rr.com wrote:
      >> I can see from fft~ help that it outputs and audio signal
      >> called real output and imaginary output. What can I use
      >> to convert this data into something I can save? I want to later be
      >> able to compare an incoming FFT~ data point with a saved one. Any
      >> ideas?
      >
      > sfrecord~, record~, peek~ into a buffer~ and save...
      FWIW, in this case, be sure to write the saved FFT frame sound file
      as float32 data to adequately store the spectrum. The default 16 bit
      integer representation of soundfiles isn't enough to store without loss.
      -Joshua
    • Mar 28 2006 | 10:07 pm
      Do I have to go through sfrecord to do this? I was
      hoping to take the real output from fft~ and save it
      directly to disk. Using buffer~ would require me to
      allocate a buffer that is the size of the output file.
      If the sound file I am processing is 5 minutes long
      that is a huge buffer (unless I write out chunks at
      a time). All I really need to do is write each FFT
      vaule out to disk. That way I do not have to remove
      a sound file header either. Is there a "fileout" object?
      Another question I have is, what is the actual output
      of FFT~? If my window size is 512, I should get 512
      floating point values representing the spectral content.
      Yes? I could then process this file more off line. Perhaps
      order the FFT windows to make it easier to search.
      THis is what I have so far...
    • Mar 30 2006 | 9:15 am
      apalomba@austin.rr.com wrote:
      > Do I have to go through sfrecord to do this? I was
      > hoping to take the real output from fft~ and save it
      > directly to disk.
      Thats what sfrecord~ is doing. But you need to know exactly what you're
      doing to not scramble the bins...
      > Using buffer~ would require me to
      > allocate a buffer that is the size of the output file.
      > If the sound file I am processing is 5 minutes long
      > that is a huge buffer (unless I write out chunks at
      > a time).
      Nowadays its not huge, its big maybe, but you could easily manage more
      than that if you give your computer enough ram.
      > All I really need to do is write each FFT
      > vaule out to disk. That way I do not have to remove
      > a sound file header either. Is there a "fileout" object?
      If you read in a soundfile, you don't need to worry about headers.
      > Another question I have is, what is the actual output
      > of FFT~? If my window size is 512, I should get 512
      > floating point values representing the spectral content.
      > Yes? I could then process this file more off line. Perhaps
      > order the FFT windows to make it easier to search.
      You should look into pfft~ which does all the windowing stuff for you
      and gets rid of the duplicated bins (which do not carry additional
      information, but need space)
      And consider using Java with mxj~ within pfft~.
      Its tough to get into that stuff, but its worth it...
      Stefan
      --
      [][] [][][] [][] [][][]
      [][][][][][][][][][][][][][][]
      Stefan Tiedje
      Klanggestalter
      Electronic Composition
      &
      Improvisation
      /~~~~~
      \ /|() ()|
      ))))) )| | |( \
      /// _/)/ )))))
      ___/ ///
      -------------------------x----
      --_____-----------|-----------
      --(_|_ ----|-----|-----()----
      -- _|_)----|-----()-----------
      ----------()------------x-----
      14, Av. Pr. Franklin Roosevelt,
      94320 Thiais, France
      Phone at CCMIX +33-1-57 42 91 09
    • Mar 30 2006 | 5:47 pm
      Thanks for your feedback Stefan. I know Sfrecord~ saves things
      to disk, I guess I am not used to thinking that sfrecord~ could
      handle FFT data. I will give pfft~ a look as well.
      Ultimately though, for this to work, I will need to be able to
      do the following...
      1. Process source soundfile and save FFT data.
      2. Load source FFT data, run FFT on incoming signal
      3. Search source FFTs for closest matching source FFT
      I could load the FFT file in to buffer~ and use index~ to
      access it. Searching would be linear which might be a problem.
      It would be cool to post process the FFT sound file
      so that the FFT windows were ordered, that way one could do a binary
      search.
      Anthony
    • Mar 30 2006 | 7:24 pm
      Thanks for your advice, but again I do not have jitter.
      When I save enough money to buy it I will give your
      idea a try. Until then I will have to do this with
      max/msp alone.
      I want to be able to compare one FFT frame with another
      and find the closest match. That means that I may
      have to come up with some clever way to compare frames.
      Maybe find some kind of equation that will take a frame
      and compute a value that I could then compare.
      Anthony
    • Mar 30 2006 | 7:36 pm
    • Mar 30 2006 | 7:53 pm
      I have seen FTM before but have not had much time to delve in
      to it. Could you give me some pointers on what parts of FTM
      I should look at?
      Anthony
    • Sep 06 2007 | 2:48 pm
      Hello,
      did somebody went deeper in that project?
      i seen the video too, read about the concept, had a look on jitter example.. so i understand the concept, but don't really sucess in patching the idea..
      if somebody have help to give, info or patches ..it will be great
      thanks
      freeka
    • Sep 06 2007 | 4:05 pm
      Check out MATConcat...
      It is still on me list of things to evaluate,
      but it looks promising.
      Anthony
      ----- Original Message -----
      From: freeka
      Date: Thursday, September 6, 2007 9:52 am
      Subject: [maxmsp] Re: Spectral Recontextualization (was very
      interesting video...)
      >
      > Hello,
      > did somebody went deeper in that project?
      > i seen the video too, read about the concept, had a look on jitter
      > example.. so i understand the concept, but don't really sucess in
      > patching the idea..
      > if somebody have help to give, info or patches ..it will be great
      >
      > thanks
      >
      > freeka
      >
    • Sep 06 2007 | 9:10 pm
      Quote: Anthony Palomba wrote on Tue, 28 March 2006 15:07
      ----------------------------------------------------
      > Do I have to go through sfrecord to do this? I was
      > hoping to take the real output from fft~ and save it
      > directly to disk. Using buffer~ would require me to
      > allocate a buffer that is the size of the output file.
      > If the sound file I am processing is 5 minutes long
      > that is a huge buffer (unless I write out chunks at
      > a time). All I really need to do is write each FFT
      > vaule out to disk.
      all you have to do? :) for 5 minutes stereo, thats 52,920,000
      numbers - you will need thousands of coll objects to store that data.
      for mono "fft data" its a nice way to simply write a stereo file from within pfft, each signal in a channel. and if you have enough RAM in your hardware, buffer~ should be the easiest way.
      dont forget that you have have to find a way of recording triggered by a signal, because you have to start recording when a new window begins. (which is why i suggested pfft above.)
    • Sep 07 2007 | 7:51 am
      thanks!!
      any example patches??
      f
    • Sep 07 2007 | 7:54 am
      Quote: freeka wrote on Fri, 07 September 2007 01:51
      ----------------------------------------------------
      > thanks!!
      >
      > any example patches using or not jitter??
      >
      >
      > f
      ----------------------------------------------------