KTUGFaq

KTUG FAQ

"극도로 쉬운 악보 그리기 (1)"에 댓글 더하기

로그인:
비밀번호:
가입
Many pages make a thick book.
FrontPage › Karnes/악보그리기
May 05, 2006
극도로 쉬운 악보 그리기 (1)
Submitted by Karnes @ 05-05 [06:54 pm]
MusiXTeX, OpusTeX에 질리신 분들, Lilypond를 아직 못 배우신 분들을 위한 악보 그리기 강좌(?)입니다.

2006-09-07 아래 준비물은 KC2007의 경우 KC2007/UPDATES에 설치 지침이 마련되어 있습니다.

준비물
  1. MusiXTeX
    • -> musixps, 즉 type 1 musixtex font가 있으면 좋습니다. 없어도 뭐... 큰 상관은...
    • -> MiKTeX Package Manager가 깔아줍니다. 따라서 윈도 사용자는 큰 걱정이 없지만 MPM을 실행해야 musixps를 설치할 수 있을 겁니다. musixtex만 자동설치이고 musixps는 옵션일 겁니다, 아마. 맥에서는 다음과 같이 (물론 MiKTeXTools를 설치한 후에) 합니다.
      # sudo mpm --install=musixtex
      # sudo mpm --install=musixps
      # sudo mktexlsr
      # sudo updmap --enable Map=musix.map
      
  2. musixlyr
  3. PMX
    • -> 수동 설치해야 합니다.
    • http://icking-music-archive.org/software/indexmt6.html#pmx 여기서 다운로드받으면 됩니다.
    • pmx.tex이라는 tex 파일을 local-texmf 아래 어딘가 두는 것입니다. localtexmf/tex/generic/ 아래가 좋을 것 같습니다. Refresh합니다.
    • pmxab 또는 pmx라는 이름의 실행 파일을 PATH가 걸려 있는 데 가져다 둡니다. 이것은 fortran 소스인데 컴파일하려면 gfortran을 이용하는 경우 두 줄인가를 수정해야 했습니다. 속편하게 바이너리를 가져다 쓰면 됩니다.
  4. M-tx
    • 역시 수동설치 합니다. PMX 링크와 같은 곳에서 이것을 찾을 수 있습니다. 역시 해야 할 일은 mtx.tex이라는 파일을 local-texmf 아래 어딘가 가져다두고 prepmx라는 이름의 실행 파일을 PATH가 걸려 있는 데 가져다 두면 됩니다. free pascal 소스인데 컴파일하려니깐 귀찮던데요... ^^ 그냥 바이너리를 가져다 씁니다.
    • 맥 사용자는 설치된 후에 prepmx가 어디 있는지 잘 확인하십시오. 혹시 /Pacage_root/usr/local/bin/ 에 가 있다면 여기 있는 파일을 가져다가 /usr/local/bin/ 으로 옮겨놓습니다.
  5. 배치 파일을 하나 작성해둡니다.
    • 실행이 여러 단계에 거치는데, 극도로 간단히 하면 다음과 같습니다.
      @echo off
      del %~n1.mx?
      prepmx %1
      pmxab %1
      pdftex %1
      musixflx %1
      pdftex %1
      
      위의 루틴을 기준으로 file exist 검사나, ERRORLEVEL 검사 등을 추가하여 더 완전한 배치파일을 만들 수도 있을 것입니다.
    • pdftex 대신 etex을 쓰고 DVIPDFMx로 pdf를 제작하려면 다음과 같이 합니다.
      @echo off
      del %~n1.mx?
      prepmx %1
      pmxab %1
      etex %1
      musixflx %1
      etex %1
      dvipdfmx %1
      


과제
첫 시간에 시도할 과제는 다음 그림과 같은 악보입니다. 쉬워 보이네요. 반주도 없고 지시말도 없고 암것도 없고 콩나물대가리(?)만 있습니다.
whenspringcomes.jpg

한글 가사를 어떻게 처리할 것인가?
  • 예전엔 참 고민스러운 문제였습니다만, 이제는 걱정할 것이 없습니다. kotexplain이 해결해줍니다.
  • 그런데 문제는 만들어진 악보를 그냥 사용할 것인지 다른 LaTeX 파일에 삽입할 것인지입니다. kotexplain으로 구현한 한글을 만약 LaTeX에서 사용하지 못하면 어쩌나요? 괜찮습니다. 다행히 mtx의 가사 처리 방식은 한글 코드를 건드리지 않고 있기 때문에 LaTeX에서는 그냥 ko.TeX을 사용하면 됩니다.

극도로 단순한 설정부
%%\input kotexplain

Meter: 3/4
Title: {\hfontsize{at 18pt}봄이 오면}
Composer: 김동진 작곡
Flats: 1
Style: Singer
Bars/line: 4
  • 처음 두 줄은 한글 가사 처리를 위한 것입니다. 그리고 \pdfmapfile은 아시는 대로 pdftex으로 컴파일하기 때문에 필요한 것이지요.
  • 설정부에서는 박자, 제목, 작곡가, 조표, 보스타일, 그리고 Bars/line을 지정했습니다.
    • 박자 : Meter 지시자 다음에 원하는 박자를 분수 형식으로 써넣습니다. 이 지시를 쓰지 않으면 Common Meter(C)로 간주합니다. Alla breve를 지시하려면 C/ 라고 쓰면 됩니다.
    • 제목과 작곡가 : 보시는 대로입니다.
    • Flats, Sharps는 조성(Key) 지시자입니다.
    • Style : 이건 좀 어렵습니다... 우선 Singer는 노래에 해당한다고 알아두시고, Singer 스타일에서는 auto beam이 억제되는 단선율 악곡을 기보합니다. 기악곡의 경우에는 auto beam이 자동으로 설정되는데 그 때는 다른 스타일을 지정하거나 써야 합니다. 스타일 문제는 다음 과정으로 미뤄두겠습니다.
    • Bars/line : 다른 선택도 있지만 악보를 작성하는 단계에서는 우선 이 옵션을 쓰는 것이 제일 좋습니다. 한 행당 마디수를 평균적으로 제안하는 것이라고 생각하시면 됩니다. 나중에 좀더 세밀한 레이아웃의 설정이 가능합니다.

  • 첫 행 입력
    1. 음표 입력에서 기억해야 할 것은 c, d, e, f, g, a, b 일곱 개의 문자입니다. 처음 음은 가온 C에서 시작합니다. 그러므로 c
    2. 선율의 흐름을 기보할 때 +, -가 붙습니다. 예를 들어 g를 기준으로 생각해보면 g c 라고 기보하였을 때 4도 위의 c와 5도 아래의 c 가운데 어느 것인지를 지정해주어야 합니다. 이 때 4도 범위 내의 것은 그냥 두고 5도 아래이면 -를 붙입니다. 마찬가지로 c g라고 하였을 때 두번째 g는 4도 아래 g입니다. 만약 5도 위 g를 지정하고 싶다면 c g+라고 하면 됩니다. 5도 이상의 도약은 방향에 따라 + 또는 -를 붙입니다.
    3. 음길이는 숫자로 표시하는데, 0, 2, 4, 8, 1 순으로 합니다. 0은 온음표, 2는 2분음표, 4는 4분음표, 8은 8분음표, 1은 16분음표입니다. 기억하기 쉽네요. 3도 시도해보시지요.
    4. 점음표는 음표지시 뒤에 d(dot)를 붙입니다.
    5. 이상을 통해 첫 마디를 적으면, c8d c1 f4 g4 가 됩니다. 그런데 같은 길이 음이 이어지면 그 뒤부터는 생략해도 되니까 c8d c1 f4 g 로 적을 수 있습니다. 나아가 부점, 즉 첫 마디 첫 박자와 같은 리듬 형식은 c8.c 와 같은 약식 표기도 가능합니다. 정리하지요. c8.c f4 g
    6. 마디 구분은 | 입니다. 주의할 것은 이 마디 구분자가 지정된 박자를 다 채우기 전에 나오는 것이 허용되는 것은 오직 첫 마디뿐이라는 것입니다. 나머지는 음길이들을 계산해서 박자가 채워지지 않으면 에러를 토하니깐 계산에 주의하시기 바랍니다. 지금 기억할 마디 구분 부호는 | 와, 악곡의 끝을 나타내는 |] 두 개뿐입니다.
    7. 이제 첫 소절을 기보해보겠습니다.
        c8.c f4 g | a8.b a4 f | c8+d b1 a4 f | g2d |
      
    8. +가 한번 나왔습니다. 어디인지 찾아보세요.
    9. 가사를 써넣습니다. 한글 가사를 쓸 때 주의할 것은 모든 글자를 띄어써야 한다는 것입니다. 가사는 L: 로 지시된 행입니다.
        c8.c f4 g | a8.b a4 f | c8+d b1 a4 f | g2d |
      L: 봄 이 오 면 산 에 들 에 진 달 래 피 네 
      
    10. 자, 여기까지 입력하고 확장자를 mtx로 저장한 후, mtx2pdf.bat를 실행해봅니다. 에러 없이 실행되어야 정상입니다. 배치 파일이 잘 듣지 않으면 위의 배치 파일 내용을 소개한 명령을 하나씩 차례로 실행하면서 무엇이 문제인지 체크해봅니다.

    두번째 행 : 기(beam), 슬러, 셋잇단음표
    1. 두번째 줄은 좀 난관이 있습니다. 처음 두 마디는 그럭저럭...
      [ b8.a ] g4 d | b8+d a1 g4 f 
      
    2. 여기서 브래킷으로 둘러싼 부분은 8분음표보다 작다면 beam 처리가 됩니다. Singer 스타일에서 beam에는 가사를 한 번만 붙이고 뒷부분은 실선 처리합니다.
    3. 슬러는 괄호 ( )로 둘러쌉니다. 주의. beam이나 괄호를 지시하는 모든 괄호는 전부 띄어쓰여져 있어야 합니다. 다른 글자와 붙으면 안됩니다.
    4. 세번째 마디에는 셋잇단음표 처리가 있습니다. 이것은 예를 들어 a4x3 b c 와 같은 방법으로 표기하는데, a4x3에서 4는 세 음표를 모두 합치면 4분음표 길이가 된다는 뜻이고 x3은 셋잇단음표라는 것입니다. 그 뒤에 두 개의 음표가 더 나와야 완성됩니다.
    5. 두번째 소절은 다음과 같습니다.
        [ b8.a ] g4 d | b8+d a1 g4 f | ( e4x3 g ) d e4 c+ | ( b4 a2 ) |
      L: 진 달 래 피 는 곳 에 내 마 음 도 펴 
      


    세번째 행: 임시표
    1. 세번째 소절에는 임시표 말고는 별다른 것이 없군요. 임시표는 음표표지 뒤에 s, f, n를 붙여서 만듭니다.
       c8.bn c4 a | ( c1 d c ) bn c4 a | b4x3 d- e f4 b | a2d |
      L: 건 너 마 을 젊 은 처 자 꽃 따 러 오 거 든
      
    표지 문자 의미 표지 문자 의미
    s sharp f flat
    n natural ss double sharp
    ff double flat d single dot
    dd double dot u force stem up
    l force stem down x xtuplet

    마지막 행 : 페르마타와 종지
    1. 페르마타와 같은 표지들은 대부분 음표표지 뒤를 한 칸 띈 다음 문자를 써넣는 방식으로 표시합니다. 이것은 모두 PMX의 입력 방법인데, 대강 정리하면 다음과 같습니다.
    표지 의미 표지 의미
    o. 스타카토 o_ 테누토
    o> 악센트 o^ 스포르잔도
    ou 피치카토 of 위쪽 페르마타
    ofd 아래쪽 페르마타 ot shake
    || om || mordent || oTx || 트릴 ||
    1. 요약입니다.
       e+8d a-1 a4 f+4 of | ( e4x3 f ) e d4 c | c-8d b+1 a4 { g4x3 a g } | f2d |]
      L: 꽃 만 말 고 이 마 음 도 함 께 따 가 주
      
    2. @springcomes.mtx.txt (647 Bytes)

    빠진 것 몇 가지와 다음 과제
    1. 쉼표가 한 번도 안 나왔네요. 쉼표는 r로 표시합니다. 즉 r0, r2, r4 ...
    2. 다음번에는 기악곡에 도전합니다. 반주붙은 노래를 만들어보지요.
    3. 만들어진 악보의 LaTeX 이용에 대해서도 다음 번에 다루도록 하겠습니다.

    오...세상에. (나도 예술 한 번 해볼까?) 음... 악보에 대해서는 까막눈이지만, 한번 악보를 조판해 보고 싶은 마음이 마구마구 생깁니다. 감사합니다. -- 작은나무 2006-05-05 19:33:32

    memhangul-ucs에서 사용하는 방법도 가르쳐 주세요? -- synapse 2006-05-05 22:49:40

    첫 번째 악보입니다. 저의 음악실력을 그대로 반영한 듯 합니다. ^^ (뭐가 문젠가요?) @springcomes-ischo.pdf (65.58 KB) -- ischo 2006-05-06 00:59:39

    음... 악보 부분은 musixflx가 실행이 안 된 것인데요... 디렉토리 내의 .mx1, .mx2 확장자 파일을 지운 다음 (pdf)tex filename, musixflx filename, (pdf)tex filename 을 차례로 실행해보시기를 바라구요... 가사 부분은 잘 모르겠는데... .mtx, .pmx, .tex 파일을 보여주세요. ucsplain의 버전 문제인지 아니면 dos 파일 포맷 문제인지 확인해볼 필요가 있을 거 같습니다.... -- Karnes 2006-05-06 01:34:45

    참참참... 혹시 musixflx.exe가 시스템에 없는 거 아닌가요? 만약 그렇다면 Werner Icking Archive(위의 링크가 걸린 곳)에서 윈도용 실행파일을 찾아보셔야 할 거 같은데... -- Karnes 2006-05-06 01:36:10

    @musixflx.zip (27.69 KB) <= 여기 있습니다. 윈도 용입니다. -- Karnes 2006-05-06 01:39:05

    맞습니다. 맞고요. musixflx.exe를 넣어도 안되었었는데, musixlyr.tex를 갖다 넣으니, 됩니다. 위에 보여주신 것과 똑같은 악보를 얻었습니다. 감동입니다!!! -- ischo 2006-05-06 23:31:08

    그런데요, 기쁜 나머지, 다시 해보려고, springcomes.mtx를 빼고 모두 지운 후 다시 해봤더니, 안되네요. 전에는 springcomes.tex이 자동적으로 만들어졌던 것 같은데, 지금은 자꾸만 못찾겠다고 하네요... ㅠㅠ -- Anonymous 2006-05-07 00:08:30

    prepmx, pmxab, tex 을 다시 차례로 실행해보시면서 어디서 에러가 나오는지 알려주십시오. -- Karnes 2006-05-07 00:58:20

    pmxab를 실행하면, 아래와 같은 에러가 나옵니다. 뭐가 잘못된 것인가요? 뭐, 한번에 쉽게 되리라고 생각하지는 않았습니다만. :) 가르침을 주소서...

     This is PMX, Version 2.5  , 15 Feb 04
     Opening springcomes.pmx                                
    
     Starting first PMX pass
    
      Bar 1  Bar 2  Bar 3  Bar 4  Bar 5  Bar 6  Bar 7  Bar 8  Bar 9  Bar 10  Bar 11
      Bar 12  Bar 13  Bar 14
    
     ERROR in line 66, bar 15 This character is not allowed here
                   v
     ca8-d ba1+ a4 {T \mtxBM\ g4x3 a \mtxEM\ g }T | /                              
                   ^
     ASCII code:         123
    
    -- 작은나무 2006-05-07 01:25:43

    PMX 버전이 이상한데요? This is PMX, Version 2.510, 21 Jan 06 이걸로 다시 해보시지요... http://icking-music-archive.org/software/pmx/pmx2510.zip -- Karnes 2006-05-07 01:41:11

    감사합니다. 위에서 제공해주신 PMX로 하니 .tex 파일을 얻을 수 있었고, 그 .tex 파일을 컴파일하니 musixlyr.tex 이라는게 없다는 에러 메시지가 나왔습니다. 그래서 그 없다는 파일을 구해서 다시 컴파일했더니, 너무도 멋진 악보를 얻을 수 있었습니다. 전에 musixtex 설치가 잘못되어 있었나봅니다. 대단히 감사합니다.

    일단 원하는 결과를 얻을 수 있어서 더 없이 기쁘기도 하지만, 이걸 공부를 해야하나 말아야 하나 고민에 빠집니다. 다른 할 것도 많은데...

    왜 이런걸 알려주셔가지고서리... :) -- 작은나무 2006-05-07 01:58:28

    musixlyr 때문에 문제가 생긴 거였군요. 제가 약간 착각을 한 것인데, 제가 쓰는 MusiXTeX은 beta 버전이고 여기에는 musixlyr가 포함되어 있습니다. MiKTeX의 것도 당연히 들어 있을 줄 알았는데 아니었군요. 본문을 좀 고쳐써야겠네요... -- Karnes 2006-05-07 02:15:34

    회사오자 마자 설명서대로 한번 쭉 했더니 멋진 pdf가 나옵니다. 감동입니다. -- hermian 2006-05-08 09:02:24

    한참 늦게 배워보려구 해봤는데 악보가 길어지니까 가사 위치가 이상하군요. 뭐가 잘못일까요? @first.pdf (41.15 KB) , @first.zip (920 Bytes) -- gromov 2007-06-13 03:29:08

    두어 가지 해결책이 있습니다. 레이아웃 관련된 문제는 쉽지 않네요. 가사는 첫 줄에 @-8 과 같은 코멘트를 두어서 내릴 수 있습니다. 첫번째 방법은 Bars/line을 쓰지 않고 pages, systems를 지정한 후에 page break를 수동으로 지정해주는 것입니다. 한 가지 예가 다음과 같습니다.
    Meter: C
    Title:{\hfontsize{at 18pt}처음 그 때처럼 (주몽)}
    Composer: 임 태 경 노래
    Flats: 0
    Style: Singer
    Pages: 2
    Systems: 13
    
    @-8 b4 a4d b4 c8 | e0- | b+4 a4d b4 c8 | f0- |
    L: 붉 은 태 양 이 별 을 삼 켜 도
    
    (중략)
    
    %%L11P2
    e8 e2 e8 b+ a | e2 r8 e a g | ( g8 f1 e ) f2d | r8 d b+ a a g g f |
    L: 에 는 그 대 지 친 영 혼 쉬 어 간  바 람 이 라 도  좋 아
    
    다른 한 가지 방법은 페이지 브레이크는 mtx에게 맡기고, 두번째 페이지의 space를 좀 넓혀주어서 첫 페이지와 비슷하게 만드는 방법입니다.
    Meter: C
    Title:{\hfontsize{at 18pt}처음 그 때처럼 (주몽)}
    Composer: 임 태 경 노래
    Flats: 0
    Style: Singer
    Bars/Line: 4
    Space: 10
    
    @-8 b4 a4d b4 c8 | e0- | b+4 a4d b4 c8 | f0- |
    L: 붉 은 태 양 이 별 을 삼 켜 도
    
    마지막 방법은 mtx-pmx-tex의 마지막 tex 출력물을 직접 손보는 방법입니다. -- Karnes 2007-06-13 23:20:21

    오 감사합니다. 한번 해 볼께요. 보시는 김에 악보도 좀 더 제대로 고쳐주시면^^ 조는 무슨 조인지 모르겠네요. 그냥 C로 했었는데... :) -- gromov 2007-06-14 12:47:52

    왠지 두 번째 방법이 첫 번째 방법보다 결과가 조금 나아 보이는군요. 아직 공부를 안 해서 @-8이 무슨 명령인지 모르지만 숫자를 조금 바꿔 보아도 변화가 없네요. 어쨌든 그대로 돌려서 올립니다. 첫 번째 성공입니다. 대단히 감사합니다. @first3.pdf (41.16 KB) -- gromov 2007-06-14 21:16:39
    이름:

    서명하지 않기
     

    ^
    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2007-08-19 16:14:58
    Processing time 0.0731 sec