Writing an audio file
2 views (last 30 days)
Show older comments
Dear people,
I am trying to write an audio which consists of part of 2500Hz 17 sec long and another silent part of 1 min in length.
FrequencySampling = 2500;
duration = 17;
repeats=5;
filename='shock.wav';
t = linspace(0, duration, FrequencySampling*duration+1);
t(end) = [];
w = 2*pi*1000;
for i=1:repeats
for k=1:duration
s = sin(w*t);
sound(s,FrequencySampling);
end
pause(77);
end
audioWrite(filename,s,FrequencySampling);
When I use this code I am only able to write it for single 17 sec long 2500Hz tone. I want to inlcude 4 silent periods between 5 repeats of 17 sec long 2500Hz tone. How to do it? Please suggest.
0 Comments
Answers (1)
Walter Roberson
on 26 Jun 2020
FrequencySampling = 2500;
duration = 17;
repeats = 5;
filename='shock.wav';
s = cell(2, repeats);
t = linspace(0, duration, FrequencySampling*duration+1);
t(end) = [];
w = 2*pi*1000;
n = sin(w*t);
z = zeros(1, 77*FrequencySampling);
s(1,:) = {n};
s(2,:) = {z};
s(end) = []; %delete final silence
s = horzcat(s{:});
audioWrite(filename, s, FrequencySampling);
Repeating for duration is not needed, as your time vector already extends for the entire duration.
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!