• Audio
  • 8-channel wav playback using Pure Data

Hello,
I bought my second Bela after years passed since my first time and can’t wait to put my hands on it.

I aim to simply play back long 8-channel wavs, that are pretty long, with the multichannel expander using Pure Data. No further processing for now, just as a mean to play back a pre-mixed multichannel file for an installation.
As far as I’ve read here, the RAM would be a limitation, but not if I use a [readsf~] object? What I do not understand is if [readsf~] already reads one chunk at a time from disk or if I need to, for example, build a double buffer with [soundfiler] and then read from 8 out of 16 arrays using 8 [tabplay~] at a time, swapping the two buffers alternatively while loading one portion of the file at a time.
Thanks for your help

    weightausend What I do not understand is if [readsf~] already reads one chunk at a time from disk or if I need to,

    yes it does, no further work needed. Ensure you send the open message to [readsf~] some 100 ms before actually starting playback so that the buffers start filling up.

    weightausend build a double buffer with [soundfiler] and then read from 8 out of 16 arrays using 8 [tabplay~] at a time, swapping the two buffers alternatively while loading one portion of the file at a time.

    That wouldn't work anyhow because [soundfiler] makes reads from within the audio thread, thus blocking processing while waiting for stuff to load from disk.

      giuliomoro
      Thanks for the quick reply!
      What if I need to loop the whole playback? Would [readsf~] still need time when retriggered?

      Yes. If you need absolutely zero delay on repeat you can have two instances of readsf~, where you alternate between one that is playing and one that is preloading