Okay,
now I found some time to look at Giulios patch and I think I understood it :P (So many $'s in there :P)
So, what actually happens in that patch is that on [loadbang] we read 32768 samples into an array using soundfiler.
Then when the file should be played, we do play the first 32768 samples using [tabplay~] and simultaneously load the rest of the file using [readsf~]. Then, when [tabplay~] is done playing the first bit of the sample, we send a [1( to [readsf~] to start playing the rest of the file.
 
I don't have any audio pops playing eight samples simultaneously, even using the cheap hdmi-to-cinch-converter as my audio interface (which caused more pops in comparison to the Scarlett USB interface while trying olivers patch). Also, I don't have to adjust Pd's audio settings. I can use the standard settings (44100, 64 blocksize, 25 msec) and I don't get audio pops, which is good.

But there is one thing that I realised: The wav-files are not played at original speed. They are all recorded in 122 bpm. When I play them with Giulois patch, the samples are played quite slowly, at around 111 bpm.
 
In a later version of my sample player, I want to be able to change the bpm/tempo in which the samples are played, so I will need to have some mechanism for changing this. Using e.g. [phasor~] to play samples, this should work, but I don't know if it will be possible to do this using Giulios approach. In the help file of [tabplay~], it says that samples are played with no transposition, so maybe a transposition will not be possible to implement?! On the other hand, it says that [tabplay~] does not have the interpolation-artefacts that [tabread4~] has, which I would have, if I used a [phasor~] approach.
 
All the best, Jakob
Gesendet: Dienstag, 05. November 2019 um 15:40 Uhr
Von: "oliver" <oliver@klingt.org>
An: Kein Empfänger
Cc: Pd-List <pd-list@lists.iem.at>
Betreff: Re: [PD] Raspberry Pi: Loading Samples RAM problem
Jakob Laue wrote:
> Okay,
> finally I found some time to try some stuff out. First, I gave Olivers
> examples a try.
> I made a patch with eight [ol_sfplay~] objects to simulate my sample
> player and tested this patch on my old Raspi 2
> and also a Raspi 3. I also tested two different audio interfaces: a
> Scarlett 2i4 USB audio interface and a HDMI-to-CINCH-Converter running
> on the 2835 ALSA driver.
> The best result was achieved by the Raspberry Pi 3 with the Scarlett
> audio interface. I used
> - block length of 64 from Pd's preferences
> - buffersize of 512 and 1024 for [ol_sfplay~]
> I have no pops and Pd does not freeze.
> When I use the same configurations with the hdmi-to-cinch-converter and
> alsa, I get audio pops.

please also consider using even 2048 as buffersize for [ol_sfplay~]. AND
you might want to increase PD's audio delay with the "-audiobuf" startup
flag.

try "-audiobuf 120" or higher and work your way down from there.

i remember using this method on a PI2 with an 8 track wav-file and
really had to increase those values to get a smooth playback.

it worked alright in the end but then i had no video-traffic ...

in general, use a PI3 if possible

best

oliver



_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list