2020년 7월 14일 화요일

우분투 스튜디오에서 rosegarden 작동시키기(MIDI 및 오디오 녹음 작업)

우분투 20.04 LTS에 바탕을 두고 있는 우분투 스튜디오에서 rosegarden을 이용하여 미디 기기를 제어하고 녹음을 하는 방법을 기록하고자 한다. Xfce 데스크탑에서 한글 입력기인 fcitx를 설정하는데 서툴러서 애를 먹었다. 터미널에서는 한/영 전환이 자유롭지만, 파이어폭스에서 한/영 전환을 하고자 오른쪽 [Alt] 키를 누르면 메뉴가 튀어나와서 도저히 한글을 입력할 수가 없었다. 구글을 뒤지니 이 불편함의 해결 방안을 묻는 질문과 답이 많이 있는 것을 발견하였다. 사람들을 아주 곤란하게 만드는 파이어폭스의 고유 기능이었다.

How to disable menu popping up when I press ALT key

fcitx는 한자 입력에 치중한 입력기이다. 한글을 치면 작은 창이 열리면서 음절 혹은 단어 단위로 변환 가능한 한자가 보인다. 이 상태에서 그대로 엔터를 치면 한자가 입력된다. 스페이스바를 쳐야 비로소 한글 형태로 남는다. 구글 검색창에서 한글 단어만 입력하고 엔터를 치던 버릇을 고치지 않으면 한자가 입력되니 주의해야 한다!


오늘의 작업 환경은 ICON 미디 키보드(5Nano)와 사운드캔버스 SC-D70을 USB로 연결한 것이다. 모니터를 위한 헤드폰은 SC-D70에 연결하였다. 터미널에서 lsusb를 실행하면 "iCON"과 "Roland Corp. SC-D70"가 잘 나타난다. Ubuntu Studio Controls의 Audio Setup에서 USB 디바이스(SC-D70)이 제대로 설정되어 있는지 확인하면 더욱 안심이다.

우선 간단히 MID 파일을 명령행에서 재생해 보자. 소프트웨어 synth인 Qsynth를 구동하고 포트 번호를 확인한 뒤 aplaymidi로 재생을 한다.

$ aplaymidi -l
 Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 20:0    SC-D70                           SC-D70 Part A
 20:1    SC-D70                           SC-D70 Part B
 20:2    SC-D70                           SC-D70 MIDI
 24:0    iCON iKeyboard 5 Nano V1.06      iCON iKeyboard 5 Nano V1.06 MID
129:0    FLUID Synth (3185)               Synth input port (3185:0)
$ ls *mid
Flourish.mid  canyon.mid  deb_prel.mid
$ aplaymidi -p 129:0 deb_prel.mid 

이때 SC-D70은 외장 사운드카드(또는 오디오 인터페이스) 역할을 한다. 포트번호(-p or --port)를 20:0으로 바꾸면 SC-D70의 화려한(? Qsynth에 비해서는...) 연주를 들을 수 있다. 아직까지는 QjackCtl에 신경을 쓰지 않아도 된다.

키보드로 SC-D70을 연주하고 싶은가? 두 기기를 직접 미디 케이블로 연결하고, INST LEVEL 버튼을 누른 상태에서 SC-D70의 전원을 넣어서 MIDI 모드로 작동하게 만들면 된다. 그러나 지금 상태처럼 두 기기가 전부 컴퓨터에 연결된 상태라면, QjackCtl을 실행하여 ALSA 탭에서 두 장비를 연결하면 그만이다. iCON 키보드는 MIDI IN과 OUT 모두에 대응하니 주의해야 한다.

스크린샷 이미지를 크롭하여 올리는 것이 정답이겠으나 우분투 스튜디오에서 이런 용도로 간단하게 쓸 수 있는 프로그램(그림판에 해당하는)이 뭔지를 아직 찾지 못했다.

자, 그러면 rosegarden을 실행해 보자. Flourish.mid 파일을 임포트한 뒤 이를 SC-D70으로 재생하면서 오디오 트랙에 녹음을 하는 것이 목표이다. Rosegarden을 실행하기 전에 QjackCtl의 Connect를 클릭하여 나타나는 창에서 Audio 패널의 상태는 다음과 같을 것이다. Audio 패널에서는 SC-D70이 보이지 않는다(ALSA에는 당연히 있다).


Rosegarden을 실행한 뒤 다시 Connect 창을 살펴보자. 이렇게 바뀌어 있을 것이다. System의 capture에서 Rosegarden의 record 1로 신호가 들어감을 확인하라. 이 연결 상태를 건드리지 말아라!

이 화면을 이해하는 것이 정말 어려웠다. 솔직하게 말하자면 아직도 제대로 이해하지 못했다. 단지 이 연결 상태를 바꾸면 rosegarden에서 녹음이 제대로 되지 않는다는 것을 알았을 뿐이다.

