Daybreakin Things

Posted
Filed under 컴퓨터

요즘에 악보를 그리는 프로그램에 대해서 관심이 많이 있었고, LaTeX를 배워볼까도 생각하고 있었다. 그러던 차에, IRC에서 그 유명하신(-_-) 경곽 19기의 서 모 선배를 만났고, 그 분이 lilypond라는 프로그램이 있다는 걸 알려주셨던 것이다. -_-;;

일단 홈페이지 가서 개발 동기와 목적, 스크린샷 등을 보니 품질이 상당히 훌륭하길래 한 번 써보기로 했다. (그러나 그것이 삽질의 전주곡이 될 줄은....-_-)

전에 MusiTex의 스펙 문서를 한 번 봤던 터라 기본 구조를 이해하는 건 그리 어렵지 않았다. 그래서 연습 겸(;;;) 스캔이 잘못되었던 Antonio Diabelli의 6 Sonatas for 4-hands 중 1번 1악장 첫 두 페이지를 만들기로 했다.

Phase 1.

일단 원하는 음정을 그려보는 것이 문제였다. 절대 음정으로 모두 쓰려니 곡 자체가 음역이 넓어 불편할 것 같아 relative 명령을 사용했더니 깔끔하게 해결되었다. 기본적인 tie, slur, 화음, 음길이, 스타카토, dynamics 등을 넣는 방법을 익혔다. 여기서 가장 고생했던 것이 화음 넣는 방법을 익히는 거였는데, 알고보니 나는 제대로 넣고 있었지만 다른 부분에 오류가 있었다. -_-;

Phase 2.

내가 원하는 위치에 원하는 요소를 놓는 방법을 찾았다. Vertical spacing, TextScript, Rehearsal Mak, Metronome Mark 등을 원하는 대로 놓으려고 보니 각각마다 설정하는 방법이 제각각이었다. 이 과정에서 엄청난 시간이 소요되었는데, lilypond의 매뉴얼 전체 중 70% 가량을 최소한 한 번 이상 보았다. -_-;;

Phase 3.

lilypond 엔진에 문제가 있음을 발견. 악보 그리기 자체의 문제라기는 아니었고, postscript로 컴파일 도중 아주 사소한 문법 오류가 생겼을 때 에러 메시지를 출력하지 않고 parsing하다가 그냥 종료되어 버리는 경우가 있었다. 이게 소스가 아주 복잡하기 때문에 에러 메시지가 없으면 어디가 잘못됐는지 찾기가 상당히 어렵다. 따라서 새로운 명령어를 사용할 때마다 애를 먹었다. (특히 #과 를 바꿔서 쓰는 경우에 이런 현상이 잘 발생-_-)

Phase 4.

내가 만든 것과 원래 종이 악보와 레이아웃을 동일하게 맞추기. 이건 이미 NWC에서도 비슷하게 해 본 삽질이었는데, 매번 "컴파일"이라는 과정을 거쳐서 pdf로 결과물을 확인해야 하기 때문에 시간이 오래 걸렸다. 악보 전체의 글꼴 크기, system 사이 간격, staff spacing 등등 온갖 변수를 아주 '잘' 조절해서, 결국 강제 pageBreak까지 써가면서 맞추었다. 이거 하는 데 대략 1시간 이상 소요되었다. -_-;

이게 처음과 마지막에 레이아웃을 잡기가 힘들어서 그렇지 음표를 입력하는 건 그렇게 어렵지 않으므로, Secondo 악보는 나중에 금방 끝낼 수 있을 것이다. (그렇다. 지금까지 한 삽질은 바이엘 수준으로 간단한 primo 악보였던 것이다! orz) 다행히, 내가 작곡한 악보들의 높은 품질로 만들 때도 요긴하게 쓰일 것 같다.

어쨌든 이렇게 해서 오늘의 삽질 일기는 끝. -_-

삽질의 결과물 보기

덧. 삽질을 많이 하긴 했지만, 매뉴얼을 통독한 덕분에 다양한 악보 표기에 대해 알 수 있었다. 작곡할 때나 다른 악보를 볼 때 도움이 많이 될 것 같다. (이 프로그램은 그레고리안식으로 표기된 것도 지원하며 옵션에 따라 음악 교과서에 나오는 박자표도 만들 수 있고 무궁무진하게 응용 가능하다. 게다가 LaTeX에 확장으로 바로 삽입 가능!)