How to randomize audio files
显示 更早的评论
I have 80 audio files and want to play them randomely (not in the file number's orders).
My code so far is;
for i=1:length(audio_files)
aud_file=strcat('C:\toolbox\aud_file\',audio_files(i).name);
% load sound file (make sure that it is in the same folder as this script)
[soundData freq]=audioread(aud_file);
% opens sound buffer at a different frequency
pahandle = PsychPortAudio('Open', [], [], 2, []);
% loads data into buffer
PsychPortAudio('FillBuffer', pahandle, soundData');
% how many repititions of the sound
repetitions=1;
%starts sound immediatley
PsychPortAudio('Start', pahandle, repetitions,0);
% stop
PsychPortAudio('Stop', pahandle, 1,0);
%wait
WaitSecs(1);
%close
PsychPortAudio('Close', pahandle);
end
I searched the code to rondomize which is;
a=zeros(1,80);
for i=1:80
a=randperm(80);
end
But I'm not sure where I should add this randomize code.
Should the code be somewhere in the audio loop or before the loop?
采纳的回答
更多回答(1 个)
Johannes Fischer
2019-9-10
编辑:Johannes Fischer
2019-9-10
What kind of randomization do you want?
Play all sounds once, before playing a sound twice?
randomizedOrder = randperm(80);
for i = randomizedOrder
% ...load and play audio
end
Or every time you load a file, each sound has the same probability of being loaded.
% number of consecutive audio playbacks
N = 10;
randomizedOrder = ceil(rand(1, N)*80);
for i = randomizedOrder
% ...load and play audio
end
类别
在 帮助中心 和 File Exchange 中查找有关 Audio and Video Data 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!