2022년 10월 8일 토요일

LMMS에서 ASIO4ALL 드라이버를 쓰려면, 그리고 MIDI 신호 녹음의 문제

ThinkPad E14 G3(Windows 10)에 iCON iKEYBOARD NANO 키보드를 USB 케이블로 직접 연결하여 쓰려는 시도는 더 이상 하지 않기로 했다. 그 대신 아주 오래 전에 쓰던 USB MIDI cable을 컴퓨터와 키보드 사이에 넣었다.

이런 스타일의 USB MIDI interface는 요즘은 알리익스프레스에서 3~5천원 정도에 팔린다. 

Windows에 LMMS를 설치하고 건반을 통해 신호가 잘 전달됨을 확인하였다. 그런데 이번에는 엄청난 레이턴시가 느껴지는 것이 아닌가. 아무래도 ASIO4ALL 드라이버를 써야 할 것 같았다. 사용 중인 오디오 인터페이스가 Behringer UCA200이니 전용 ASIO 드라이버는 존재하지 않는다.

ASIO4ALL을 다운로드하여 설치를 마쳤는데 LMMS 설정 창에서 보이질 않았다. 이건 또 왜 이러지? 만약 Tracktion Waveform Free나 Cakewalk by BandLab과 같은 다른 free DAW를 사용한다면 상황은 좀 달라졌을지도 모르겠으나. 기왕 LMMS에 익숙해지기로 했으니(Linux와 Windows 양측에서 전부) 해결 방법을 찾아야 한다.

구글 검색을 해 보니 portaudio의 DLL 파일을 구한 뒤 LMMS 실행파일이 있는 디렉토리에 libportaudio-2.dll이라는 이름으로 저장하면 된다고 한다. LMMS v1.2.2를 설치하면 따라오는 libportaudio-2.dll 파일은 치워 버려야 한다. 다음 유튜브의 설명을 따라서 하면 쉽다. 아래에 소개한 동영상의 제목은 'LMMS (64 bit) - ASIO DRIVER SUPPORT - the easy way'이다. 



나는 다음의 웹사이트에서 64비트용 portaudio 라이브러리 파일('libportaudio64bit.dll')을 구해서 기존의 DLL 파일을 바꾸었다.

https://github.com/spatialaudio/portaudio-binaries

ASIO4ALL이 제대로 작동하게 만들었더니 비로소 편안한 실시간 연주를 즐길 수 있게 되었다. 문제를 해결했다고 하여 별로 보람이 느껴지지는 않는다. 리눅스에서는 USB 케이블만으로도 인식이 되는 MIDI 건반이 윈도우에서는 MIDI 인터페이스를 통해야 하다니. 보통은 윈도우에서는 간편하게 되는 일이 리눅스에서는 더 어려운 과정을 거쳐야 하지 않던가?

사소하지만 아직 남은 문제가 있다. 건반의 pitch/modulation wheel의 작동이 원활하지 않다. 다른 컴퓨터에서 건반을 연결한 다음 설정용 프로그램을 건드려서 고쳐 봐야 되겠다.

다음의 동영상은 LMMS가 아닌 일반적인 DAW에서 ASIO4ALL을 설정하는 방법을 설명하고 있다. 특히 ASIO 제어판이 나오는 2분 34초부터 눈여겨 보야야 한다.


LMMS에서 MIDI Keyboard controller의 작동이 이상했던 이유는

Pitch bend의 범위는 다음의 창에서 숫자를 넣어서 조절해야 한다. 기본값은 1, 즉 반음에 불과하다. 건반 자체의 설정 문제는 아니었다.



LMMS에서 건반의 조절기(놉, 휠 등)에 컨트롤러 기능을 부여하는 방법은 조금 전에 알아냈다. 그런데... 피치 변화 신호가 녹음(MIDI)이 되지 않는다. 즉, MIDI 건반을 연결하여 LMMS에서 가상악기를 실시간으로 연주할 때에는 pitch bend가 잘 작동한다. Piano roll에서 녹음 시에 들리는 소리 역시 정상이다. 그러나 녹음된 MIDI data를 재생해 보면 pitch bend 데이터가 전혀 기록되지 않았음을 알 수 있다. 아, 어째서 그런 것일까? 정말 공부할 것이 너무나 많다. 이는 매우 잘 알려진 문제인 것으로 보인다.

[LMMS Forum] Why LMMS won't record midi pitch-bend signals into piano-roll? (from midi keyboard or loaded vsti)

[Reddit] Pitch bend from midi

packbat의 답변(2020년도):  Belated response: it's a known issue with LMMS's MIDI support being incomplete. It's possible to program it in manually within the piano roll editor - there's an automation button that handles pitch bends - but the dev community has yet to figure out how to implement pitch bend data or sustain pedal data or the like correctly for LMMS, so it's just not supported right now.

LMMS 커뮤니티에서도 잘 알고 있는 문제라서 이에 대한 논의는 지속적으로 벌어지고 있는 것 같다. Automation track을 이용한 트릭이  있지만, 서스테인 페달 등 MIDI에서 보편적으로 다루어지는 신호를 전부 수용할 수 있을지는 미지수이다. LMMS 포럼의 다음 글에 현재까지의 해결책이 정리된 것 같은데, 2017년도의 글이라서 그 이후의 업데이트 상황은 잘 모르겠다.

[LMMS Forum #3724] Record pitch automation directly into piano roll

에혀... 다른 DAW를 써야 하나. LMMS의 기본을 더 익힌 다음에 결정할 일이다.

LMMS 관련 공식 정보

댓글 없음: