Computer, Music

  1. Lilypond는 어떤 프로그램인가? Lilypond 사용을 위한 준비
  2. 기본적인 악보 조판 > 이번 포스트
  3. 찬송가 악보 그리기
  4. 코드 있는 악보 그리기
  5. 좀더 예쁜 악보 만들기

기본적인 악보 조판

이미 LilyPondTool을 설치한 상태라면 쉽게 악보를 만들 수 있다. jedit의 메뉴에서 Plugins > LilyPondTool > Score > Score Setup Wizard… 를 선택한다. 그러면 다음 그림과 같은 창이 새롭게 나타난다.

Wizard Window 1

이제 원하는 정보들을 하나씩 채워넣으면 된다. 기본적인 보컬 악보를 그리려고 한다면 제목, 작곡가, 작사가 정도의 정보를 넣으면 될 것이다.

Wizard Window 2

두번째 뜨는 창에서는 어떤 시스템의 악보를 그리는지를 선택할 수 있다. 아래 그림처럼 Vocals > Voice (with lyrics)를 누른 후에 Add 버튼을 눌러서 맨 오른쪽 영역에 Voice (with lyrics)가 보이게 하자.

Wizard Window 3

Next를 누르면 이번에는 조성과 박자를 선택할 수 있다. 필요에 맞게 선택 후에는 가사를 넣을 것인지, 가사는 몇 절까지 넣을 것인지, 그리고 코드 이름을 넣을 것인지를 선택한다.

Wizard Window 4

이제 마지막으로 자잘한 정보들을 넣어주면 드디어 finish 버튼이 보인다.

Wizard Window 5

이제 finish 버튼을 눌러주면 아래 그림과 같이 lilypond script가 들어있는 창이 열릴 것이다.

Lilypond 편집 창

이 텍스트 문서를 적절하게 편집한 후에 lilypond를 실행하면 pdf의 깔끔한 악보를 얻을 수 있는 것이다. 사실 이 창에서 어떻게 문서를 편집해야 하는지 막막한 느낌이 들 수 밖에 없다. 가장 좋은 방법은 이미 만들어져 있는 파일을 적당히 수정하는 것이다. 그런 예제로 내가 편집했던 Emmanuel 악보를 아래에서 볼 수 있다. 소스 파일생성된 pdf 파일을 모두 다운로드받을 수 있다.

% Created on Sat Dec 11 13:25:46 SGT 2010
version "2.12.3"

header {
    title = markup {
        fontsize #5
    override #'(font-name . "Nanum Brush Script") { "임마누엘" }} 
    subtitle = "Emmanuel"
    composer = "Reuben Morgan"
    %poet = "Stephen Ha"
    tagline = ""
}

verseKor= lyricmode {
    set stanza = #"1. "
    거 룩 거 룩 경 배 드 리 네 왕 되 신 주 님
    할 렐 루 야 내 맘 에 오 사 날 새 롭 게 해
    임 마 누 엘 주 예 수 날 떠 나 지 않 네
    선 한 목 자 날 떠 나 지 않 네 임 마 누 엘
    거 룩 거 룩 전 능 의 주 주 밖 에 없 네
    거 룩 거 룩 전 능 의 주 주 밖 에 없 네
    _ 엘 임 마 누 엘 임 마 누 엘 임 마 누 엘
}

verseKorTwo = lyricmode {
    set stanza = #"2. "
    밤 하 늘 의 수 많 은 별 들 지 으 신 주 님
    주 의 사 랑 나 를 부 르 네 주 를 따 르 리
}

staffVoice = new Staff {
    override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-8 . 4)
    time 4/4
    key e major
    clef treble
    relative c' {   
        context Voice = "melodyVoi" {
            dynamicUp
            r4 gis'8 gis gis4( gis8 fis16 e) | e4 e8 dis e4 gis | cis,2. cis8 dis | e4. fis8( fis) dis4. | break
            r4 gis8 gis gis4( gis8 fis16 e) | e4 e8 dis e4 gis | cis,2. cis8 dis | e4. fis8( fis) dis4. | break
            r8^markup {
                translate #'(-2 . 1)
                musicglyph #"scripts.segno"
            }  a'8 a cis cis2 | r4 fis,8 b( b) gis4. | r8 a a gis a4 gis8 fis( | fis1) |
            r8 a a cis( cis) cis4. | r8 fis, fis b gis4 e | cis2 r8. dis16 dis8. e16( | bar "||" e8^markup {
                translate #'(-1 . 3)
                italic "last time to "
                tiny raise #1
                translate #'(0 . 3)
                musicglyph #"scripts.coda"
            }
                ) e4.( e4) r4 |
            bar ":|" break
            r4 b'8 cis gis4 fis | r4 fis8 gis fis4 e | r4 b'8 cis gis4 fis | fis2( fis8) r4. |
            r4 b8 cis gis4 fis | r4 fis8 gis fis4 e | r4 b'8 cis gis4 fis | fis2( fis8_markup {
                italic smaller "D.S. al Coda"
            }
                ) r4. |
            bar "|:"
            e8^markup {
                translate #'(-2 . 1)
                musicglyph #"scripts.coda"
            } e4. r8. fis16 fis8. gis16( | gis8) gis4. r8. dis16 dis8. e16( bar ":|"| e8) e4. r8. fis16 fis8. gis16( | gis8) gis4.( gis2) |
        }

    bar "|."
    }

}

harmonies = new ChordNames chordmode {
    set majorSevenSymbol = markup { maj7}
    set chordChanges = ##t
    override ChordName #'font-size = #-1
    override ChordName #'font-name = #"Arial"
    e2. b4/dis | cis2.:m b4 | a1 | cis2:m b |
    e2. b4/dis | cis2.:m b4 | a1 | cis2:m b |
    fis1:m | b2/dis e/gis | a1 | b1 |
    fis1:m | b2/dis e/gis | a2. b4 | cis2.:m (b4/dis) |
    b2/dis cis:m | b a | b/dis cis:m | b a |
    b2/dis cis:m | b a | b/dis cis:m | b1 |
    cis2.:m b4/dis | e2. b4/dis | cis2.:m b4/dis | e1 |
}

score {
    >

    midi {
    }

  layout {
      indent = 0cm
      context {
      Score
      remove "Bar_number_engraver"
      }
  }
}

paper {
    myStaffSize = #26
    #(define fonts
    (make-pango-font-tree "NanumMyeongjo" "AppleGothic" "NanumGothicCoding" (/ myStaffSize 28)))
    #(set-paper-size "b5")
}
Computer, Music

  1. Lilypond는 어떤 프로그램인가? Lilypond 사용을 위한 준비 > 이번 포스트
  2. 기본적인 악보 조판
  3. 찬송가 악보 그리기
  4. 코드 있는 악보 그리기
  5. 좀더 예쁜 악보 만들기

Lilypond는 어떤 프로그램인가

Lilypond는 전문 악보 조판 프로그램이다.

유사한 프로그램으로는 Encore, Finale, Sibelius 등이 있다. 여기 언급한 프로그램들은 모두 우수한 조판 능력을 가지고 있으며 많은 사용자를 가지고 있고 개발사에 의해 활발하게 개발되고 있다. 그러나 이 프로그램들은 모두 꽤 비싼 편이어서 간단한 악보를 그리기 위해서 이런 프로그램들을 선뜻 구매하기는 어려울 것이다.

이에 비해 Lilypond는 완전한 오픈 소스 소프트웨어로서 악보 조판에 필요한 모든 기능을 가지고 있으며, 여러 사용자들에 의해 활발하게 개선되고 있으면서 완전히 무료로 사용할 수 있다. 뭐니뭐니해도 일단 한 번 악보를 보는 것이 이해가 빠를테니 아래의 예제를 몇 개 보면 이 프로그램의 성능을 쉽게 알 수 있을 것이다.

Lilypond 예제 2

Lilypond 예제 3

사용자의 편의성이라는 측면에서 보면 Lilypond는 그렇게 친절한 것은 아니라고 볼 수 있다. 프로그램을 설치를 하고 나서 뭔가 눈에 보이는 것이 없기 때문이다. 오선지와 각종 버튼들이 눈에 보여서 마우스로 콩나물 머리를 끌어다 놓기만 하면 뭔가 그럴듯한 악보를 만들어주는 프로그램에 비하면 정말 불친절하기 그지 없다고 볼 수 있다. 그러나 Lilypond가 초반에 학습 곡선이 가파르다고 볼 수 있을지는 몰라도 어느 정도 익히고 나면 도리어 눈에 보이는대로 편집할 수 있는 프로그램들에 비해 생산성은 더욱 향상되는 것을 알 수 있을 것이다.

나는 이 프로그램을 한 페이지짜리 보컬 선율 악보를 그리는데 사용한다. 다시 말하면 복잡한 악보를 그리는 것은 잘 해보지 않았다는 뜻이다. 복잡한 악보를 그리기 위해서는 좀더 다양한 테크닉을 배워야 할 것이다. 그러나 보통 사람들에게 있어서는 이 정도의 기능만으로도 충분히 도움이 될 것이다. 오래 전에 많이 사용되던 프로그램 중에 Noteworthy Composer라는 것이 있다. 최소한 이 프로그램보다는 훨씬 좋은 결과를 줄 것이라고 장담할 수 있다.

이 프로그램과 관련된 정보를 얻을 수 있는 가장 좋은 사이트는 책읽기의 낙원이다. 이곳에서는 주로 TeX 관련 정보가 다루어지지만 가끔씩은 lilypond 등을 사용한 악보 조판에 대한 정보도 올라오니 반드시 RSS 등록을 해 두고 구독해야 하는 블로그이다.

사용을 위한 준비

Lilypond 설치

물론 제일 중요한건 Lilypond 자체를 설치하는 것이다. 설치라고 할 것도 없는게, 그냥 홈페이지 가서 적당한 설치 프로그램을 다운받은 후 실행만 하면 되기 때문이다. 현재 (2012년 8월 10일) 최신 버전은 stable이 2.14.2, unstable이 2.15.42이다. 어느 것을 설치해도 작동에는 아무 문제가 없을 것이지만, 둘의 차이를 잘 모르겠으면 그냥 안전하게 stable 버전을 설치하면 된다. (보통 stable 버전은 이름 그대로 안정성을 중시하는 버전이고, unstable은 최신 기능을 먼저 집어넣는 버전이다. 대체로 마이너 버전 번호가 짝수이면 stable, 홀수이면 unstable이며 unstable 브랜치에서 충분히 테스트가 되면 다음 stable 버전으로 출시가 되고, stable 버전 출시 이후에 새롭게 추가되거나 변경되는 기능들은 대체로 새로운 unstable 버전에서 다루어지게 된다.)

jedit 및 LilyPondTools 설치

앞에서 말한 바와 같이 Lilypond는 꽤 불친절한 프로그램이기 때문에 초보자가 사용하기에는 만만하지 않은 것이 사실이다. 따라서, 좋은 도구를 사용하는 것이 생산성을 올리는데 매우 큰 도움이 될 것이다. 그리고 이렇게 큰 도움이 될 수 있는 좋은 도구는 실질적으로 단 한 개 뿐이다.

우선 jedit 소프트웨어를 설치하시라. 이름에서 유추할 수 있듯이 이 프로그램은 자바로 만들어진 텍스트 편집기이다. 자바로 만들어져 있으므로 윈도우는 물론 맥과 리눅스 모두에서 잘 돌아간다. 기능적으로도 매우 우수하며 오픈 소스 소프트웨어이므로 이걸 설치하는 것은 도움이 되면 되었지 해가 될 일은 전혀 없을 것이라 보증할 수 있다!

일단 jedit을 설치했으면 메뉴의 Plugins > Plugin Manager에서 LilyPondTools라는 플러그인을 찾아서 설치해 준다. 이것으로 예쁜 악보를 만들기 위한 준비는 끝났다. 이 환경에서 악보를 조판할 때는 아래 그림과 같은 환경에서 작업을 하게 될 것이다.

왼쪽에는 소스 편집 부분과 그 아래에 lilypond 아웃풋 출력 부분이 있고, 오른쪽에서는 생성된 pdf 파일을 실시간으로 보면서 작업을 할 수 있다. (내가 가지고 있는 맥에서는 잘 동작하지 않지만) pdf 미리보기 창에서 악보 부분을 클릭하면 해당 부분의 소스 코드로 바로 이동할 수 있기 때문에 소스의 수정이 매우 편리하다.

보통은 설치만으로도 아무 문제가 없겠지만, 혹시라도 lilypond 실행에 실패하는 경우가 생긴다면 jEdit의 Plugins > Plugin Options > LilyPondTool > Commands 창에서 (혹은 lilypond 툴바의 LilyPond > Development > Lilytool Options 를 선택해도 된다) lilypond 실행 파일의 위치가 제대로 입력되어 있는지 확인을 해 보면 된다.

글꼴 설치하기

악보에 한글 가사를 넣어야 한다면 당연히 예쁜 한글 글꼴이 필요할 것이다. 지금 이 시점에서 한글 글꼴에 관한 한 그냥 네이버의 나눔 글꼴을 설치하는 것이 가장 속 편하고 좋은 방법일 것이다. 네이버 한글 사이트에 가서 나눔 글꼴을 받고 설치를 해 두기만 하면 된다. 맥이건 윈도우이건 리눅스이건 아무런 상관이 없다. 그냥 시스템 상에서 나눔 글꼴을 사용할 수 있는 상태이기만 하면 된다.

Computer

악보 조판 프로그램에는 여러 가지가 있다. 가장 널리 사용되는 프로그램은 아마도 Encore, Finale, Sibelius 정도일 것이고, 좀더 접근하기 쉬운 프로그램으로는 NoteWorthy Composer가 있다. 이런 프로그램들의 특징은 WYSWYG 에디터라는 점이다. 즉, 눈으로 악보를 보면서 만들어가는 방식이기 때문에, (일단 인터페이스에 적응하기만 하면) 비교적 쉽게 악보를 만들 수 있다. 대신 수많은 마우스질을 해야 한다는 점은 복잡한 악보를 그리는데 있어서는 매우 불리할 수도 있는 방식이다. (물론 전문가들은 나름 단축키 등을 사용해서 쉽게 작업을 하겠지만…) 게다가 모두 유료 프로그램이고 가격도 만만치 않다. 앙코르가 $349, 피날레는 $600, 시벨리우스는 그보다 더 비싸고 (웹페이지에 가격이 없지만…), 그리고 가장 기능이 적고 간단한 NoteWorthy Composer가 $39이다.

워드와 같은 WYSWYG 에디터가 마음에 들지 않는 사람들을 위해 TeX과 같은 강력한 도구가 있는 것처럼, 위에 언급한 프로그램들이 마음에 들지 않는다면 Lilypond를 쓸 수 있다. (게다가 이 프로그램은 GPL로 공개되어 있는 오픈 소스 프로그램이다) 이 프로그램 역시 TeX과 마찬가지로 입력과 출력이 구별되어 있다. 즉, 입력은 정해진 규칙에 따라 text 파일로 하고, 이 입력값을 해석 엔진이 받아서 postscript 파일로 전환하는 것이다. 이렇게 전환된 postscript 파일은 직접 출력에 사용하거나, pdf, eps, png 등의 다른 포맷으로 변환하여 사용할 수 있다.

Lilypond는 이런 종류의 프로그램들 중에서도 가장 잘 알려지고 널리 쓰이는 프로그램이다. 이런 프로그램이 유용하게 사용되기 위해서는 무엇보다도 입력이 간편하고 쉬워야 하는데, 이런 면에서 Lilypond는 TeX에서 사용하는 어떤 프로그램보다도 입력이 쉽다는 장점이 있다. 또한 ps나 eps를 만들어주기 때문에 TeX에 직접 넣을 수 있다는 것도 장점이다. (사실 나는 TeX을 써 보려고 오랫동안 노력을 했지만 결국 실패해서 TeX과의 연동은 큰 매력이 아니다)

맥에서 설치를 하는 방법은 여러 가지가 있겠지만, 나는 이 사이트에서 레퍼드용 바이너리를 받아서 설치했다. (거의) 모든 맥 응용 프로그램이 그렇듯이 다운받은 후에 Applications 디렉토리에 넣어주면 설치는 끝이다. 나는 TextMate를 주 에디터로 쓰고 있는데, 고맙게도 Lilypond 번들을 지원하고 있다. 이 번들은 아래와 같은 방법으로 쉽게 설치할 수 있다.

mkdir -p /Library/Application Support/TextMate/Bundles
cd /Library/Application Support/TextMate/Bundles
svn co http://macromates.com/svn/Bundles/trunk/Bundles/Lilypond.tmbundle/

이제 TextMate 창에서 lilypond 입력 파일을 작성하고 Command+R을 누르면 자동으로 변환하여 pdf를 띄워준다. 변환을 해야만 출력을 볼 수 있다는 면에서 자주 틀려가면서 입력을 해야 하는 단계에서는 좀 불편할 수 있는데, 일단 주로 사용하는 악보의 종류에 따라 적당한 나름대로의 템플레이트를 만들어놓은 이후에는 큰 불편 없이 고품질의 악보를 만들어낼 수 있다. 요즘 버전에서는 UTF-8의 사용에 전혀 문제가 없기 때문에 다국어 입력을 쉽게 할 수 있고, 한글의 경우에도 시스템에 있는 글꼴을 쉽게 사용할 수 있다. 아래는 이렇게 Lilypond를 이용해서 만든 악보의 일부분과 이 악보를 만들기 위해 사용한 입력 파일의 일부분이다. (저작권이 있는 악보의 경우에는 전체를 올리는 것이 안될거라고 생각되어 일부분만 올린다)

Score drawn by Lilypond Lilypond source editing in TextMate
Computer, Music

음악을 좋아하다보니 악보를 그릴 일이 많이 있다. 특히 교회 성가대 지휘를 하고 있다보니 피아노와 합창이 함께 들어간 악보를 만들고 싶은 경우가 왕왕 있다. 오래되거나 여러번 복사를 해서 다시 복사를 하기 어려운 악보들이나 너무 오래되어서 가사를 수정해야 할 필요가 있다고 생각되는 악보들을 만났을 때, 악보를 다시 깔끔하게 그릴 수 있다면 좋겠다는 생각을 많이 했었다.

이전에는 Lilypond라는 툴을 사용했었다. Tex같은 느낌인데 텍스트만으로 악보 소스를 만들고 이걸 컴파일해서 pdf 형식의 악보를 뽑아내는 방식이다. 단선 악보를 그릴 때는 이 것으로도 그렇게 복잡하지 않게 작업을 할 수 있었기 때문에 심지어는 이 블로그에 lilypond를 이용한 악보 그리기에 대한 글을 두 개나 연재한 적이 있다.

문제는 합창과 피아노 반주가 들어있는 조금은 복잡한 형식의 악보를 그릴 때 소스가 상당히 복잡해진다는 것, 그리고 소스를 만들 때 바로 악보를 보는 것이 불편하다는 점이었다. 그리고 이런 문제들을 모두 한 방에 해결해 버리는 프로그램이 바로 MuseScore이다. 그냥 일반적인 악보 그리는 프로그램과 별다를 바가 없어 보이는 WYSWYG 형식의 프로그램이다. 그리고 이 프로그램의 강력함은 기본적인 악보 입력이 키보드 상에서 해결될 수 있다는 점이다! 물론 상세한 표현과 각종 기호 등은 마우스의 도움을 받지 않을 수 없지만, 기본적으로 악보에 들어가는 음표와 가사 정도는 키보드 상에서 빠르게 입력을 해서 완성을 할 수 있다. 대여섯 페이지 정도 되는 4부 합창곡이라면 약 2~30분 이내에 완전한 조판을 마칠 수 있을 정도이니 얼마나 입력이 효율적인지를 알 수 있다.

이제는 입력에 대해서는 어느 정도 익숙해졌고, 적절한 악보의 크기나 글꼴 또는 spacing 같은 것을 조절해 가면서 가장 좋은 출력물을 만드는 세팅을 정하는 일 정도가 남아있다고 볼 수 있는데, 이 정도의 시간 투자로 이 정도의 출력물을 낼 수 있다는건 정말 대단한 일이 아닐 수 없다!