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の作成に成功しました']); |