Writing an audio file

2 visualizaciones (últimos 30 días)
Yanjika O
Yanjika O el 26 de Jun. de 2020
Comentada: Yanjika O el 26 de Jun. de 2020
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.

Respuestas (1)

Walter Roberson
Walter Roberson el 26 de Jun. de 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.
  1 comentario
Yanjika O
Yanjika O el 26 de Jun. de 2020
IDK why but I a getting this error tho,
Cannot find an exact (case-sensitive) match for
'audioWrite'

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by