MacOS X에서 들리는 것 녹음하기
- 2008년 10월 2일 19시 41분
- 댓글 3 개
종종 컴퓨터에서 들려주는 소리를 녹음하고 싶을 때가 있습니다. 구체적인 용도를 노골적으로 얘기하기엔 부적절하지만 (ㅎㅎ;;;)... 제가 쓰는 iPod 셔플 1세대 는 국내에 음악을 사기가 매우 어려운 장비인 관계로, 어쩔 수 없지요!
원래는 WireTap이라는 아주 깔끔한 프로그램을 썼는데, 시험사용기간이 다 돼서 이제 녹음하면 친절한 여자가 리듬에 맞춰 "트라이얼 버전으로 녹음한 곡입니다." 이렇게 읽어주더군요. 크흐. 기능에 비해서 가격이 좀 비싼 것 같아서, 그냥 공짜로 할 수 있는 방법을 없나 좀 찾아보니, 역시 있네요!
이 조건을 만족하는 분들은 한 번 시도해 보세요~
- 내가 쓰는 MP3 플레이어가 국내 DRM들하고 호환이 잘 안 된다.
- 무슨 녹음기 프로그램이 FotoMagico Pro랑 가격이 같고 VMware Fusion보다 거의 두 배 값이라니 말이 되냐!
- MacPorts나 fink 중 하나는 깔아 뒀다.
- 삽질은 언제나 즐겁다.
먼저 들리는 걸 녹음하는 기능을 지원하는 사운드 드라이버를 깔아야하는데요, 소리꽃 (Soundflower)이라는 예쁜 이름의 GPL 가상 사운드 장치가 있습니다. 자기가 가짜 사운드 장치로 잡혀서 들어오는 소리를 다른 프로그램에 보내주거나 다른 사운드 장치에 보내주는 일을 합니다. Nicecast라는 맥용 icecast 오디오 방송 프로그램이 내부적으로 Soundflower를 씁니다. Soundflower 원저자가 올린 버전은 최근 MacOS X에서 약간 문제가 있다고 합니다. 다른 사람이 개선한 버전이 따로 배포되고 있습니다. 그냥 드라이버만 설치하면 소리가 안 나서 좀 답답한데, 원본에서 Soundflowerbed라는 관리 프로그램을 따로 받아서 깔면 출력을 내장 사운드 카드로 바꿀 수 있습니다.
이제 스파이 노릇을 하는 드라이버가 마련이 됐으니, 녹음을 하면 됩니다. 관련 프로그램으로 역시 소리 관련된 놀이에는 EsounD가 빠지지 않는군요. 다른 팁 두 개 (macosxhint, heynberg)를 참조해서 요새 버전에서도 되게 좀 고쳐보면 이렇게 하면 되더군요.
% esd -unix & % sleep 1 # avoid esound operations before esound's done its initialization % esdrec -s localhost | sox -t raw -s -w -r 44100 -c 2 - -t wav - | lame -h -V 3 --ignore-tag-errors - output.mp3
짠! 이 셸 스크립트를 돌리면 아무 프로그램이나 (vmware를 포함해서~) 들리는 소리가 모두 녹음됩니다. MacPorts에서 esound, sox, lame 을 깔아 둔 상태여야 합니다. sox를 안 쓰고 바로 lame에서 받아보려고 했는데, 옵션을 조절해 봐도 잘 안 되더군요.
기왕 녹음한 것 자르는 것도 자동으로 되면 좋겠지 하고 찾아보니 역시 mp3 잘라 주는 프로그램도 좋은 게 있네요. Mp3splt는 재인코딩 하지 않고도 원하는 범위에서나, 자동으로 조용한 부분을 찾아서 여러 개로 나눠줍니다.
% mp3splt -sf output.mp3
모아서 셸 스크립트 하나로 만들어 두면 편합니다. :)
기왕 하는 김에, 옛날에 많이 하던 윈앰프 방송들처럼 다른 사람들이 들을 수 있게 보내는 것도 쉽게 할 수 있는데요, icecast의 libshout 안에 들어있는 "example" 프로그램을 쓰면 편합니다.
% esdrec -s localhost | sox -t raw -s -w -r 44100 -c 2 - -t wav - | lame --ignore-tag-errors - - | ./example
또 하나 보통 흔히 하는 소리가지고 장난이, 다른 기계를 스피커로 쓰는 AirTunes 같은 기능이 있는데, 공유기 중에 개조해서 사운드카드를 달 수 있는 놈에다가 돌리면 아주 쓸모있겠죠~
# on the Mac desktop computer
% esd -tcp -public
# on a remote machine which is capable of playing sound
% esdcat -s {server address}
사무실에 esd를 띄워두고 새벽 2시에 집에서 접속해서 귀신 소리를 낸다거나... 집에서 영화보거나 WoW하면서 회사로 소리를 들려준다거나... (;;)
댓글 3 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking
