- Lilypond는 어떤 프로그램인가? Lilypond 사용을 위한 준비
- 기본적인 악보 조판 > 이번 포스트
- 찬송가 악보 그리기
- 코드 있는 악보 그리기
- 좀더 예쁜 악보 만들기
기본적인 악보 조판
이미 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")
}