Lilypond 길잡이 2

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

기본적인 악보 조판

이미 LilyPondTool을 설치한 상태라면 쉽게 악보를 만들 수 있다. jedit의 메뉴에서 Plugins > LilyPondTool > Score > Score Setup Wizard... 를 선택한다. 그러면 창이 새롭게 나타난다. 이제 원하는 정보들을 하나씩 채워넣으면 된다. 기본적인 보컬 악보를 그리려고 한다면 제목, 작곡가, 작사가 정도의 정보를 넣으면 될 것이다. 두번째 뜨는 창에서는 어떤 시스템의 악보를 그리는지를 선택할 수 있다. Vocals > Voice (with lyrics)를 누른 후에 Add 버튼을 눌러서 맨 오른쪽 영역에 Voice (with lyrics)가 보이게 하자. Next를 누르면 이번에는 조성과 박자를 선택할 수 있다. 필요에 맞게 선택 후에는 가사를 넣을 것인지, 가사는 몇 절까지 넣을 것인지, 그리고 코드 이름을 넣을 것인지를 선택한다. 이제 마지막으로 자잘한 정보들을 넣어주면 드디어 finish 버튼이 보인다. 이제 finish 버튼을 눌러주면 lilypond script가 들어있는 창이 열릴 것이다. 이 텍스트 문서를 적절하게 편집한 후에 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 {
    <<
        harmonies
        staffVoice
        context Lyrics = "lmelodyVoi" lyricmode { lyricsto "melodyVoi" verseKor }
        context Lyrics = "lmelodyVoiT" lyricmode { lyricsto "melodyVoi" verseKorTwo }
    >>
    
    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")
}