본문 바로가기
Programming

matlab read and play wav files

by 단창 2013. 2. 14.

MATLAB에는 웬만한건 다 있다

역시 사운드 파일 읽고 재생하는건 기본



file = 'beep-1.wav';
[y, Fs, nbits]  = wavread(file);

file2 = 'button-11.wav';
[y2, Fs2, nbits2] = wavread(file2);

sound(y,Fs);
sound(y2,Fs2);


이렇게 하면 되는데, y는 사운드데이터가 들은 벡터, Fs 는 데이터가 encode된 Hz. nbits는 encode bit수 이다.

matlab help 에 나와있듯

Number of BitsMATLAB Data TypeData Range
8uint8 (unsigned integer) 0 <= y <= 255
16int16 (signed integer) -32768 <= y <= +32767
24int32 (signed integer) -2^23 <= y <= 2^23-1
32single (floating point) -1.0 <= y < +1.0


이렇게 된다. 24비트 음질이라고 하니까 요즘 인기몰이 하고 있는 아이리버의 회심작 LINK: Astell & Kern 100 제품이 생각난다.. 나도 HIFI관심은 있지만 사실 곰곰히 생각해보면 의미없는 매니악질 인것을.. 박쥐도 아니고 사람귀에 2^15 와 2^24가 구분이 될까..-_-


waveread로 파일을 읽어 놓고

sound 로 재생하면 된다. 재생은 간편하게 sound(재생할 벡터, 소리의 Hz ) 이러면 재생되는데

아쉽게도 역시 재생하는 process 는 matlab의 background 에서 되지 않고 순차적으로 재생된다. 즉,  y가 다 재생되는 동안에 matlab은 busy다.


반응형