MIDI 파일을 rosegarden으로 임포트한 상태에서 재생 버튼을 눌러서SC-D70에서 소리가 제대로 나는지 확인한다. 그렇지 않으면 Studio->Manage MIDI Devices에서 MIDI Playback에 SC-D70이 나타나도록 조정하면 된다. 다음으로 녹음할 오디오 트랙을 설정해야 한다. Rosegarden에서 1-16번 트랙은 MIDI, 17-32 트랙은 오디오에 해당한다. 미디 파일을 재생과 동시에 오디오 파일로 녹음을 하려면, SC-D70의 REC SOURCE 버튼을 반복하여 눌러서 INST+WAVE를 선택해야 한다.

맨 왼쪽의 INST+WAVE에 불이 들어와 있어야 한다. 다른 소스와 조합이 되어 있는 것은 상관이 없다.

새로운 트랙(17번)을 만든 뒤, 입력을 Audio #1로 설정한다. 이 트랙의 arm을 켠 뒤, 빨강 버튼을 눌러서 녹음을 시작하면 레벨 미터가 움직이는 것이 보일 것이다. 만약 메트로놈 소리까지 녹음이 된다면, Studio -> Manage Metronome에서 적절히 손을 대서 소리가 나지 않게 한다.

미디 파일을 SC-D70으로 재생하면서 rosegarden 안에서 녹음하는 방법을 겨우 알아냈고, 이를 바탕으로 직접 키보드를 두드려서 드럼과 베이스, 오르간으로 구성된 아주 간단한 네 마디 짜리 곡을 녹음해 보았다. 중학생 실습 수준도 안되는 것이라서 여기에 올릴 형편은 되지 못한다. 리눅스에서 rosegarden을 이용하여 녹음하는 방법을 이제 겨우 알아냈으니 아주 조금씩 익혀 나가면 되리라.

내장 사운드 카드를 쓰는 경우

노트북 컴퓨터에 우분투를 설치하여 음악 재생을 하다 보면 불편한 점이 하나 있다. 내장 스피커로 음악을 듣다가 헤드폰을 연결하면 즉시 전환이 이루어지지 않는다는 점이다. 반대의 경우도 마찬가지이다. 구글을 검색하면 터미널 창에서 alsactl restore를 입력하면 된다고 한다. 왜 번거롭게 이렇게까지 해야 하는지 잘 모르겠다.

USB 단자에 오디오 인터페이스이자 음원인 SC-D70을 연결하지 않은 상태에서 rosegarden을 통해 녹음을 하는 경우를 생각해 보자. 대신 Qsynth를 음원으로 한다면, rosegarden을 실행한 상태의 QjackCtl은 다음 그림과 같이 조정을 해야 한다. 원래 rosegarden의 녹음 입력은 system의 capture에 연결된 상태였다. 이를 끊고 나서 Qsynth와 연결을 해야 rosegarden에서 Qsynth로 재생되는 미디 파일을 오디오 트랙에서 녹음할 수 있다. 

USB 단자로 연결한 음원 모듈은 Audio 패널에 보이지 않지만, 소프트웨어 음원인 Qsynth는 보인다.

PulseAudio...

Pulse in/out은 도대체 무엇을 하는 녀석들인지 아직도 이해하지 못하였다. Jack과 PulseAudio의 위험한(?) 공존이 계속되도록 그 균형을 깨지 않는 것이 중요하다. 언젠가는 둘 사이의 관계와 기능을 완벽하게 이해할 날이 올 것을 기대한다. 우분투 스튜디오의 다음 버전에서는 Jack이 PulseAudio를 완전히 밀어낼지도 모르지만 말이다. 일단 확실한 것은, 다음 버전에서는 Xcfe 데스크탑을 더 이상 사용하지 않는다는 것이다(No More Xcfe! Ubuntu Studio Ditches Xfce for KDE).

Ask Ubuntu의 How can I tell if I'm using alsa or pulse-audio by default도 기본 개념을 잡는데 도움이 된다.

다음은 Jack의 입장에서 작성된 글이다.

How to use PulseAudio and JACK? (4 options available)
  1. Don't use PulseAudio with JACK
  2. Use two different soundcards
  3. Route PulseAudio to JACK while JACK is running
  4. Suspend PulseAudio while JACK is running
이 웹문서에서 소개한 WalkThrough User PulseOnJack도 읽어볼 가치가 있다. 마지막으로 PulseAudio를 이용한 loopback 설정에 관한 글을 몇 개 소개한다. 오디오와 관련하여 루프백이 무엇인지, 그리고 이것이 나에게 필요한 것인지는 아직도 모른다.
국문 웹사이트를 검색한 결과 루프백이란 컴퓨터에서 나는 모든 소리를 입력 채널로 돌려주는 기능으로, 과거 윈도우 XP 사운드카드에서 그러한 루프백 기능이 있는 채널 이름이 스테레오믹스 채널이었다고 한다(쿠오넷 관련 글).

한동안 진공관 앰프를 만드느라 납땜질에 그렇게 열을 올리더니 이제는 그 관심이 엉뚱한 곳으로 흘러가고 있다. 전혀 새로운 취미는 아니다. 20년쯤 전에 열을 올리던 분야였으니 말이다. 두 취미 사이에 '음악'이라는 공통점은 분명히 존재한다. 다시 자전거나 망원경, 사진에 관심을 갖게 될 날이 올지도 모른다.

댓글 없음: