So, the component code in the tab “End of routine” was:
import sounddevice as sd
import soundfile as sf
from random import choice
filename2 = [
‘Melodias/a01.wav’,
‘Melodias/a03.wav’,
‘Melodias/b02.wav’,
‘Melodias/b03.wav’,
‘Melodias/b04.wav’,
‘Melodias/c03.wav’,
‘Melodias/c04.wav’,
‘Melodias/d04.wav’,
‘Melodias/d05.wav’,
‘Melodias/e05.wav’,
‘Melodias/e06.wav’,
‘Melodias/f06.wav’,
‘Melodias/g07.wav’,
‘Melodias/g08.wav’,
‘Melodias/h08.wav’,
‘Melodias/h09.wav’,
‘Melodias/i09.wav’,
‘Melodias/i10.wav’,
‘Melodias/j10.wav’,
‘Melodias/j11.wav’,
‘Melodias/k11.wav’,
‘Melodias/k12.wav’,
‘Melodias/l12.wav’,
‘Melodias/l13.wav’]
file2 = choice(filename2)
Extract data and sampling rate from file
data2, fs = sf.read(file2, dtype=‘float32’)
sd.play(data2, fs)
status = sd.wait() # Wait until file is done playing
But, in this way some files are played twice sometimes, what makes the program overwrite the output file.
Then, I tried to change to python function:
import sounddevice as sd
import soundfile as sf
import random
filename1 = [
‘Melodias/a01.wav’,
‘Melodias/a03.wav’,
‘Melodias/b02.wav’,
‘Melodias/b03.wav’,
‘Melodias/b04.wav’,
‘Melodias/c03.wav’,
‘Melodias/c04.wav’,
‘Melodias/d04.wav’,
‘Melodias/d05.wav’,
‘Melodias/e05.wav’,
‘Melodias/e06.wav’,
‘Melodias/f06.wav’,
‘Melodias/g07.wav’,
‘Melodias/g08.wav’,
‘Melodias/h08.wav’,
‘Melodias/h09.wav’,
‘Melodias/i09.wav’,
‘Melodias/i10.wav’,
‘Melodias/j10.wav’,
‘Melodias/j11.wav’,
‘Melodias/k11.wav’,
‘Melodias/k12.wav’,
‘Melodias/l12.wav’,
‘Melodias/l13.wav’]
file1 = random.sample(filename1, 1)
Extract data and sampling rate from file
data1, fs = sf.read(file1, dtype=‘float32’)
sd.play(data1, fs)
status = sd.wait() # Wait until file is done playing
But now it doesn’t find the .wav input file and it crashes…