sfplay~ buffer-size explanations

    Jan 10 2013 | 10:22 pm
    Dear forum, I don't really understand the buffer-size argument of the sfplay~ object.
    1 - When do we need to change this argument? Is it only when we want to "seek" from the hard drive at high speeds like in the sfplay~'s help?
    2 - Does it make any difference when we want to sample accurately trigger cues?
    3 - In the help file under the tab "more_features" it is said that the buffer size is set high so we can "playback from disk at high speeds". This same sfplay~ in the help file has a buffer-size set to 60000. But the reference tells us that the default value is 120960 and "disk buffer sizes must be specified as multiples of 20160". So why 60000 would be a high value when the default is 120960? I don't understand. I am not very good in maths, but it sounds also 60000 is not a multiple of 20160, right?
    Could someone give me more infos about that? Thanks a lot! Florent

    • Jan 10 2013 | 11:53 pm
      If you aren't having problems with sfplay~, then you can ignore this feature.
      The idea is this: when you open a file in sfplay, a certain amount is buffered into memory. When you tell sfplay to play, it quickly starts playing the buffered sound from memory, and queries the hard drive to retrieve the rest of the soundfile. If it runs out of sound in memory before the hard drive returns more data, then there will be a glitch of some sort. If you have a multichannel sound file, then the default memory represents a shorter amount of time.
      The helpfile is a bit confusing: that tab does set the memory to be smaller than the default and doesn't follow the guidelines from the other tab.
    • Jan 11 2013 | 12:51 am
      Thanks a lot for your explanation. This is definitely very useful.
      I have issues with synchronizing sfplay~ and a metronome, but not with sfplay~ itself; I was wondering if changing this feature could help my timing issues. I guess not.
      I agree, the helpfile is confusing. Thanks
    • Jan 11 2013 | 1:11 am
      Without seeing your patch, my guess is that you want to be triggering things in the signal domain.
    • Jan 11 2013 | 3:00 am
      thanks this is what I am trying to do