sonify matrix through pfft, please clarify

    Jun 07 2013 | 9:21 am
    Hi, I decided to finally tackle one of my long standing synthesis blind spots: FFT. I took Tadej Droljc great Sonographic Sound Processing suit ( as starting point and I'm trying to strip out the basics to achieve something that might be useful in a project of mine: sonify realtime openGL rendered textures.
    What I'm running up against is that all the examples I've found (in Tadej's work or elsewhere) start with an audio signal, which is converted into frequency domain, processed, then back to audio. I don't have a signal to start with. I start with a matrix that I want to interpret as frequency domain right away. One of my questions is how to deal with the phase plane in such a case.
    Attached is my trial so far. It does produce sound but not as expected. The phasor doesn't seem to function as 'play head'. When connecting the number~ box instead of the phasor I'd expect to be able to step through and 'freeze' the frames but it doesn't do that. Also, after 30 seconds or so it just stops playing. And sometimes it only starts sounding after stopping and starting DAC a couple of times.
    I'm surely missing a couple of basic points here. Can someone give me some pointers?
    Tanx, D.

    • Jun 07 2013 | 9:24 am
      whoops, seems the loadbang to jit.bfg doesn't work. be sure to give it a bang.
    • Jun 09 2013 | 9:15 pm
    • Jun 14 2013 | 7:15 pm
      pretty please?
    • Jun 27 2013 | 12:46 pm this question too silly or too hard?
    • Jun 27 2013 | 1:26 pm
      I'm afraid I don't have the answer, as this is also one of my weak areas. But, I'm not getting any sound whatsoever from your example. Windows 7 6.12. No errors in the Max window. Tried everything likely, re-triggered loadbang.. nothing.
    • Jun 27 2013 | 7:06 pm
      Hmm strange, also not when you toggle DSP off and on and play around with the jit.bfg settings (activate the metro when you do)? Anyway, my problem indeed is that i don't understand everything that is (or should be) going on...
    • Jun 28 2013 | 6:06 am
      i have no previous experience with pfft, but i took your post as a starting point to deal a little bit with it and downloaded jfc's spectral tutorials. when i sent your jit.bfg to one of the matrixes in these tuts (f.e. newspectrum in tutorial 7) it seemed to work fine... then i saw that you have a typo: you named your first matrix "audiotex", but inside pfft you peek "audioTex" :-). After changing that seemed to work stable...
    • Jun 28 2013 | 8:19 am
      omg... just a fr*cking typo... tanx for spotting that!
      now I'm still curious about how to deal with the phase plane. tips/ideas/strategies?
      gonna check that tutorial you mention!
    • Jun 28 2013 | 8:55 am
      yeah, the tutorial is really great... don't forget to download the essay that refers to the patches. This makes stft much clearer to me now... "A Tutorial on Spectral Sound Processing Using Max/MSP and Jitter":
      "Phase information is important for the quality of resynthesized sounds. The choice to apply a treatment to amplitude and phase difference or only to amplitude, or to apply a different treatment to the phase-difference plane, is easily implemented whether in jit.expr or with jit.pack and jit.unpack objects. This choice depends on the particular situation and must generally be made after experimenting. "
    • Jul 08 2013 | 12:45 pm
      Sorry DTR for such a late reply. I missed your topic...
      First of all I haven't checked you patch, since you've done some recent changes/corrections, as I can see from last posts. So I will give you only the answer about the phase plane. Or you can post your new patch again...
      In your case, phase plane is totally arbitrary. You can use a plane that has the same size as amplitude plane, but all values set be 0. Or any randomness between 0 and PI.
      You can check the "lock to grid" (or something similar) patch from my dissertation for a feeling, what a 0 phase plane does to a resynthesized sound. In that case all the amplitude energy is distributed evenly across the harmonic FFT grid (N x FFT fundamental). That means that the frequency for each FFT bin will be static across all FT frames. In case you will use "random" phase plane, the frequency for certain FFT bin will vary across all FFT frames. That means you will get even more noisy results.
      Hope that helped,
    • Jul 08 2013 | 1:24 pm
      Thanks T, will check that out!