2021년 3월 24일 수요일

[우분투의 사운드와 MIDI] 상당히 쓸만한 CLI용 녹음 유틸리티, parec

PulseAudio는 마치 개미지옥처럼 우분투 사용자, 특히 명령행 인터페이스(CLI) 애호가를 빠져들게 하는 재미가 있다. 그 끝은 '파멸'이 아닌 것이 다행이지만 말이다. 새로 설치한 위키 사이트에 음악 작업 관련 문서를 옮기고 고쳐쓰면서 PulseAudio의 다양한 기능을 탐색하는 즐거움에 빠져들고 있다. CLI의 명령어를 잘만 이용하면 PulseAudio Volume Control을 열지 않고도 웬만한 작업을 다 할 수 있을 것만 같다.

PulseAudio 설정 및 활용

특히 parec 명령어의 단순명료함에 감탄하고 있다. parec, parecord, pacat, paplay 등 용도에 맞게 다양한 이름으로 실행을 하지만 전부 pacat을 향하는 심볼릭 링크이다. 이 글에서는 녹음이라는 용도에 관하여 논하고 있으므로 parec이라고 부르기로 했다. 

명령행에서 'parec -d'를 입력하고 탭 키를 몇 번 'alsa_'로 시작하는 디바이스 이름이 나온다. 다음은 USB 오디오 인터페이스를 하나도 꽂지 않은 상태에서의 실행 사례이다.

$ parec -d # 이 상태에서 탭을 쳐 보라. 
alsa_input.pci-0000_00_1b.0.analog-stereo
alsa_output.pci-0000_00_1b.0.analog-stereo
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

첫 번째는 내장 마이크로폰이고, 세 번째는 내장 스피커이다. 마이크로폰 녹음을 하려면 첫 번째 것을, 응용 프로그램의 재생음을 녹음하려면 세 번째 것을 고르면 된다. 나는 첫 번째 것을 골랐다. parec은 표준 출력을 사용하므로, 이를 인코딩하여 파일로 저장하면 된다. 

$ parec -d alsa_input.pci-0000_00_1b.0.analog-stereo | twolame -r - out.mp3

MP3로 엔코딩하려면 lame 또는 twolame을, OGG로 인코딩하려면 oggenc를 쓰면 된다. 샘플링 레이트, 비트 레이트 등을 조절하는 파라미터는 따로 익혀야 한다. twolame의 경우 아무것도 지정하지 않으면 44.1 kHz, 16 bit, stereo가 된다. 인코딩 프로그램의 입력 및 출력 파라미터는 분명히 다른데 나는 아직 이를 잘 구별하지 못한다.

인코딩과 관련하여 건드릴 수 있는 파라미터까지는 도저히 이해하여 건드릴 수준이 아니니 그대로 두기로 하자, 다만 PCM 샘플 포맷에서 s16ne(signed 16-bit native endian)가 무엇인지, 헤더가 없는 raw format은 무엇인지 등을 알아야 한다. 왜 parec의 출력을 인코더 프로그램에서 --raw로 받는지 정도는 이해를 해야 하지 않을까?

한 쪽에서는 오디오 파일의 포맷에 대해 공부를 하고, 다른 한 쪽에서는 수리 중인 악기(기타)의 마감칠에 관한 공부를 하고 있다. 음악은 어디로 갔지? 기술은 예술을 하는데 필요한 것이지만, 거기에 너무 빠져들면 본질을 잃게 될 수도 있다.

댓글 없음: