Le 11/11/2019 à 19:53, Jakob Laue a écrit :
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.
look like the sample are recorded at 48KHz and play at 44100.
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.
if you want to change the tempo, you need to somehow interpolate the samples...
best
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
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list