wavwrite
さて、今回は作った音をWAVファイルに書き出す方法を話します。
今まではMATLABで音を作っても、それを聞いて波形を見ていただけで、
ファイルに保存という事をしていなかったです。
ここでは、その方法について書きます。
さて、方法といいましても、簡単に出来るので説明もそんなにいらないかもしれません。
では、まず以下のプログラムを書いてみて下さい。
function makewav % % 音をWAVファイルに書き出す % % fs=44100; t=[0:1/fs:1]; f=1000; y=sin(2*pi*f*t); soundsc(y,fs); wavwrite(y,fs,16,'sin.wav'); |
function makewav
%
% 音をWAVファイルに書き出す
% ファイル名はユーザが入力
%
%
fs=44100;
t=[0:1/fs:1];
f=1000;
y=sin(2*pi*f*t);
soundsc(y,fs);
filename=input('保存するファイル名を入力して下さい','s');
wavwrite(y,fs,16,[filename '.wav']);
|
function makewav
%
% 音をWAVファイルに書き出す
% ファイル名はユーザが入力
% 既にファイルが存在する場合は別の名前を要求する
%
%
fs=44100;
t=[0:1/fs:1];
f=1000;
y=sin(2*pi*f*t);
soundsc(y,fs);
filename=input('保存するファイル名を入力して下さい','s');
fid=fopen([filename '.wav']);
while fid >= 0
disp('その名前のファイルは既に存在します');
fclose(fid);
filename = input('別のファイル名を入力して下さい','s');
fid=fopen([filename '.wav']);
end
wavwrite(y,fs,16,[filename '.wav']);
disp([filename '.wavの作成に成功しました']);
|
function makewav
%
% 音をWAVファイルに書き出す
% ファイル名はユーザが入力
% 既にファイルが存在する場合は上書きの可否を要求
%
%
fs=44100;
t=[0:1/fs:1];
f=1000;
y=sin(2*pi*f*t);
soundsc(y,fs);
filename=input('保存するファイル名を入力して下さい','s');
fid=fopen([filename '.wav']);
while fid >= 0
disp('その名前のファイルは既に存在します');
writeq=input('ファイルを上書きしますか?(Y or N)','s');
if writeq=='y'
fclose(fid);
break;
elseif writeq='n'
fclose(fid);
filename = input('別のファイル名を入力して下さい','s');
fid=fopen([filename '.wav']);
end
end
wavwrite(y,fs,16,[filename '.wav']);
disp([filename '.wavの作成に成功しました']);
|