KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
You will be recognized and honored as a community leader.
FrontPage › Karnes/악보그리기
Aug 19, 2007
Submitted by Karnes @ 08-19 [04:00 pm]
ko.TeX에 맞추어서 예제를 변경합니다. 첨부된 예제 파일은 수정하지 못하였으므로 다음과 같이 고쳐서 사용하십시오.
  • \input ucsplain 을 \input kotexplain 으로
  • \pdfmapfile{...} 행은 필요없으므로 삭제합니다.
  • 컴파일할 때 tex 대신 etex 또는 pdftex을 이용합니다.

May 11, 2006
악보그리기만 별도 페이지로 만들었습니다.
Submitted by Karnes @ 05-11 [02:45 am]
나중에 pdf를 만들기 쉽게 하려고 페이지를 별도로 만들었습니다. 이 페이지에서 다루고 있는 것은 prepmx+PMX+MusiXTeX 으로 악보를 조판하는 것입니다.

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

    May 07, 2006
    별로 안 쉬운 악보그리기 (2)
    Submitted by Karnes @ 05-07 [12:57 am]
    최종 출력 샘플
    최종적으로 다음 악보를 출력하는 것이 목표입니다.
    springcomesfull.jpg

    이 악보는 앞서 소개한 M-tx와 PMX를 이용하여 개략적인 악보를 얻은 다음 아주 약간의 MusiXTeX 수정을 거친 후, memoir 문서에 삽입하여 얻은 것입니다. 이 과정에, 다음과 같은 midi 파일도 만들어집니다.
    @springcomes.mid.zip (1008 Bytes)

    여기까지 이르는 것이 아주 쉽지는 않습니다. 그러나 MusiXTeX을 hard coding하는 것에 비하면 거의 거저라고 할 수 있죠. ^^ 게다가 MusiXTeX만으로는 얻을 수 없는 midi 출력을 얻을 수 있으니 금상첨화라고나 할까요.

    우선 M-tx를 이용한 간단한 악보를 얻는 일부터 먼저 하고, 그 다음에 레이아웃과 수정에 대해서 살펴보겠습니다.

    간단 악보그리기 (3)
    Submitted by Karnes @ 05-07 [01:32 am]
    다시 "극도로 쉬운" 악보그리기로 돌아옵니다. 작업 파일은 a.mtx라고 하기로 합니다. 적당한 에디터로 이 파일을 열어서...

    초간단 preamble
    %%\input kotexplain
    
    Meter: 3/4
    Title: {\hfontsize{at 18pt}봄이 오면}
    Composer: 김동진 작곡
    Poet: 김동환 작시
    Flats: 1
    Style: Singer Piano
    Size: 20 16
    Bars/line: 4
    PMX: It100ipipivo
    Enable: countMacro
    
    1. Style은 Singer와 Piano인데 한 칸 띄어쓰면 됩니다. 즉, 두 개의 instrument가 있고 아래쪽 instrument인 Piano는 정의상 LH(Left Hand), RH(Right Hand) 두 개의 보(staff)가 있으므로 모두 3단 악보가 되게 되어 있습니다.
    2. Size는 악보의 크기를 지정하는 것인데, Singer는 20, Piano는 16으로 지정했습니다. 이 악보 크기는 자유롭게 선택할 수 있는 것이 아니고 13, 16, 20, 24 중에서 골라야 합니다.
    3. 나중에 출력할 악보는 Bars/line=6이지만, 여기서는 작업 과정이므로 이 값을 4로 맞추어놓고 입력하기로 합니다.
    4. PMX 지시자는 PMX 문법으로 여기서 지정된 I가 midi 출력을 지정하는 것입니다. t100이란 속도를 메트로놈 4분음표=100으로 하라는 것이고, ipipivo는, 첫 글자 i가 악기(instrument) 지정이라는 의미이고 두 글자씩 세 개의 staff에 악기를 할당합니다. pi는 piano, vo는 vocal인데, 이 악기 지정자는 PMX 매뉴얼에 설명되어 있습니다. 더 자세한 건 나중에 알아보기로 하고, 혹시 악기를 바꾸고 싶으시면 PMX 매뉴얼을 훑어보시면 되구요, t니 i니 없이 간단히 I 만 지정하면 하프시코드가 기본으로 잡힙니다.
    5. enable count macro 지시자는 좀 고급과정에 해당합니다만, 우선 여기서 한번 사용해보기로 하지요. 하는 일은 여러 개의 음표군을 묶어서 하나의 매크로 음표로 입력할 수 있게 하는 역할을 활성화하라는 의미입니다.

    1-4마디 : 온쉼표, 화음 부가음, 매크로
     rp | rp | rp | rp |
     c8.c f4 g | a8.b c4 a | d8.e f4 a | g8.f e4 d |
     f4 MS1 f=4 za zc M MP1 MP1 | f=4 MP1 MP1 | b-l zb+ d-l zf zb d-l zf zb | e- e zg zb zc e- zg zb zc |
    
    • 일단 단이 세 개라는 것을 잊지 말아야 합니다. 아래에서부터 차례로 실제 악보의 위치와 같습니다.
    • 한 마디 모두 쉬는 온쉼표는 rp 입니다.
    • 피아노 왼손 파트가 좀 어렵습니다. 우선 F, A, C로 이루어진 삼화음을 하나의 매크로로 할당하는 명령이 MS1 으로 시작해서 M 으로 끝나는 부분입니다. f=라고 한 부분은 화음을 사용하게 되면 마지막 음의 위치가 5도 위이기 때문에 이 기호 없이 사용하면 한 옥타브씩 위로 올라가서 결국 에러를 내게 됩니다. 처음 위치로 되돌아가라는 의미라고 생각하면 될 것입니다. 이 매크로 화음을 사용하기 위해 MP1 이라는 지시자를 썼습니다. 숫자는 매크로에 붙인 번호입니다.
    • z로 시작하는 음은 앞서 나온 음표 위치에 이동없이 음표 머리를 그리라는 것입니다. 이것을 잘 이용하면 화음을 쉽게 입력할 수 있습니다. 화음 입력의 다른 방법은 아래 나옵니다. 어쨌든 +와 -를 이용한 이동에 신경써야 합니다. z-음표도 음표이므로 일단 +로 이동한 이후에는 그 위치에서부터 +와 -를 계산해야 한다는 것을 잊지 마십시오. 다성부 음악은 확실히 신경쓸 게 많습니다.
    • 중간에 한번 나온 l 지시자는 음표의 대를 아래쪽으로 그리라는 강제 명령입니다. 자동으로 설정해주는 방향도 나쁘지 않지만 강제로 대의 방향을 지정하려면 u(up) 또는 l(low)을 사용합니다.

    5-8마디
    rp | rp | rp | rp | 
     c8.d b4 a | g8.a f4 e | d8.e c4 e | g2d |
     f=4 MP1 MP1 | c- cl zf za c-l zf za | c- cl ze zg c-l ze zg | c- e zb+ zc e- zb+ zc |
    
    • 여기는 특별할 게 없죠. 1-4마디의 기보를 그대로 연장하면 되겠습니다.
    • 여기까지 일단 입력하고 결과를 감상합니다. 괜찮을까요?
    s01.jpg

    May 07, 2006
    간단 악보 그리기 (4)
    Submitted by Karnes @ 05-07 [10:26 pm]
    a.mtx로 계속합니다. (3)에서 이어집니다.

    9--16마디
     (" c8.c ) f4 g | a8.b a4 f | c+8.b a4 f | g2d |
    L: 봄 이 오 면 산 에 들 에 진 달 래 피 네
    L: 봄 이 오 면 하 늘 위 에 종 달 새 우 네
    L: 나 {--} 는 야 봄 이 되 면 그 대 그 리 워
     r4 f zc za f+ zc za  | r f+ zc za f+ zc za | r f+ zc za f+ zc za | r c ze zg c- ze zg |
     f- r r | f r r | f r r | c r r |
    
     ( b8.a ) g4 d | b+8.a g4 f | ( e4x3 g ) d e4 c+ | (" b a2 ) |
    L: 진 달 래 피 는 곳 에 내 마 음 도 피 어
    L: 종 달 새 우 는 곳 에 내 마 음 도 울 어
    L: 종 달 새 되 {--} 어 서 말 붙 인 다 오 {--}
     r b- zd b zd | r b zc zg+ a- zc zf | r g- zc ze g- zc ze | r a- zc zf a- zc zf |
     d r r | d e f | c r r | f r r | 
     
    • 여기는 별로 새로운 것이 없습니다. 지금까지 한 대로 그냥 입력하면 됩니다. 다만 화음을 z-음표로 구현하다 보면 아무래도 생각처럼 깔끔하게 잘 되지 않을 때가 있습니다. 인내심을 가지고 고쳐가면 될 것입니다.
    • 가사 붙임에 있어서 주의할 점이 하나 있습니다. 가사는 자동으로 음표에 붙는데 ( ) 이나 [ ], 그리고 { }으로 묶은 음표들은 전부를 하나로 간주한다는 것을 잊지 마시기 바랍니다. 이 경우 첫 마디가 문제가 됩니다. 1,2절에서는 각각의 음표에 하나씩의 가사가 붙지만 3절은 그렇지 않기 때문입니다. 이럴 경우 (" 라는 묶음표를 이용하면 그 안에 있는 음표들이 점선의 슬러로 묶이면서 각각의 음표에 가사를 따로 붙여줍니다. 이를 이용해서 3절을 구현했습니다.

    17--20마디 : 강제 beam 방향, 코드 라인
     (" c8.bn ) c4 a | ( c1 d c ) bn c4 a | b4x3 d- e f4 b | a2d |
    L: 건 너 마 을 젊 은 처 자 꽃 따 러 오 거 든
    L: 나 물 캐 는 아 가 씨 야 저 소 리 듣 거 든
    L: 나 {--} 는 야 봄 이 되 면 그 {--} 대 그 리 워
     [u c+8.bn ] c4 a | [l a1 b a gs ] c4 a | b4x3 zd4l d e f4 zd b+u zd-f | a+2d zc- |
    C: a gs a f  c d c bn a f 
     f-4l zf+ f za zc f- za zc | f-4 zf- f+ za zc f- za zc | d-l dl zf za f | f- zf+ cl zf za c-l zf za |
    
    • [u ... ] 나 [l ...]는 beam의 방향을 강제로 할당하는 것입니다.
    • 슬러는 묶음 괄호가 시작하는 음에서 끝나는 음까지 붙습니다. 하나의 코드가 주어졌을 때 어느 음을 기음으로 하고 어떤 음들을 z-음표로 표현할 것이냐는 두 가지 기준에 의해 선택됩니다.
      • +, -를 적게 쓰는 쪽.
      • 슬러의 끝음이 붙는 음을 마지막에 기록할 수 있도록 함.
    • 위의 두 가지 기준은 시행착오를 통해 익히는 것이 제일이라고 생각합니다. 악보는 일반 문서와 달리 layer가 너무 복잡해서 기보자가 아이디어와 트릭을 동원해야 할 때가 꽤 많습니다.
    • 여기서 처음으로 C: 로 시작하는 코드 라인이 도입되었습니다. 코드 라인은 띄어쓰기로 구분된 각각의 덩어리들이 앞에서부터 차례로 순서대로 각 음표에 붙습니다. 쉼표는 건너뜁니다. 따라서 모든 음표에 동일하거나 유사한 개수의 코드가 있는 경우에는 아주 유용한데 우리의 예처럼 단성과 화성이 함께 나오는 음악에 쓰기에는 그다지 좋지 못합니다. 여기서는 다만 예를 들기 위해 앞 부분 몇 개의 음만을 코드 라인으로 처리해보았습니다.

    마지막 소절
     e+8.a- a4 f+ of | ( e4x3 f ) e d4 c |
    L: 꽃 만 말 고 이 마 음 도 
    L: 새 만 말 고 이 소 리 도
    L: 진 달 래 꽃 되 {--} 어 서
     [l a+8d zcs ze a-1 ] a4 zg f+ of za- zf | [l a4x3 zd ze a- zd zf a- zcs ze ] (1 f=4 (2 zd+ f= )1 zcn+ )2 | 
     a4l za- a+ ze zcs+ a zc of | a ( b4x3 b- d ) f za | 
    
     c-8.b+ a4 ( g4x3 a g ) | f2d |]
    L: 함 께 따 가 주 
    L: 함 께 들 어 주
    L: 웃 어 본 다 오
     c-8d b+1 zd- a+4 zc- g+4x3 zb- a+ zc- g+ zb- | f+2d za-d |]
     c- cl zf e zg | f zf- c+ f- |]
    
    • mtx로 그리는 경우 한계가 몇 가지 있습니다. 그 가운데 하나는 임시 다성부를 하나의 staff에서 구현하기 어렵다는 것입니다. 이런 것은 나중에 MusiXTeX 으로 수정할 수 있으므로 여기서는 간단히 단성부로 기보하여 두어도 무방합니다. 어차피 mtx는 MusiXTeX 출력을 얻기 위한 일종의 front-end이기 때문에 이 매크로로 모든 것을 다 할 수는 없는 것이죠.
    • midi 출력도 마찬가지입니다. midi는 소리를 들려주지만 fermata, 장식음 등은 전혀 반영하지 않습니다. 자신이 기보한 악보가 제대로 되었는가를 확인하기 위한 목적으로 쓸 만한 것이지 M-tx나 PMX를 midi 파일 제작을 위해 사용할 수는 없다고 봅니다.

    완성
    • preamble에 Space 지시자가 있으면 지우세요. 이것은 나중에 다시 다루기로 하겠습니다.
    • 이제 이 저장된 파일로 pdf를 제작해봅니다. 아주 만족스럽지는 않지만 볼 만한 악보가 되었을 것입니다. 여기서 맨 처음 preamble의 Bars/line 값을 6으로 바꾸고 다시 저장하여 다음과 같은 악보를 얻을 수 있습니다.
    simplesprcome.jpg

    완성된 a.mtx의 소스입니다.
    @a.mtx.txt (2.15 KB)

    LaTeX으로 조판한다 : 간단 악보 그리기 (5)
    Submitted by Karnes @ 05-08 [01:31 am]
    원래 이 글은 장난삼아 올린 글이었는데, ischo님과 작은나무 님 등이 *열광적인* 반응을 보여주시는 바람에 여기까지 오게 되었습니다.

    a.mtx를 성공적으로 컴파일하여 악보를 출력하는 데 성공했다면, 이제 제대로 된 조판에 도전합니다. 앞서 말한 것처럼 mtx는 MusiXTeX 출력을 얻기 위한 front-end이고, 얻어진 MusiXTeX 출력은 (당연히 그대로 쓸 수도 있지만) LaTeX 문서에 삽입하는 것이 가능합니다.
    1. LaTeX 클래스는 memoir를 사용하는 것으로 하겠습니다. synapse 님의 요청 때문이기도 하고 memoir의 놀라운 조판 능력을 악보 조판에도 활용할 수 있기 때문입니다.
    2. 지금까지 진행된 과정을 보면, mtx 매크로를 이용한 악보의 입력 -> pmx를 이용한 midi 출력과 tex 변환 -> MusiXTeX을 이용한 fine tuning의 순으로 진행되는 것을 아셨을 것입니다. MusiXTeX에 능숙하다면 fine tuning이 얼마든지 가능해서 가히 상상력의 한계까지 악보를 조판할 수 있겠지마는, 그렇게까지 오묘한 경지는 나중에 들어가보도록 하고 여기서는 간단히 조판 결과를 이용하는 것만을 설명하려 합니다.

    .tex 파일의 확인과 복사
    • a.mtx를 prepmx -> pmxab 순으로 컴파일 하면 a.pmx와 a.tex이 생겨납니다. 이 가운데 우리가 이용할 것은 a.tex인데, a.mtx를 나중에 수정하여야 할 것이 틀림없으므로 a.tex을 ai.tex으로 하나 복사하도록 하겠습니다.
    • 우리가 만들려는 main 문서에 해당하는 tex 파일을 하나 만듭니다. 이것은 afinal.tex이라고 부르도록 하지요.

    afinal.tex의 작성
    \documentclass[oldfontcommands,a4paper]{oblivoir}
    \usepackage{etex}
    \ifpdf
      \input glyphtounicode\gentopdfunicode=1
    \fi
    
    • 여기까지는 일반적인 설정과 같습니다. oblivoir의 옵션은 원하는 대로 사용하시면 됩니다.
    • [oldfontcommands] 옵션은 반드시 주어야 합니다.
    • \usepackage{etex}도 있는 것이 안전합니다.
    \settrimmedsize{\stockheight}{\stockwidth}{*}
    \setlrmarginsandblock{15mm}{*}{1.0}
    \setulmarginsandblock{20mm}{*}{1.0}
    \checkandfixthelayout
    
    • 페이지 레이아웃 설정입니다. MemoirClass에 익숙하시다면 이 방법이 좋을 것으로 봅니다. 주의 geometry 패키지는 쓰지 않습니다.
    \usepackage{musixtex}
    \input pmx
    \def\mtxversion{0.60}
    \def\mtxdate{<16 March 2005>}
    \input mtx
    \input musixmad
    
    • 드디어 musixtex을 불렀습니다. 위의 설정은 그냥 고정시켜놓고 그대로 옮겨쓰시면 됩니다. 순서를 바꾸지 않도록 주의하십시오.
    \let\MYstartmuflex\startmuflex
    \let\MYendmuflex\endmuflex
    \let\startmuflex\relax
    \let\endmuflex\relax
    \AtBeginDocument{\MYstartmuflex}
    \AtEndDocument{\MYendmuflex}
    
    • 이 솔루션은 예전에 제가 고안한 것으로 pmx가 만든 tex 소스를 삽입하기 위한 전처리라고 생각하시면 됩니다. 역시 고민하지 말고 그냥 그대로 가져다 쓰면 되겠습니다.
    • 이 코드가 하는 일은 한 문서에 두 개 이상의 악보를 넣기 위해서 필요한 것입니다.
    \begin{document}
    \pagestyle{empty}
    
    \centerline{\Large 봄이 오면}
    \rightline{김동환 작시}
    \rightline{김동진 작곡}
    
    \vskip\onelineskip
    
    \begin{music}
    \input ai
    \end{music}
    
    \end{document}
    
    • 문서가 시작되고 노래 제목과 작사자 작곡자를 표시한 다음 music 환경 안에 ai.tex 파일을 불러들입니다. 여기서는 이것이 전부입니다.

    ai.tex의 수정
    • 사실은 이 부분이 어렵습니다. MusiXTeX 코드는 좀 보고 있으면 현기증이 나지요. 게다가, MusiXTeX 매뉴얼에 쓰고 있는 대로, 작은 빈 칸 하나도 용서하지 않는 것이 MusiXTeX이라 특히 행끝의 % 부호를 주의하여야 합니다.
    • 우선, 다음 10행을 주석처리합니다. 이미 preamble로 갔거나 (LaTeX에서는 사용하지 않을) kotexplain 등을 부르는 부분입니다.
      %\def\mtxversion{0.60}
      %\def\mtxdate{<16 March 2005>}
      %\input mtx
      %\input kotexplain
      %\mtxComposerLine{김동환 작사}{김동진 작곡}
      %\mtxTitleLine{{\hfontsize{at 18pt}봄이 오면}}
      %\input musixtex
      %\input pmx
      %\input musixmad
      
    • 옛날 htex을 쓰던 시절에는 htex으로 만들어진 악보를 HLaTeX으로 옮기기가 너무 어려웠습니다. 한글 구현 방식이 판이하게 달랐기 때문이지요. 그러나 kotexplain과 dhucs는 형제간이기 때문에 이행이 아주 수월합니다.
    • 그 다음 몇 줄 가운데 페이지 레이아웃에 관계되는 hsize/vsize는 반드시 지워주어야 합니다. 수정한 결과는 다음과 같습니다. \nopagenumbers도 LaTeX의 pagestyle로 대체되어야 할 부분이고 tracingstats는 music 환경이 스스로 설정하므로 이들도 삭제합니다.
      \smallmusicsize%
      %\nopagenumbers
      %\tracingstats=2\relax
      %\hsize=524pt
      %\vsize740pt
      \def\nbinstruments{2}
      
    • 33행의 \readmod{a}라는 부분은 필요없습니다. 삭제합니다.
    • 타이틀과 작곡자를 표시하는 부분인 37행과 38행을 찾아서 주석처리 합니다. 이 부분의 식자는 LaTeX을 이용할 것입니다.
    • 이제 끝으로 맨 끝행 (189) 의 \bye를 지웁니다. LaTeX에는 \bye라는 명령이 없습니다.
    • 여기까지 하면 일단 컴파일은 가능할 것입니다. afinal을 컴파일하여봅니다. 물론 latex -> musixflx -> latex의 루트를 거칩니다.

    약간의 레이아웃 설정
    • PlainTeX에서 만든 악보는 피아노의 두 staff 간 간격이 좀 먼 듯하고 가사 들어가는 부분이 빡빡한 느낌을 줍니다. 이 부분을 수정해보겠습니다.
    • 관련된 부분은 ai.tex의 32행입니다.
      stafftopmarg0pt\staffbotmarg0pt\interstaff{14.6}\relax
      
    • 위의 값을 적절히 조절하면 원하는 레이아웃을 얻을 수 있습니다. 이밖에
      \mtxInterInstrument{1}{6}%
      \mtxStaffBottom{0}%
      
      와 같은 매크로를 이용할 수도 있습니다.
    • 아무튼, 추천하는 값은 대강 다음과 같습니다.
      \stafftopmarg0pt\staffbotmarg10pt\interstaff{11}\relax
      \mtxInterInstrument{1}{7}%
      \mtxStaffBottom{0}%
      
    • 이 정도면 우리가 설정한 판면에 한 페이지에 다 들어갈 것입니다. 이 값들은 경험치인데 \mtx... 명령이 원래의 \inter... 또는 \...marg 명령을 오버라이드하므로 되도록 \mtx... 명령을 수정하는 것이 좋습니다. 아무튼지간에 각 매크로의 의미는 이름이 잘 말해주고 있다고 생각합니다. 예를 들어 \mtxInterInstrument#1#2에서 #1은 악기의 번호(아래에서부터 1, 2, ...)인데, 여기서 1번이라 한 것은 piano 보를 가리킵니다. 그리고 두번째 숫자는 MusiXTeX의 레이아웃 길이 기본 단위에 곱해지는 승수입니다.
    • 여러 가지 시도를 해보시기를 권장합니다. 다만, 값을 바꾸어도 레이아웃이 달라지지 않으면 그 값을 오버라이드하는 다른 매크로가 없는지 조사해보아야 합니다.

    정리 다음 과제
    • 다음 과제는 좀 고급과정으로, 전주 시작 부분의 노래 보를 없애고 피아노 반주부만 남기는 방법과 몇 가지 MusiXTeX 트릭을 시도해보기로 합니다.
    • 지금까지의 방법으로도 간단한 피아노 반주가 붙은 노래를 조판하는 데는 어려움이 없을 것입니다.

    잘 됩니다. {OK} 그런데, 33행의 \readmon{a}는 \readmod{a}로 되어있었습니다. --ischo 2006-05-08 03:20:59

    일전의 도은이아버님의 smallmusixtex를 사용한 source에서는 \dim(?) error가 있었던것 같은데요? 어떨때 이런 error message가 나오는지요? 만약 위의 source를 긴 글과 같이 조판하게 될때 나타나게 되는지요?...... 어찌 되었던 재미있게 잘 보고 있습니다. 위의 숙제도 한번 해보고 싶은데요. 도통시간이 나지를 않습니다. -- synapse 2006-05-08 22:46:19

    May 08, 2006
    악보 조판, 과제
    Submitted by Karnes @ 05-08 [11:13 am]
    다음 악보를 조판하시오.
    t06a.jpg


    힌트
    1. midi output의 tempo는 82로 하세요.
      PMX: It82ivo
      
    2. Style은 Singer로 하되, auto unbeam을 억제하기 위해 unbeamVocal을 disable하세요. (preamble)
      Disable: unbeamVocal
      
    3. 첫 마디의 auto beam 결과가 이상하게 나올 수 있습니다. 이것은 [[ beam 명령을 이용하면 해결됩니다.
       r8 b1 b [[ b8 a1 ( g ] [[ g8 ) ...
      
      이 방법을 11번 마디의 강제 unbeam에도 적용하세요.
    4. preamble의 Space는 10으로 하세요.
      Space: 10
      
    5. 15번 마디의 이중 슬러는 다음과 같이 처리합니다. 슬러 각각에 번호를 붙여서 구별하는 것을 주의해서 보시면 됩니다. 이 번호를 붙이지 않았을 때의 결과는 짐작해보시기 바랍니다.
      (1 f1 (2 e8d )1 e2 )2
      


    제대로 따라했나요? @molayo1.mid.zip (460 Bytes) ;; @molayo1.pdf (83.88 KB) B) -- ischo 2006-05-09 00:17:13

    성공하셨네요, 축하합니다. :) -- Karnes 2006-05-09 00:39:31

    바이브의 "그남자 그여자" 입니다. 장혜진과 같이 불렀습니다. -- Anonymous 2006-05-09 17:23:38

    글쿤요. :) 고음불가를 보면서 시작 부분만 따라 적은 거라서... ㅋㅋ 이 악보의 진정성 여부에 대해서는 책임을 못 집니다. 이 뒤 전조가 한번 있고 더 계속 되던데 어디 좋은 뮤비 연결해주시면 제가 끝까지 한번 악보로 적어보죠. ^^ -- Karnes 2006-05-09 18:00:16

    과제, 모범답안
    Submitted by Karnes @ 05-09 [12:41 am]
    어제 올린 과제물에 조인성 교수께서 정답을 제출하셨습니다. :) 음... 상을 드려야 할텐데...

    암튼간, 제가 작성한 모범답안(?)을 제공하겠습니다.
    @t06.mtx.txt (1024 Bytes)

    간단명료, 악보조판 (6) : 코드 써넣기
    Submitted by Karnes @ 05-09 [01:45 am]
    좀 실용적인 악보 조판을 생각해보면 일반적으로 많이 필요로 하는 것은 반주부나 기악곡 같이 엄청난 악보를 그리는 것이 아니라 멜로디에 코드 정도를 부가하여 만드는 약식악보일 것입니다. 이걸 한번 해보지요.

    오늘의 도전 과제는 불후의 명작 "개여울"입니다. 지금까지 한 것처럼 일단 악보를 만들었습니다.
    %%\input kotexplain
    
    Meter: C
    Title: {\hfontsize{at 14.4pt}개여울}
    Flats: 1
    Space: 8
    Style: Singer
    Bars/line: 6
    Poet: 김소월 시
    Composer: 이희목 곡
    Disable: unbeamVocal
    PMX:It82ivo
    
       @-1 r8 [[ a- d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a2 |
    L: 당 신 은 무 슨 일 로 그 리 합 니 까 홀 로 이 개 여 울 에 주 저 앉 아 서
    
      r8 [[ a d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a4 of a |
    L: 파 릇 한 풀 포 기 가 돋 아 나 오 고 잔 물 이 봄 바 람 에 헤 적 일 때 에 가
    
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 ( f8 g ) f4 ( e8 d ) |
    L: 도 아 주 가 지 는 않 노 라 시 던 그 런 약 속 이
    
      e d cs d ( e2 | e2d ) a-8.a | b0 | 
    L: 있 었 겠 지 요 날 마 다 
    
      r4 ( d8 e ) d4 c8 b | c b a g ( a2 | a2d ) a8.a | b4d ( b8 b2 ) |
    L: 개 여 울 에 나 와 앉 아 서 하 염 없 이
    
      r4 ( d8 e ) f4 ( e8 d ) | cs d e e ( e2 | e2d ) a-4 |
    L: 무 엇 을 생 각 합 니 다 가 
    
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 f8 g f4 e8 d |
    L: 도 아 주 가 지 는 않 노 라 심 은 굳 이 잊 지 말 라 는
    
      e8 d cs e ( d2 | d2d ) r4 |]
    L: 부 탁 인 지 요
    
    • 새로 나온 @-1은 가사가 붙는 수직 위치를 조절하는 것입니다. 음수값은 아래로 내리라는 뜻인데 이 지시자를 소개하는 의미로 가볍게 1만 내렸습니다. 단위는 elemskip이라 불리는 MusiXTeX의 기본 수직 길이단위입니다. 적당한 값은 역시 시행착오로... ^^

    이제 멜로디 행의 상단에 U: 지시행을 이용하여 코드를 써넣겠습니다. 이 값들은 일괄해서 MusiXTeX의 \uptext 매크로로 변환됩니다. 주의할 점이 두 가지 있습니다.
    1. 코드는 일종의 텍스트인데, U: 행의 텍스트들은 각각의 음표나 쉼표 위에 붙습니다. 따라서 쉼표와 음표의 개수를 잘 세어야 합니다. 텍스트가 붙지 않는 쉼표나 음표는 {} 괄호로 묶어서 빈 위치임을 표시합니다. 가사가 자동으로 붙는 것과는 달리 쉼표와 슬러로 연결된 모든 음표에 각각 텍스트가 붙을 수 있다는 점을 잘 기억하십시오.
    2. 코드 네임에 임시표 flat이나 sharp이 붙을 수 있습니다. 이것들은 음표의 임시표가 아니라 텍스트일 뿐이므로 s나 f(t) 같은 지시자를 이용할 수 없습니다. 그러므로 이 곡에 나오는 B-flat을 표시하기 위해서 \BFlat이라는 매크로를 새로 하나 만들어야 합니다.
    %%\input kotexplain
    %%\def\BFlat{B\kern-2pt$^{\hbox{♭}}$}
    
    Meter: C
    Title: {\hfontsize{at 14.4pt}개여울}
    Flats: 1
    Space: 8
    Style: Singer
    Bars/line: 6
    Poet: 김소월 시
    Composer: 이희목 곡
    Disable: unbeamVocal
    PMX:It82ivo
    
    U: @+1 Dm {} {} {} {} {} {} {} Gm {} {} {} A7 Dm {} {} {} C {} {} {} \BFlat {} {} {} A7
       @-1 r8 [[ a- d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a2 |
    L: 당 신 은 무 슨 일 로 그 리 합 니 까 홀 로 이 개 여 울 에 주 저 앉 아 서
    
    U: Dm {} {} {} {} {} {} {} Gm {} {} {} A7 Dm {} {} {} C {} {} {} \BFlat {} {} {} A7 {}
      r8 [[ a d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a4 of a |
    L: 파 릇 한 풀 포 기 가 돋 아 나 오 고 잔 물 이 봄 바 람 에 헤 적 일 때 에 가
    
    U: Dm Gm {} {} C7 {} {} {} {} {} {} A7 {} {} Gm \BFlat {} {} {} {} {}
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 ( f8 g ) f4 ( e8 d ) |
    L: 도 아 주 가 지 는 않 노 라 시 던 그 런 약 속 이
    
    U: A7 {} {} {} {} {} {} {} Gm
      e d cs d ( e2 | e2d ) a-8.a | b0 | 
    L: 있 었 겠 지 요 날 마 다 
    
    U: {Gm/\BFlat} {} {} {} {} {} C7 {} {} {} F A7 {} {} \BFlat {} {}  
      r4 ( d8 e ) d4 c8 b | c b a g ( a2 | a2d ) a8.a | b4d ( b8 b2 ) |
    L: 개 여 울 에 나 와 앉 아 서 하 염 없 이
    
    U: Gm {} {} {} {} {} A7 {} {} {} {} {} {} 
      r4 ( d8 e ) f4 ( e8 d ) | cs d e e ( e2 | e2d ) a-4 |
    L: 무 엇 을 생 각 합 니 다 가 
    
    U: Dm Gm {} {} C7 {} {} F {} {} {} A7 {} {} Gm Dm {} {} {} {} {}
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 f8 g f4 e8 d |
    L: 도 아 주 가 지 는 않 노 라 심 은 굳 이 잊 지 말 라 는
    
    U: A7 {} {} {} Dm {}
      e8 d cs e ( d2 | d2d ) r4 |]
    L: 부 탁 인 지 요
    
    • U: 행에도 수직 위치 조절을 위한 @+1을 붙일 수 있습니다. 기본값이 코드 네임을 붙이기에는 너무 staff에 가깝게 붙기 때문에 +1 내지 +2 정도 올려주면 좋습니다.
    • 위의 결과는 다 좋은데, 8번 마디의 페르마타와 A7 텍스트가 겹칩니다. 이 문제를 해결하기 위해서 이 부분에만 \AsevenUp이라는 임시 매크로를 붙이기로 합니다.

    완성된 결과는 다음과 같습니다.
    %%\input kotexplain
    %%\def\BFlat{B\kern-2pt$^{\hbox{♭}}$}\def\AsevenUp{\raise8pt\hbox{A7}}
    
    Meter: C
    Title: {\hfontsize{at 14.4pt}개여울}
    Flats: 1
    Space: 8
    Style: Singer
    Bars/line: 6
    Poet: 김소월 시
    Composer: 이희목 곡
    Disable: unbeamVocal
    PMX:It82ivo
    
    U: @+1 Dm {} {} {} {} {} {} {} Gm {} {} {} A7 Dm {} {} {} C {} {} {} \BFlat {} {} {} A7
       @-1 r8 [[ a- d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a2 |
    L: 당 신 은 무 슨 일 로 그 리 합 니 까 홀 로 이 개 여 울 에 주 저 앉 아 서
    
    U: Dm {} {} {} {} {} {} {} Gm {} {} {} A7 Dm {} {} {} C {} {} {} \BFlat {} {} {} \AsevenUp {}
      r8 [[ a d f ] a g b a | g f e d e2 | r8 [[ d d d ] c c c c | b b a gs a4 of a |
    L: 파 릇 한 풀 포 기 가 돋 아 나 오 고 잔 물 이 봄 바 람 에 헤 적 일 때 에 가
    
    U: Dm Gm {} {} C7 {} {} {} {} {} {} A7 {} {} Gm \BFlat {} {} {} {} {}
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 ( f8 g ) f4 ( e8 d ) |
    L: 도 아 주 가 지 는 않 노 라 시 던 그 런 약 속 이
    
    U: A7 {} {} {} {} {} {} {} Gm
      e d cs d ( e2 | e2d ) a-8.a | b0 | 
    L: 있 었 겠 지 요 날 마 다 
    
    U: {Gm/\BFlat} {} {} {} {} {} C7 {} {} {} F A7 {} {} \BFlat {} {}  
      r4 ( d8 e ) d4 c8 b | c b a g ( a2 | a2d ) a8.a | b4d ( b8 b2 ) |
    L: 개 여 울 에 나 와 앉 아 서 하 염 없 이
    
    U: Gm {} {} {} {} {} A7 {} {} {} {} {} {} 
      r4 ( d8 e ) f4 ( e8 d ) | cs d e e ( e2 | e2d ) a-4 |
    L: 무 엇 을 생 각 합 니 다 가 
    
    U: Dm Gm {} {} C7 {} {} F {} {} {} A7 {} {} Gm Dm {} {} {} {} {}
      a+0 | r4 g8 a b4 c8 b | a g a b ( a2 | a2d ) a4- | g+0 | r4 f8 g f4 e8 d |
    L: 도 아 주 가 지 는 않 노 라 심 은 굳 이 잊 지 말 라 는
    
    U: A7 {} {} {} Dm {}
      e8 d cs e ( d2 | d2d ) r4 |]
    L: 부 탁 인 지 요
    
    테스트에 성공하면 잘 감상하시고 pdf 결과를 올려주세요. ^^

    따라하기는 쉽습니다. 강사님과 사용하는 툴(텍)이 워낙에 좋은지라...^^ @gaeyeowool.pdf (90.96 KB) -- 작은나무 2006-05-09 10:18:43


    극도로 쉬운 악보 그리기, 우선 종료
    Submitted by Karnes @ 05-09 [02:01 am]
    며칠간 재미나게 악보 그리기에 대한 글을 올렸습니다. 관심 가져주신 분들께 감사드리고, 우선 이 정도로 마감할까 합니다. 고급과정은... 수강생(?)이 좀 생기면 개설하도록 하겠습니다.

    고맙습니다. 특히 조인성 교수님, 작은나무님, synapse 님, hermian 님께 감사드립니다. 이 분들의 격려가 아니었으면 이 정도 진도를 나가는 것도 불가능했을 것입니다.

    감사합니다! 며칠 행복했습니다. :) -- ischo 2006-05-09 03:50:34

    재미난 강좌 였습니다. 악보를 그릴려면 일단 음악을 조금은 공부해야 겠더군요. 저는 2인 1조 편성으로 :) -- hermian 2006-05-09 07:45:31

    학교다닐때, 음악 공부 열심히 해둘껄 하고 후회해보긴 이번이 처음이었습니다. 워낙 친절하고 자세히 일러주셔서 아무 생각없이 따라하면 놀라운 정도로 멋진 악보를 얻을 수 있었습니다만, 뭔가 좀 허전함이... :) 여태까지 제 아내는 제가 밤늦게까지 안하던 이상한 텍이라는 걸 하길래 그게 도대체 뭐냐고 물어보고 그런걸 왜하냐고 했는데, 악보를 보여주니 태도가 약간 달라지면서 호기심을 갖더군요. 감사함다!!! :) -- 작은나무 2006-05-09 10:03:15

    좋은 강의 고맙습니다. 그런디... 저 처럼 바쁜 척하는 사람들을 위해 pdf로 좀 맹그러 주세요. :D -- Progress 2006-05-10 16:21:12

    Progress님께 찬성, 동의 100표...아니지 5월호 잡지에 싣지 않으실까요. KTUGFaqMook 만세~ -- hermian 2006-05-10 16:49:50

    May 13, 2006
    애프터서비스 : M-tx 입력예
    Submitted by Karnes @ 05-13 [10:47 am]
    강좌는 끝났지만, 약간의 애프터서비스를 할까 합니다. M-tx (prepmx) 입력만으로 sophisticate한 악보 입력이 가능한지 예를 들어 보인 것입니다. 이 예를 잘 연구하면 M-tx 만으로도 복잡한 악보 입력이 불가능하지 않다는 것을 알 수 있습니다. 다만 몇 군데는 PMX 문법을 이용한 dirty trick을 시도하였습니다. 제가 생각하기에 Dirty trick이라고 생각되는 것은 (**) 표시하였습니다. 입력의 단순함에 비하면 만들어진 악보의 복잡함은 이루 말할 수 없습니다.

    결과
    • 악기 이름 표시
    • 사용자 스타일 정의
    • U: 행을 이용한 나타냄말
    • 꾸밈음(grace)
    • 부분 2성부 마디의 구현 (**)
    • psslur K를 이용한 트릭 (**)
    • 음자리표(clef) 변화, 전조, 변박자
    test06.jpg

    입력
    Style: MyInst
    MyInst: Voices S; Clefs C
    Meter: 3/4
    Flats: 1
    Bars/line: 4
    Size: 20
    Space: 8
    Enable: instrumentNames
    PMX:Ap I
    %%\def\cresc{\it cresc.}
    %%\def\decresc{\it decresc.}
    
    U: @-15 \pp
       Gsc+ ( b+4x3n a ) b d4.b | 
    
    U: \cresc
       C0 Gsb ( a4x3 g ) a b4.g |
    
    U: \roff{\f}
    %% f2 r4 //
       [u a8  c f c f c ] |
    
       {A d+2du | d4 }A r du |
    C:   {f-s    f-n
    
    %% { f-s2du //
       { d2du |
    
    U: {} \roff{\decresc}
    %% fn2d o>-18 } //
       d4 } r d ||
    
    4/4 K+0-4 (AHH c+4 (B dn8x3nf g an )B (C g8x3nf a bn )C bf4 c- )A ||
    
    2/4 G3sm2dn e fn gn4 G2sm2a en ( dn8x3nf g an ) ( g8x3nf a bn ) |
    
       bf4 o^ ? zg ze zb ? G3sm2b g e c ||
    

    주의사항
    1. ps-slur K package가 추가로 요구됩니다. 만약 ps-slur K를 설치하지 않으려면 PMX 지시자 중의 Ap를 제외하십시오.
    2. ps-slur K는 PMX를 다운로드받는 곳에서 찾을 수 있습니다.
    3. ps-slur K를 사용하게 되면 PDFTeX, dvipdfmx 어느것도 slur가 작동하지 않습니다. tex -> dvips -> ps2pdf 루트를 거쳐야 합니다.

    (무슨 뜻인지는 잘 모르지만) 잘 됩니다. @as.pdf (17.87 KB) ;; ^^ 무슨 뜻인지는 차츰 알아봐야 하겠네요. -- ischo 2006-05-13 23:34:51

    악보그리기 수강생은 조만간 못갖춘 마디와 도돌이표가 있는 예가 나오기를 기다리고 있습니다. |) 단기 목표는 인터넷에서 구한 "당신은 사랑받기 위해 태어난 사람"
    borntobeloved.jpg
    을 조판하는 것이지요 :) -- ischo 2006-05-15 18:50:40

    흠... 어렵네요. 우선 만들어본 답안지입니다. 점수 주세요. :)
    @youreborntobeloved.mtx.txt (3.49 KB) -- Karnes 2006-05-16 00:26:48

    간단한 설명을 붙입니다.
    1. 못갖춘 마디 (pick-up measure) : 첫 마디(와 마지막 마디)는 박자수를 세지 않습니다. 그러므로 그냥 원하는 데서 마디를 나누면 됩니다. 위의 예의 경우
       d1 e | f4d
      
    2. 도돌이표의 마디 표시는 다음과 같습니다. 그러나 이것은 "표지"일 뿐이므로 midi output에 반영되지 않습니다.
      |: :| :|: 
      
    3. first/second 하는 이른바 Volta 표시는 조금 어려운데, 규칙은 다음과 같습니다.
      1. Volta 표지는 제일 아래쪽 성부에 옵니다.
      2. V1 로 첫번째 volta를 시작합니다.
      3. Vb2 로 두번째 volta를 시작합니다. b는 앞부분 volta를 닫으라는 것입니다.
      4. Vx 로 두번째 volta를 끝냅니다.
      5. 모든 volta 표지는 새로운 마디의 시작 부분에 옵니다. 다만, 변박자가 있는 경우 박자 표지보다 뒤에 옵니다.
    4. 이상을 대강 요약하여, 마지막 네 마디만 기보하면,
      r8 g8 g a f e1 ( d1 d4 ) | V1 f8 e e d1 ( e e2 ) :| Vb2 f8 e d c1 ( d d2 ) | 
      
      2/4 Vx r4 f8 ||
      
    5. D.C, D.S., Segno 등은 모두 "기호"이므로 U: 라인에 적절히 배치하면 됩니다. -- Karnes 2006-05-16 01:32:17

    아앗!!! :o 벌써, 이러~어언. 인터넷 악보를 그대로 만들려고 낑낑대고 있는 틈을 이용해서, 이렇게 복잡한 악보를 올리시다니!!! :-(=)

    제가 한 걸 봐주세요. ;) @urtblove.mtx.txt (2.18 KB) 네째마디와 마지막 마디의 8분쉼표는 갖추기 위해 일부러 넣은 것입니다. 한참동안 씨름한 이후에, 일단 에러를 피하고 보자는 심산에서 저지른 일입니다. 위에서 보여주신 답안에서는, 네째마디의 마지막에 "당신"을 넣으니 갖춘 마디가 되어서 문제가 없어지네요. 그렇게 하는 것이 (음악적으로?) 옳은 것 같다는 생각이 드네요.

    <질문1> 위 악보의 네째와 마지막의 못갖춘마디(?)는 음악적으로 그렇게 표시하면 안되는 것인가요? (제가 음악에는 영~ 무식해서요.) 만일 허용되는 표현이라면, 무식텍으로는 어떻게 표현하는지 모르겠네요.

    <질문2> Fine와 D.C는 어떻게 표시하나요? 이걸 U:라인으로 표시하려고 했더니, 위치도 bar 아래로 정확하게 가지 않으면서 위의 코드도 없어져서 애를 먹고도 결국은 못했습니다. -- ischo 2006-05-16 01:34:26

    <질문1> 보통 악보그리기 규칙에 의하면, 못갖춘 마디로의 D.C나 도돌이는 허용하지 않는 것이 convention입니다. 특히 Volta가 있으면 이렇게 표현하지 않습니다. 즉, 악곡의 중간에 못갖춘마디는 나오지 않아야 합니다. 원래 제시하신 악보가 이상하네요. 그런데... MusiXTeX으로는 이렇게도 할 수 있을 겁니다. MusiXTeX은 마디를 그으라는 곳에서 무조건 그을 수도 있으니까요.

    <질문2> 보통 다음과 같이 합니다.
    Vb2 f8 e1 ( d d8 ) c d2 D"Fine." || 
    L: 받 고 있 지 요 
    
    여기에 D 지시자가 쓰였는데 이것은 PMX 문법입니다. 이 지시자는 주로 ff, f, p, pp 등을 표기하기 위해서 사용하는 것인데, "Fine"나 D.C. 또는 Da Capo 등의 텍스트를 악보의 적절한 위치에 넣는 데 이용할 수 있습니다. Fine가 찍히는 위치는 적당히 조절할 수 있을 것입니다. -- Karnes 2006-05-16 02:47:59

    군데군데, 누더기같다는 기분은 들지만 그래도 지금까지 왔다는 게 신기하고 놀랍습니다. @urbtbl.mtx.txt (2.14 KB) @urbtbl.pdf (132.29 KB) :-) ;; 조금만 더 가면, 단기적으로 설정한 "위의 악보 그대로 묘사하기"의 목표를 달성할 것 같은데... 도우심이 필요합니다. (M-Tx 가이드만 가지고는 힘드네요...) |)

    <질문3> 11번째 마디 끝에 "에 존"의 콩나물 beam을 끊으려고 하는데, 그게 영 안되네요. X-( 여러개의 note에서 beam을 강제로 배분하는 것은 가르쳐 주신대로 하면 되는데, 있는 beam을 없애려 하니 그게 안됩니다. {}, [], () 등으로 묶어 해결해보려고 해도 에러가 나거나 원하지 않는 결과가 나옵니다.

    <질문4> pmxab가 첫마디의 못갖춤은 그런대로 봐주는데, 중간이나 마지막에서는 봐주질 않고 에러를 냅니다. 그러다 보니, (아무리 음악을 몰라도) 맨 마지막의 D.C.와 처음이 *논리적*으로 맞지 않는 것 같다는 찜찜함이 있습니다. 맨마지막을 못갖추자니, 에러가 나고... 참 난감하네요. <:( 마지막 못갖춘마디 처리방식이 궁금합니다.

    <추가질문> 이 건 TeX문법 문제인듯 한데요, Poet에서 큼지막한 숫자의 크기 등 폰트관련 변화를 주려고 하니 그 것도 안되네요... 거 차~ㅁ 여~~어엉... ^^ -- ischo 2006-05-16 10:55:50

    <질문3> 11번 마디입니다.
    r8 f8 [[ f f e a1 ] a8  ga g1a  |
    
    suffix "a" : prohibit beam this note

    <질문4> "논리적으로는" 갖추되 시각적으로는 못 갖추게 하면 됩니다. 마지막의 r의 suffix "b"는 "이 쉼표를 세기는 하되 인쇄는 하지 말라"입니다.
     2/4 Vx r4d D"~~~~D.C." r8b ||
    
    -- Karnes 2006-05-16 11:13:41

    정답은 "a"와 "b"에 있었군요. 목표가 달성되었습니다. 감사와 결과물을 드립니다. @urbtbloved1.mtx.txt (2.16 KB) @urbtbloved1.pdf (132.5 KB) 뿌드~~~읏합니다. 거듭 감사드립니다. -- ischo 2006-05-16 12:02:04

    잘 되셨다니 축하드립니다. 그건 그렇고, 13번 마디 후반의 D/D#은 이해할 수 없는 코드인데요... 제 생각엔 D/F# 이어야 하지 않을까 싶습니다만... 전위음악도 아니고... D/D#이라니... ^^ -- Karnes 2006-05-16 12:29:41

    전 까막눈이어서 D/D#나 D/F#나 의미가 없다는 것을 이해하실 수 있으실런지... B) (바이올린 가방은 만들 수 있어도 바이올린을 켤 수 없는 사람들은 이해할 수 있겠습니다.) 제겐 이 코드와 전위음악이 관련이 있는지 모르는 것도 자연스럽습니다... ^^ 아무튼 "눈과 귀"가 있는 분들이 있다는 것을 의식해서 제 파일에는 고쳐 놓아야 하겠습니다. (이거 아십니까? 그냥 부러울뿐입니다!!!) -- ischo 2006-05-16 12:50:37