지롤라모 프레스코발디(Girolamo Frescobaldi, 1583-1643)는 초기 바로크 시대의 이탈리아 작곡가이자 건반악기 연주자이다. 나무위키의 설명에 의하면, 몬테베르디는 오페라와 성악곡의 발전에 기여했고 프레스코발디는 기악음악, 특히 건반악기 음악의 발전에 큰 역할을 했다고 한다. 현대적인 피아노('피아노포르테'가 정식 명칭)가 만들어진 것은 더 나중의 일이다. 관심이 있다면 야마하 웹사이트의 피아노 발명 이야기를 읽어보자.
맨 위의 꽃 모양은 LilyPond와 Frescobaldi의 실행 아이콘이다. LilyPond 바로 밑의 낡은 8분음표 모양은 LilyPond용 파일(*.ly)이다. 이를 snippet이라고도 부르는 것 같다. 맨 아래의 인물 그림은 '진짜' Frescobaldi.
이러한 음악가를 기려서 이름을 붙인 소프트웨어 Frescobaldi는 LilyPond와 같이 사용하여 악보 작성을 더욱 편하게 도와준다. 마치 R Studio와 같은 통합 개발 환경(IDE)처럼 생겼다. '소스'를 왼쪽 창에 입력하고 컴파일을 거치면 - LilyPond 실행파일의 위치를 Edit -> Preferences에서 미리 설정해 두어야 함 - 오른쪽 창에 오선보가 나타난다. 동시에 PDF 파일도 생성된다. 오른쪽 악보 창에서 음표나 코드명 위에 마우스를 클릭하면 소스 안에서 이에 해당하는 위치가 표시된다. 만약 텍스트 에디터와 CLI LilyPond만을 이용하여 작업을 한다면 문법상 오류가 있하거나 수정할 곳을 찾기가 무척 번거로울 것이다.
입력한 정보는 MIDI 재생 기능을 통해서 확인할 수도 있고("Met Frescobaldi kun je muziek live inspelen, op een MIDI-klavier of zelfs gewoon op het computertoetsenbord."), MIDI 입력으로 악보를 만들 수도 있다. 테스트를 해 보니 내장 MIDI 재생기는 악보에 입력한 코드까지 같이 재생해 주었다.
Frescobaldi의 주개발자인 Wilbert Berdensen은 네덜란드의 오르간 연주자이자 소프트웨어 개발자이다. 연주자이자 개발자라니, 정말 다방면에 능한 재주꾼 아니겠는가.
장미 정원(Rosegarden)과 백합 연못(LilyPond), 이것은 전부 음악과 관련된 무료 소프트웨어의 이름이다. DAW 소프트웨어가 악보를 생성하는데 전부 유용한 것은 아니다. 요즘 자작곡을 만들어 나가면서 녹음도 중요하지만 오선지 형태로 악보를 기록해 놓는 것도 필요하다고 생각되어 무료로 쓸 수 있는 프로그램을 찾아 보았다. 만약 Rosegarden이 Windows용으로도 나왔다면 그것을 택했을 것이다. Cakewalk for BandLab을 악보 편집용으로 쓰는 것도 가능하지만, 그러한 용도로만 사용하기에는 프로그램이 너무 방대하고 무겁다.
종합적으로는 MuseScore가 악보 작성 프로그램으로 가장 평이 좋은 것 같았다. 무료는 아니지만 Noteworthy Composer도 괜찮아 보였다. 그러나 보다 단순하고 독특하면서 텍스트로 입력이 가능한 것이 없는지 검색을 하다가 만나게 된 것이 바로 LilyPond이다. 매뉴얼을 보면 music engraving이라는 용어가 나온다. 악보를 인쇄하는 고전적인 방법이 바로 engraving였었다고 한다. 다음의 동영상을 한번 클릭해 보라. 퓨터(pewter) 또는 백랍(白鑞)이라고 불리는, 주석이 주성분인 금속판을 직접 수공구로 파서 우아하게 이음줄을 넣는 광경은 정말 아름답다. 마치 나전칠기 장인이 섬세하게 자개를 박아넣는 모습을 보는 것 같다.
LilyPond는 이처럼 금속판 위에 정성스럽게 음표와 온갖 기호를 새기고, 잉크를 묻혀서 한 장씩 찍어내는... 이러한 전통적인 프로세스에 최대한 가까운 악보 작성 방식을 컴퓨터 시대에 구현한 것으로 보면 될 것이다. 이 프로그램은 명령행 인터페이스를 갖추고 있으며 GNU/Linux, macOS 및 Windows에서 전부 사용할 수 있다.
공식 다운로드 사이트에서는 ZIP 압축파일을 제공한다. 압축을 푼 뒤 적당한 위치에 복사해야 한다. 버전 2.23.6까지는 여기(Windows용의 경우)에서 설치용 실행파일을 제공한다.
반드시 읽어야 할 LilyPond의 학습용 매뉴얼은 여기에 있다. 국문으로 작성된 'lilypond를 이용한 악보그리기(초급)'라는 글도 있다. 문서 작성 과정에서 많이 쓰이는 LaTeX을 연상하게 하는 체제이다. 즉, GUI 화면에서 음표를 마우스로 찍는 것이 아니라, 자체 문법에 맞게 텍스트로 소스 파일을 만든 뒤 이를 '컴파일'하여 PDF 형식의 악보를 만드는 것이다. 예를 들어 내가 요즘 작업하고 있는 음악의 주제선율은 다음과 같이 기록할 수 있다. 기본 개념을 잡는데 약간의 노력이 필요하지만 그 다음부터는 별로 어렵지 않다.
\relative g' {
\key g \major
\tempo 4=140
r8 d8 b' fis g a b g
d'1~ d8 d c b a4 g8 c~
c b4 g4 d4~ d8~
d8 d8 b' fis g a b g
d'1~ d8 d c b a4 g8 c~
c8 b~ b2.
}
무슨 암호문 같은 이 텍스트 파일을 바탕화면의 Lilypond 아이콘으로 드래그하여 PDF로 전환한 뒤의 모습은 이러하다.
소스 파일을 만드는 과정을 도와주는 Frescobaldi와 Denemo라는 소프트웨어도 있지만, 텍스트 편집기를 이용하여 암호와 같은 소스 파일을 만드는 과정도 재미있다.
음악가에게 악보란 엔지니어의 도면과 같은 것이다. 머릿속에 떠오르는 악상을 귀로 들을 수 있게 구현하는 것뿐만 아니라, 음악을 연주자에게 전달하기 위해서 악보로 전환하는 작업에도 힘을 기울여야 할 것이다. LibreCAD를 익히면서 체험했던 즐거움을 LilyPond에서도 다시 경험하게 되었다.
스케치 수준으로 녹음한 자작곡을 비록 서툰 실력이나마 최대한 동원하여 본격적인 멀티 트랙 녹음으로 완성해 보려고 애를 쓰는 중이다. 직관적으로 녹음하기에 Audacity만큼 좋은 것은 없으나, 미리 생성한 리듬 트랙(메트로놈)과 가상악기의 소리(오디오 인터페이스 출력의 loopback)를 분리하여 녹음하기가 어려웠다. 마이크로폰을 통한 음성 입력과 같은 외부 소리라면 문제가 없다. 내가 Audacity의 사용법을 잘 몰라서 그런 것일 수도...
혹시 ASIO를 이용하면 달라질까 싶어서 Audacity에 기능을 넣어서 직접 빌드해 보기도 하였다. 하지만 JACK router를 동원하지 않으면 내가 원하는 목적을 달성하는 것이 어려워 보였다. 리눅스에서 Audacity(+JACK)를 쓸 때에는 소리를 내는 여러 응용프로그램 중 원하는 것을 골라서 녹음을 하는 것이 가능했던 것으로 기억한다.
Windows에서 JACK까지 설치하여 자유자재로 쓰는 것은 내 실력으로는 쉽지 않다. 혹시 FlexASIO를 쓰면 달라질까 싶어서 이를 설치해 보았다. 분명히 ASIO4ALL보다는 나은 점이 있다. 그러나 configuration file에 한글 디바이스명이 들어가니 이를 읽지 못하는 문제가 있어서 항상 default 입출력 디바이스만을 써야 한다. FlexASIO가 제공하는 디바이스 목록 출력 명령인 PortAudioDevices.exe를 실행하면 Behringer USB 오디오 인터페이스의 경우 '스피커(USB Audio CODEC)'라고 표시한다. 이 문자열을 한글이 들어가지 않게 바꿀 수는 없다.
Device index: 21
Device name: "마이크 (USB Audio CODEC)"
Default sample rate: 44100
Input: max channel count 2, default latency 0.01s (low) 0.0853333s (high)
Output: max channel count 0, default latency 0.01s (low) 0.0853333s (high)
Host API name: Windows WDM-KS
Host API type: 11 [WDMKS]
DEFAULT INPUT DEVICE for this host API
비ASCII 문자가 있으면 UTF-8로 설정 파일을 저장하면 된다는데, 실제로는 그렇지 못하였다. FlexASIO_GUI는 설치 방법 자체를 모르겠다. .NET이 뭐 어쩌고 하는데, 도저히 더 이상 따라서 할 수 있는 수준이 아니었다. 약간 좌절감에 휩싸여 있다가 다시 검색을 해 보니 GitHub 사이트의 'Issues' 항목에 설치 방법을 묻는 질문이 있었고 이에 대하여 Release 페이지를 답변으로 달아 놓았다. 그러면 그렇지! 최신 버전인 v0.35부터는 설치 파일을 제공하고 있었다. 차라리 친절을 조금 더 베풀어서 README.md 파일에서 이를 알려주었다면 더욱 좋았을 것이다.
FlexASIO_GUI의 실행 화면. "마이크 (USB Audio CODEC)"라는 디바이스명이 "?�피�?2- USB Audio CODEC )"라고 표시되었다.
FlexASIO_GUI는 변경된 설정을 프로그램에서 직접 적용하는 것이 아니라, 일단 설정파일(FlexASIO.toml)에 기록을 한 뒤 ASIO를 구동하는 응용프로그램이 실행될 때 이를 읽어서 적용하는 것으로 보인다. 응용프로그램에서 나는 소리를 Audacity(with ASIO support)에서 녹음하기 위해 FlexASIO_GUI에서 입력을 "?�피�?2- USB Audio CODEC ) [Loopback]"으로 설정해 보았다. 그러나 Audacity(with ASIO support)을 실행하니 FlexASIO가 구동되지 않았다. 설정파일로부터 "?�피�?2- USB Audio CODEC )"라는 해괴한 디바이스명을 제대로 읽어들이지 못하는 것으로 보인다. FlexASIO.log 파일을 확인해 보니 'No matching devices found'라는 메시지가 보인다.
도대체 어쩌라는 것인지? log file에서는 '마이크 (USB Audio CODEC)', '스피커 (USB Audio CODEC)'처럼 한글을 포함하는 디바이스명을 제대로 보여주지만, FlexASIO_GUI와 이를 통해 저장된 FlexASIO.toml에서는 "?�피�?2- USB Audio CODEC )"로 나타난다. 그러나 Audacity(with ASIO support)가 실행될 때에는 FlexASIO.toml에 "스피커 (USB Audio CODEC)" 또는 "?�피�?2- USB Audio CODEC )" 무엇으로 기록이 되어 있어도 읽지를 못한다. 이럴 것이라면 그냥 WASAPI를 쓰고 말지...
디바이스명에서 한글을 영어로 바꾸면 되지 않을까? 엉뚱하게도 디시인사이드에서 해결책을 찾았다. 제어판 -> 소리에서 장치명을 바꾸면 되는 것이었다.
루프백 녹음은 별도로 하더라도 FlexASIO는 ASIO4ALL을 거부하던 Cakewalk by BandLab을 되살리는 훌륭한 역할을 하였다. WASAPI로 Cakewalk by BandLab을 구동하면, 가상 악기 연주시 레이턴시가 너무 심하여 도저히 쓸 수 없었다.
건반을 연결하여 그냥 피아노 소리를 즐기려면 나에게는 Sforzando가 가장 편리하다. 그런데 이 응용프로그램과 FlexASIO의 궁합은 별로 좋지 못하다. 오히려 WASPI가 더 낫다. 이론적으로는 그래서는 안 될 것이다.
Waveform의 2021년판 사용자 가이드 문서는 383쪽, Cakewalk by BandLab의 2021년판 레퍼런스 가이드 문서는 무려 1942쪽에 이른다. Waveform이 간편하게 쓰기에는 더 좋으므로, 가능하다면 이것을 사용해 보려고 노력을 해 보았다. 하지만 FlexASIO로 구동한 상태에서 SampleTank를 로드하여 녹음을 하다가 갑자기 프로그램이 죽어버리는 일이 자꾸 발생하였다.
합리적인 대안은 Cakewalk뿐일까? 어제 저녁에 테스트를 해 본 결과 Cakewalk(+FlexASIO)는 매우 안정적으로 동작하였다. 미디 파일을 열면 자동적으로 TTS-1이 로드되는 것도 편리하고, 기본적으로 딸려오는 가상악기의 수준도 나쁘지 않다. 예전 Windows 3.1 시절에 Cakewalk을 사용해 본 일이 있었고, Music Creator 5와 Sonar도 조금 써 보았으므로 그렇게 낯설지는 않다. Cakewalk by BandLab의 무료 정책이 곧 종료되면 Cakewalk Sonar(유료)로 재발매가 되고 기존 Cakewalk은 더 이상의 업데이트는 없을 것이라 하니 참고하도록 하자. Sonar가 재발매된다고 하여 기존 Cakewalk을 아예 못 쓰는 것은 아니니까.
Waveform Free와 Cakewalk by BandLab을 직접 비교한다면? 마음속으로는 이미 결정을 하였지만, AudioTechTV의 제인 스미스(Jane이 아니고 Zane Smith)가 뭐라고 하는지 일단 들어보자. 동영상 제목은 "Cakewalk vs. Waveform Free - Which is the best free DAW?"이다.
Waveform Free: Windows/Mac/Linux에서 전부 사용 가능. 설치가 쉽고 최신 DAW 느낌이 나는 직관적인 인터페이스.
Cakewalk by BandLab: 전통적인 DAW 느낌. 외부 플러그인 작동이 좀 더 안정적인 것 같음. 딸려오는 가상악기, 플러그인 등이 다양하고 괜찮음.
Cakewalk을 앞으로 주력으로 사용하겠지만 - Sonar가 나오면 정식으로 구입할 용의도 있음 - Waveform Free와 LMMS를 완전히 손에서 놓고 싶지는 않다. 그들 나름대로 쓸모가 있으므로. 생각해보면 지금까지의 긴 여정은 제대로 된 ASIO 드라이버를 같이 제공하는 오디오 인터페이스를 소유하지 못한 것에서 비롯된 것이라 해도 과언은 아니다. 그렇지만 그 여정에서 들인 시간과 노력이 낭비라고는 생각하지 않는다.
초보자를 위한 Cakewalk 튜토리얼 동영상(25분 30초)을 소개한다. 다른 DAW에 소프트웨어에 경험이 있다면 별로 어렵지 않게 감을 잡을 수 있을 것이다.
Just Da Norm(Norman Williams III)이 만든 "Caketorials" 시리즈 동영상도 도움이 될 것이다. 다음은 MIDI groove clip을 이용하는 방법에 관한 설명이다.
제어판->소리에서 디바이스명을 고친 다음부터 Cakewalk의 동작이 이상해졌다. 재설치를 해도 마찬가지였다. Sforzando에서는 ASIO를 쓸 경우 버퍼 크기를 WASAPI때보다 더 크게 설정하도록 강제로 바뀌어서 음질이 좋지 않았다. LMMS의 동작도 불안정하였다.
에휴...
Waveform Free + WASAPI로 되돌리고 나니 모든 것이 자연스러워졌다. 참으로 알다가도 모를 일이다. 다음은 이 환경에서 만든 간단한 음악.
사무실에 노트북 컴퓨터를 가져와서 휴대폰 핫스팟으로 인터넷 접속을 하여 필요한 프로그램을 다운로드하느라 6 GB가 넘는 데이터를 사용하였다. 나는 한 달에 데이터 총량 7 GB짜리 요금제를 사용하는 알뜰폰 사용자인데! 과연 이만큼 투자할 필요가 있었는지는 나중에 판정이 날 것이다.
빌드 과정.
빌드 완료! 실행파일은 C:\projects\audacity-asio\Release\에 위치하게 된다.
오디오 설정->인터페이스->호스트에 ASIO가 나타난다.
FlexASIO의 설정 도구인 FlexASIO GUI를 이용하는 방법을 익히고, 이를 통하여 Audacity에서 능숙하게 오버더빙을 하는 것이 다음의 목표이다. '진짜' 외부 입력을 오버더빙하는 것은 문제가 되지 않는다. 가상 악기(Soundfont or VSTi)의 연주를 녹음하려면 루프백을 인풋으로 해야 하는데, 그러면 녹음과 동시에 재생되는 기존 트랙이 새 트랙에 같이 녹음되기 때문이다. ASIO(+JACK router?)를 쓰면 될 것으로 믿는다. 만약 실패하면? Waveform을 쓰면 된다. Waveform 내에서 SampleTank를 VSTi 플러그인으로 열었을 때 화면이 제대로 나오지 않는 문제를 해결하였으므로(어제 쓴 글 링크).
FlexASIO가 ASIO4ALL보다 여러 면에서 더 낫다고 한다. 객관적으로 틀림이 없는 사실일 것이다. 하지만 FlexASIO는 트레이에서 작동 여부를 직접적으로 보여주지 않는다. ASIO4ALL과는 달리 FlexASIO는 작동 중이라 해도 다른 애플리케이션이 소리를 내는 것을 막지 않으니 사용자가 작동 여부에 신경을 쓸 필요가 없을지도 모른다.
두 소프트웨어를 번갈아 설치해 보았다. Cakewalk by BandLab은 ASIO4ALL을 튕겨내는 것 같다. 그러나 FlexASIO가 설치된 상태에서는 얌전하다. 둘 중 어느 것으로 정착할지는 아직 결정하지 못하였다.
어느 것을 쓰든, LMMS에서 SampleTank 4를 VST로 로드하면 동작이 매우 불안하였다. 피치가 맞지 않거나(MIDI 신호가 불완전하게 전달되는 탓인지), 건반을 누르면 한 옥타브가 낮은 소리가 나기도 하고, 가장 심각한 것은 녹음을 종료하면 프로그램이 갑자기 종료되어 기록이 남지 않는다. Sf2 player의 plugin 동작에서는 그렇지 않았었다. 모든 것을 다 만족할 수는 없으니 LMMS에서 테스트하는 것은 이 정도로 마쳤다.
다음은 Tracktion Waveform Free에서 SampleTank를 로드한 화면을 보여주는 것이다. ASIO4ALL이 구동되는 상태이다.
Waveform에서 SampleTank 로드하기. 노란 상자 안이 plugin으로 꽉 채워지지 않는다.
SampleTank plugin 화면 안이 꽉 차게 채워지지 않는다. 이 상태에서는 마우스 포인터를 원하는 곳에 놓을 수가 없다. 외부 모니터를 연결하면 화면이 정상적으로 채워진다. 마우스를 클릭하여 내가 원하는 악기를 로드한 다음 건반을 누르니 소리가 잘 남을 확인하였다.
ThinkPad E14 G3 단독으로 모든 음악 관련 작업을 감당할 수 있게 만들고 싶었는데 외부 모니터를 연결해야 하는 꼴이라니... 어떻게 매만지면 노트북 모니터 자체에서 플러그인 화면이 제대로 나오기도 하지만, 재현할 방법을 아직 모르겠다. 시행착오를 좀 더 겪어야 할 것 같다.
Sforzando나 SampleTank를 단독으로 실행해 놓고 MIDI 건반을 연결하여 Audacity로 녹음을 하는 것이 요즘 며칠 동안의 주된 즐거움이었다. 이는 WASAPI로도 충분한 작업이다. ASIO4ALL이나 FlexASIO가 중간에 끼어들면 녹음을 할 수 없다. 왜냐하면 Audacity가 ASIO를 통해서 작동하도록 컴파일되지 않았으므로!
좋은 유료 프로그램 하나만 쓰면 모든 것이 다 해결될지도 모른다. 취미 수준의 초저예산 녹음실(?)을 운영하려니 몇 개의 무료 프로그램을 누덕누덕 기워서 쓰는 꼴이랄까. Waveform User Guide(2021년판)를 다시 들추어 보면서 녹음 연습을 해 나가야 되겠다.
2023년 7월 26일 업데이트 - 화면 맞춤 문제를 해결하다
몇 차례의 시행착오 끝에 Waveform 안에서 플러그인으로 불러들인 SampleTank의 화면이 창 안에 꼭 맞지 않는 문제를 해결하였다. IK Multimedia의 AmpliTube도 같은 문제가 있었고, 이것 역시 같은 방법으로 해결할 수 있었다.
최대해상도 1920 x 1080로 맞춘 ThinkPad E14 G3(Windows 11)을 기준으로 설명한다. 화면배율 125%에서 Waveform을 실행한 뒤 SampleTube를 로드하면 다음과 같이 부화면의 왼쪽 아래에 몰려서 표시되고, 마우스 포인터의 위치와 실제 작동하는 곳이 다르다. 마우스 포인터의 화면상 위치는 C4 키지만, 클릭하면 반응하는 것은 C3이다.
마우스 포인터의 위치(C4)와 실제 눌린 건반 키(C3)가 다르다.
화면 배율을 100%로 만든 뒤, 마우스 포인터를 SampleTank 부화면의 오른쪽 아래 모서리로 가져간다. 마우스 포인터가 양방향 화살표로 바뀔 것이다.
이 상태에서 부화면이 확장되는 방향으로 마우스를 드래그한다. 반드시 바깥쪽으로 드래그해야 한다. 안쪽으로는 드래그 동작이 되지 않을 것이다.
그러면 어느 순간 SampleTank 부화면이 꽉 차게 될 것이다. 화면 배율이 100%가 아닌 상태에서는 아마 안 될 것이다! 이제부터는 작업하기 편하게 화면 배율을 변경해도 플러그인 화면은 잘 동작할 것이다.
OBS Studio 같은 것을 써서 화면을 동영상으로 기록하여 공개하면 더욱 좋았을 것이나, 내공이 아직 그 수준에는 미치지 못하였다. 리눅스에서는 Kazam을 써서 매우 쉽게 녹화를 했었던 기억이 난다.
PortAudio란 무엇인가? 사실 나도 잘 모른다. 나의 제한된 지식에 의하면 PortAudio란 Audacity나 LMMS의 오디오 드라이버 설정에서 보이는 항목이라는 것이 전부이다.
PortAudio is a free, cross-platform, open-source, audio I/O library. (출처)
Audio I/O를 위하여 PortAudio를 사용하는 프로그램의 목록이 여기에 있다. LMMS가 빠진 것을 보면, 이 목록에 있는 것 말고도 많은 응용프로그램이 PortAudio에 의존하고 있을 것이다. 그러나 내가 보기에 Windows 계열에서 소위 '주류'를 이루는 오디오 관련 응용프로그램을 사용할 때 PortAudio를 꼭 이용해야 할 일은 그다지 많지 않은 것 같다.
Windows의 오디오 관련 소프트웨어 설정에서 흔히 접하는 WASAPI는 Windows Audio Session API의 약자로서 Windows Vista부터 등장하였다고 한다. 요즘은 성능이 좋아진 WASAPI 덕분에 ASIO(forALL)을 사용할 필요가 없다는데... 'WASAPI vs. ASIO' 부류의 글은 구글에서 조금만 찾으면 나온다.
WASAPI와 ASIO는 동등한 레벨에서 일을 하는 도구로 여겨지는데, 나는 개발자도 아니고 아직 공부가 부족한 관계로 PortAudio와 이들과의 관계를 완벽하게 이해하지 못하였다. PortAudio API Overview에서 소개한 그림을 보면 PortAudio는 응용프로그램과 드라이버?(ASIO, WASAPI, ALSA...)의 사이를 연결하는 역할을 하는 것 같다.
다음 이미지에서 보였듯이 Audacity와 LMMS 설정 창에서 'PortAudio'를 만나게 된다.
Audacity의 설정 창. '호스트'에서 고를 수 있는 대상은 MME, Windows DirectSound, Windows WASAPI이다. 어느 것을 선택해도 PortAudio V19.7.0-devel이 사용 중인 것으로 나타난다.
LMMS 1.2.2의 설정 창.
공식 웹사이트에 설명에 의하면 "PortAudio is a free, cross-platform, open-source, audio I/O library"라 하였다.
왜 PortAudio 등에 관심을 갖는가? IK Multimedia가 무료로 제공하는 SampleTank 4 Custom Shop의 악기 소리가 매우 마음에 들어서 요즘 이를 이용하여 간단한 녹음을 하기 시작하였다. 주로 활용하는 녹음용 소프트웨어는 Audacity인데 여기에서는, 내장 소프트웨어 악기의 출력을 리듬 트랙과 분리하기가 어렵다. 전부 loopback 하나로 되돌아오는 소리이기 때문이다. 제대로 된 오디오 인터페이스와 제조사가 제공하는 ASIO 드라이버가 있다면 혹시 Audacity 수준에서 가능한지도 모르겠다. 리눅스에서 JACK을 사용할 때에는 이를 분리하여 녹음하는 것이 가능했던 것으로 기억한다.
LMMS에서 VeSTige를 사용하면 SampleTank를 VSTi로 로딩하는 것이 가능한데, 작동이 매끄럽지 않다. Sf2 player를 쓸 때에는 별다른 문제가 없었으나, SampleTank는 Sf2 형태로 사용할 수가 없다. Waveform Free에서 SampleTank를 로드하면 화면이 너무 작아서 알아보기 힘들고 마우스 포인터가 이상한 곳으로 간다. Cakewalk by BandLab에서는 ASIO4ALL을 거부하는 것 같다... Cakewalk은 다음 제품(유료화)이 나오면 더 이상 지원이 되지 않는다는 슬픈 소식도 들린다.
혹시 LMMS에서 ASIO4ALL을 쓰게 만들면 VeSTige 작동이 원활하게 될까? 이미 작년 가을에 작성할 글(LMMS에서 ASIO4ALL 드라이버를 쓰려면, 그리고 MIDI 신호 녹음의 문제)에서 PortAudio 라이브러리를 가져다가 ASIO4ALL이 제대로 동작하게 만드는 방법을 기술한 일이 있다. libportaudio64bit.dll 파일을 새로 가져다가 기존의 libportaudio-2.dll로 바꿔치기한 뒤에 LMMS를 다시 실행하면 다음의 창이 자동적으로 뜬다.
PORTAUDIO에 대한 설정에서 BACKEND를 클릭하면 비로소 'ASIO'가 나타난다.
LMMS의 설정을 변경하면 다음번 실행 때에 적용이 됨을 잊지 말자. 일단 종료를 한 뒤 다시 LMMS를 실행하면, 드디어 모니터 오른쪽 아래에 ASIO가 기동함을 알리는 작은 창이 나타난다.
그러나 아직 끝나지 않았다. ASIO 제어판을 열어서 WDM Device List에 보이는 다음의 두 사운드카드 중 내장(Realtek)을 무력화하고 idle 상태인 USB 오디오 인터페이스(Behringer)를 살려야 하는데 그게 잘 안된다. 공식 online help를 읽어봐도 영 아리송하다.
Realtek 옆의 ▷를 끄고 USB CODEC의 것을 켜야 하는데 그게 잘 안된다!
몇 차례의 시행착오 끝에 방법을 알아냈다. ASIO4ALL의 WDM Device List에서 ON/OFF에 해당하는 버튼을 클릭하여 원하는 설정을 만든 뒤 LMMS를 재실행해야 USB 오디오 인터페이스가 활성 상태에 들어간다. 제어판 자체에는 ASIO4ALL 재시작 기능이 없으니, 그럴 만도 하다. ASIO를 사용하는 프로그램이 재시작해야 ASIO의 바뀐 설정 상태가 적용된다는 간단한 원리를 잊지 말도록 하자.
독일 기업 Steinberg가 갖고 있는 ASIO의 라이선스 정책 때문에 이 기능을 포함하여 Audacity를 빌드하면 배포를 하지 못하고 개인 용도로만 써야 한다. Audacity 공식 문서 중 ASIO Audio Interface의 시작 부분을 자동 번역한 뒤 약간 고쳐서 인용해 본다.
독점적인 ASIO 인터페이스 표준은 짧은 대기 시간(latency) 녹음 및 재생을 위해 Windows에서 필수적입니다. 또한 일반적으로 Windows에서 다중 채널 녹음을 만드는 가장 좋은 방법입니다. 라이센스 제한으로 인해 출시된 Audacity 버전에서 ASIO 지원을 포함할 수 없지만, Audacity는 개인용, 비배포용 ASIO 지원으로 컴파일할 수 있습니다. 이 페이지에는 ASIO 라이센스 문제와 ASIO 지원으로 Audacity를 컴파일하는 단계가 요약되어 있습니다.
ASIO and Audacity라는 문서에서 용기 있는 자들을 위한 빌드 요령을 설명하고 있다. 읽어보니 조금 가졌던 용기가 다 사라지고 말았다. Audacity 포럼에 2021년 올라온 글 "Building Audacity 3.0.3 with ASIO on Windows"라는 글에서 약간의 희망을 주는 성공 사례를 소개하였지만, 그 행운이 나에게도 올까? Step-by-step tutorial에 보다 가까운 문서가 있어서 소개해 둔다. 이 글에서는 Audacity 3.3.2를 위한 빌드 전용 스크립트를 제공한다. 곧 시도해 볼 생각이다(그리고 2023년 7월 27일, 빌드에 성공하였다! 관련 글 링크).
Audacity에서 ASIO를 지원하도록 컴파일한다면, JACK Router를 통해서 매우 다양한 일을 할 수 있을 것으로 예상된다. 즉 Audacity 안에서 미리 생성한 리듬 트랙(메트로놈 소리)을 들으면서 가상 악기를 실시간 연주하여 오버더빙을 한다든지.
정 아쉬우면 리눅스를 쓰면 된다....
(사족)FlexASIO("the flexible universal ASIO driver")는 또 무엇인가? ASIO4ALL보다 나은가? reddit.com에 포스팅된 글에 의하면 그렇다고 한다. ASIO4ALL을 삭제하고 FlexASIO를 설치해 보았다. LMMS를 실행한 상태에서 유튜브의 재생음을 들을 수 있다!
FlexASIO의 설정은 텍스트로 된 configuration file을 건드려야 하는데, 친절하게도 별도로 개발된 FlexASIO GUI 프로그램이 있어서 도움이 된다. 세상에는 참 고마운 사람들이 많다. 오늘 하루 동안 별 것을 다 경험해 본다.
국어로 만들어진 FlexASIO 활용 자료도 제법 있는 것을 보니 쓸모가 많아 보인다. 다음은 "ASIO4ALL 오류나는 분들을 위한 대체 프로그램 FlexASIO 사용법"이라는 동영상이다. USB 마이크로폰을 사용하여 OBS에서 녹음을 하다가 간혹 장치 출동 오류를 겪는 사람에게 도움이 된다.
온갖 종류의 쇼핑, 영화 관람, 다채로운 식당, 건담베이스 등 매니아층이 좋아할 것들 등등 용산 아이파크몰에 오게 되면 시간을 보내기에는 부족함이 없다. 보통 아내와 같이 중년 남자가 백화점에 오게 되면 별로 할 일이 없어서 지루한 시간을 보내야 하는데, 이곳은 그렇지 않다. 전자제품이나 취미와 관련된 것이 즐비하여 가족 모두에게 만족감을 주는 쇼핑을 즐기는 것이 가능하다. 그런데 올 때마다 너무 방대하고 구조가 복잡하여 늘 혼이 빠져나가는 것 같은 경험을 한다.
모든 방문객에게 의무적으로 15분짜리 '용산 아이파크몰 이용 안내' 교육을 할 것을 강력히 추천하는 바이다... 처음 이곳을 찾았을 때에는 용산역에 의해 저층부가 둘로 나뉘어 있다는 것 정도만 생각하고 있었다. 그러나 'XYZ 파크'라는 구조가 서로 어떻게 연결되는지 파악하는 것은 아직도 어렵다. 전체적인 규모에 비하여 화장실의 수가 적고 찾기가 어렵다는 느낌을 받는 것은 나 혼자 뿐일까?
식당을 찾는 것도 마찬가지. 지난번에 음식을 맛있게 먹었던 그 식당이 어디에 있는지 오늘은 도무지 찾지를 못하겠다. 7층의 대규모 식당가는 용산 아이파크몰의 모든 '파크'와 직접 연결되어 있지 않다. 이러한 체계를 어제 겨우 이해하게 되었다. 어느 파크였는지 기억도 나지 않는 곳의 7층에 올라가니 식당은 몇 개 없고, 엄청난 수의 대기 손님들이 있었다. 그곳에서 바깥으로 나가는 문이 있는데, 평소에는 옥상 주차장으로 가는 문일 것이라 생각하고 신경도 쓰지 않고 있었다. 그런데 어제는 무슨 생각이 들었는지 유리문을 밀고 나갔더니 저 멀리에 '테이스트 파크'의 입구가 보이는 것 아닌가. 아, 그렇구나!
점심 시간이 지나가면서 사람은 점점 많아지고, 나는 급기야 가방에서 마스크를 찾아 착용하였다. 요즘 재유행 기미가 보이는 코로나-19 또는 예년과 다르게 장마철까지 유행하는 독감에 걸릴 것만 같았다. 여름이라면 호흡기 감염이 줄어드는 것이 정상인데, 작년 9월 16일 발령된 독감 유행주의보는 10개월이 넘겨 유지되고 있다고 한다.
주차장 역시 그러하다. 해, 달, 별 주차장에 주차하면 각각 무엇이 편리한지, 나가는 방향은 어느 도로와 붙어 있는지 미리 알지 못하면 매우 혼동스럽다. 지금까지 달 주차장만 몇 번 이용해 본 비 서울주민으로서 매번 출차할 때마다 과연 이 주차장을 택한 것이 최선이었는지 고민을 하게 된다. 출차하면서 맞닥뜨리는 갈림길(원효로 vs. 한강대로)에서 어느 길을 택해야 광화문 인근으로 편하게 올 수 있는지를 놓고 수 초 안에 결정을 내려야 했다. 주차장 안에서 층을 내려가기 위해 뱅뱅 돌고 있는 상황에서는 내비게이션도 별로 도움이 되지 않는다.
쇼핑센터 안내를 위한 앱이나 인쇄된 지도를 펴 들고 다녀야 하는가? 이렇게 큰 국제적 규모의 쇼핑센터가 있다는 것을 자랑스럽게 여겨야 하는가? 코엑스몰와 비교해도 난이도가 너 높다고 생각한다. 다음번 방문할 때에는 좀 더 익숙해져 있을 것을 기대해 본다.