짧은 답
한 음높이는 보통 줄 두 개에서 여섯 개까지 칠 수 있어서, TAB은 그중 하나를 골라야 해요. 이 규칙을 따르는 다른 악보 제작 프로그램처럼 MuseScore도 음마다 그 음을 낼 수 있는 줄 중 음높이가 가장 높은 줄에 놓는데, 그러면 프렛이 가장 낮아져요. 이미 쓰인 줄에 놓일 화음 구성음은 다음 빈 줄로 옮겨요. 프렛이 낮아서 읽기는 쉽지만, 연주자라면 손을 한곳에 두고 칠 멜로디도 한 줄을 따라 올라가게 될 수 있어요. 파일에서 가져온 TAB이 한 옥타브 높게 나온다면, 파일이 기타를 실제 소리보다 한 옥타브 위로 적었고 앱이 그 기보음을 프렛에 그대로 옮긴 거예요.
한 음이 지판 위에 여러 자리를 갖는 이유
줄들의 음역이 겹쳐요. 표준 튜닝에서 개방현은 E2, A2, D3, G3, B3, E4이고, 서로 다섯 반음씩 떨어져 있어요. 다만 G에서 B는 네 반음이에요. 그래서 한 줄의 5프렛(G줄은 4프렛)을 누르면 다음 줄의 개방현과 같은 음이 나요. 가온 C 위의 E, 즉 E4는 개방 1번 줄에서도 나고, 2번 줄(B)의 5프렛, 3번 줄(G)의 9프렛, 4번 줄(D)의 14프렛, 5번 줄(A)의 19프렛, 6번 줄(낮은 E)의 24프렛에서도 나요. 24프렛 지판에서는 여섯 곳, 22프렛 일렉트릭 기타나 19프렛 클래식 기타에서는 다섯 곳이에요.
오선보는 음높이만 알려 줘요. TAB은 줄과 프렛을 알려 주기 때문에, 사람이든 프로그램이든 TAB을 쓰는 쪽이 음마다 그 자리 중 하나를 골라야 하고, 그 선택이 손의 위치를 결정해요.
악보 제작 프로그램은 어떤 규칙을 쓰나요?
MuseScore의 규칙은 소스 코드의 StringData에 있어요. 음은 개방현의 음높이가 그 음 이하인 줄 중 음높이가 가장 높은 줄에 놓여요(convertPitch 위의 주석에 “using the highest possible string”(가능한 가장 높은 줄 사용)이라고 적혀 있어요). 화음은 가장 높은 음부터 아래로 차례로 처리하고, 음의 줄이 이미 쓰였다면 “a suitable string, from topmost”(맨 위 줄부터 알맞은 줄)를 찾아요. 위에서부터 보아 처음 나오는 빈 줄 중 지판의 프렛 범위 안에서 그 음을 낼 수 있는 줄이에요. 낼 수 있는 줄이 없으면 두 음이 한 줄에 그대로 남고, TAB에 충돌이 표시돼요.
저희는 같은 규칙을 ScoreStarling에도 구현해 두 결과를 비교했어요. 스크립트가 표준 튜닝의 TAB 보표에 프렛 번호 없이 E2에서 C6 사이의 서로 다른 음 1~4개짜리 무작위 화음 120개를 쓰고, MuseScore 4.7.5 명령줄이 프렛을 채우게 한 뒤 모든 음을 비교했어요. 서로 다른 무작위 화음으로 네 번 돌렸어요.
| 화음 | 개수 | 결과 |
|---|---|---|
| MuseScore가 칠 수 있는 화음 | 447 | 음 1,055개 모두 같은 줄, 같은 프렛 |
| MuseScore가 음 두 개를 한 줄에 남긴 화음 | 13 | 높은 화음. MuseScore가 가져온 기타는 저희의 24프렛보다 프렛이 적고, 저희는 음마다 각자 다른 줄에 놓음 |
| 어떤 줄 순서로도 칠 수 없는 화음 | 20 | 그 음에 닿는 줄보다 낮은 음이 더 많은 경우(예: A2보다 낮은 음 두 개는 6번 줄(낮은 E)만 칠 수 있음). MuseScore가 쓰는 방식 그대로 적고 표시함 |
이 규칙은 예측하기 쉬워서 기본값으로 좋아요. TAB을 읽는 사람이면 누구나 음이 어디에 놓일지 짐작할 수 있고, Guitar Pro나 MuseScore 사용자가 악보를 열어도 같은 프렛이 보여요.
낮은 프렛 규칙은 언제 읽기 불편한가요?
선율이 지판 높은 곳에 있을 때예요. 이 규칙은 앞뒤 음을 전혀 보지 않아서, 1번 줄이 낼 수 있는 음은 모두 1번 줄로 가요. 그러면 연주자가 한 포지션에 두고 칠 악구가 한 줄을 오르내리게 돼요. 12프렛의 E에서 내려오는 악구를 각 규칙에 따라 ScoreStarling이 쓴 모습이에요.
낮은 프렛 우선
포지션 이동 최소화
| 음 | 낮은 프렛 우선 | 포지션 이동 최소화 |
|---|---|---|
| C5 | 1번 줄, 8프렛 | 1번 줄, 8프렛 |
| D5 | 1번 줄, 10프렛 | 1번 줄, 10프렛 |
| E5 | 1번 줄, 12프렛 | 1번 줄, 12프렛 |
| D5 | 1번 줄, 10프렛 | 1번 줄, 10프렛 |
| C5 | 1번 줄, 8프렛 | 1번 줄, 8프렛 |
| B4 | 1번 줄, 7프렛 | 1번 줄, 7프렛 |
| A4 | 1번 줄, 5프렛 | 2번 줄, 10프렛 |
| G4 | 1번 줄, 3프렛 | 2번 줄, 8프렛 |
첫 번째 열은 한 줄에서 3프렛부터 12프렛까지 쓰기 때문에, 내려오는 동안 손이 계속 움직여야 해요. 두 번째 열은 마지막 두 음을 2번 줄(B)의 10프렛과 8프렛에서 치고, 7프렛과 12프렛 사이에 머물러요. 둘 다 칠 수 있어요. 낮은 프렛 쪽이 MuseScore가 보여 주는 악보이고, 두 번째가 기타 선생님이 쓸 법한 악보에 더 가까워요.
프로그램은 파트 전체를 한꺼번에 계획하면 두 번째 방식을 찾아낼 수 있어요. ScoreStarling의 ‘포지션 이동 최소화’ 옵션은 음이나 화음 하나를 한 단계로 보고, 각각을 짚을 수 있는 방법을 모두 나열한 다음, 그 전체를 지나는 가장 비용이 적은 경로를 찾아요. 손은 프렛 네 칸을 덮는다고 보고, 멀리 옮길수록 이동 비용이 커지고, 프렛 네 칸보다 넓은 화음은 비용이 추가되고, 높은 포지션과 12프렛 위의 프렛은 비용이 조금 붙고, 개방현은 비용이 없어요. 그래도 연주 방식까지는 모르니, 계획된 운지는 제안으로 보고 직접 쳐 보세요.
TAB이 한 옥타브 높게 나오는 이유는?
기타는 적힌 음보다 한 옥타브 낮게 소리 나는데, 파일은 이를 두 가지 방식으로 표현할 수 있어요. MusicXML은 파트를 실제로 울리는 높이로 적고 아래에 작은 8이 붙은 높은음자리표를 쓰거나, transpose 요소로 한 옥타브 위에 적을 수 있어요. 이 요소는 “올바른 실음을 얻으려면 기보음에 더해야 하는 값을 나타낸다”고 정의돼 있어요. 두 방식 모두 악보는 똑같이 인쇄돼요. 두 번째 방식의 기보음을 보고 TAB을 채우는 앱은 모든 음을 한 옥타브 높게 놓아요.
MuseScore 4.7.5에서 이 현상을 확인했어요. 파일에는 오픈 포지션의 C장조 음계가 들어 있었어요. 실음으로 C3에서 C4까지이고(5번 줄(A)의 3프렛에서 2번 줄(B)의 1프렛까지), 두 번째 방식으로 적고 줄과 프렛 정보도 담았어요. MuseScore는 프렛을 모두 바꿔 음계를 2번 줄(B)의 1프렛에서 1번 줄의 8프렛까지로 적었어요. 같은 음계가 한 옥타브 위로 간 거예요. 실제로 울리는 높이로, 아래에 8이 붙은 높은음자리표를 써서 적은 같은 음계는 모든 줄과 프렛이 적은 대로 열렸어요. ScoreStarling의 MusicXML 다운로드는 TAB 파트를 이 방식으로 적어요.
받은 TAB이 한 옥타브 높게 나왔다면, 음을 고치기 전에 원본 파일에서 음자리표와 파트의 조옮김 설정부터 확인하세요.
파일에서 카포는 무엇을 바꾸나요?
개방현의 음을 바꿔요. MusicXML의 capo 요소는 지정한 반음 수만큼 “줄의 개방 튜닝을 바꿔요”. 프렛 번호는 개방현이 0이어서, 카포를 2프렛에 끼우면 0프렛은 카포 위치에서 울리는 줄이고 3프렛은 너트에서 센 5프렛이에요. 연주자가 카포 코드표에서 읽는 방식과 같아요. MuseScore 4.7.5는 저희 MusicXML을 열 때 카포를 무시하고 너트부터 프렛을 적었으니, 악보의 텍스트에도 카포 위치를 함께 적어 두세요.
ScoreStarling이 TAB을 쓰는 방식
ScoreStarling은 2026년 10월 8일부터 기타, 베이스, 우쿨렐레 파트를 오선보 아래의 TAB으로, 또는 TAB만으로 보여 줄 수 있어요. 파트는 녹음, 동영상 링크, 악보 PDF, MusicXML, MIDI, ABC 파일에서 가져올 수 있어요. 악보 설정 › 기타 타브 악보에서 ‘낮은 프렛 우선’은 위에서 설명한 규칙을 따르고, ‘포지션 이동 최소화’는 파트 전체를 한꺼번에 보고 손의 포지션을 계획해요. 같은 음높이에서 다른 줄로 음을 옮기거나 프렛 번호를 직접 입력할 수도 있어요. 튜닝은 드롭 D, DADGAD, 오픈 G 등을 쓸 수 있고, 카포는 12프렛까지 지정할 수 있어요. 적힌 대로는 어느 줄로도 칠 수 없는 음에는 표시가 붙어요. 벤딩, 슬라이드, 해머링, 스트로크는 표기하지 않고, 튜닝은 곡 전체에 같은 값이 적용돼요. 오디오 기타 타브 악보 변환, 유튜브 기타 타브 악보 변환, 악보를 기타 타브 악보로 변환에서 써 보세요.
출처
- MuseScore,
src/engraving/dom/stringdata.cpp:convertPitch와fretChords, 2026년 10월 7일 확인. - MusicXML 4.0, string 요소: string 1은 음높이가 가장 높은 전체 길이의 줄이에요.
- MusicXML 4.0, fret 요소: 개방현은 0이에요.
- MusicXML 4.0, capo 요소.
- MusicXML 4.0, transpose 요소.
- 저희가 한 비교, 2026년 10월 8일: 표준 튜닝의 무작위 화음 480개(MuseScore Studio 4.7.5 명령줄과 ScoreStarling), 그리고 두 방식으로 적은 C장조 음계.
질문과 답변
악보 제작 프로그램이 제가 쓰지 않을 줄에 음을 놓는 이유는?
오선보에는 어느 줄을 쓸지 적혀 있지 않아서 앱이 규칙을 적용해요. MuseScore는 그 음을 낼 수 있는 줄 중 음높이가 가장 높은 줄을 골라 프렛이 가장 낮아지게 하고, 줄이 이미 쓰인 화음 구성음은 다음 빈 줄로 옮겨요. 다른 자리에서 치는 음은 다른 줄로 옮기세요. 음높이는 그대로예요.
기타 TAB이 한 옥타브 높게 나오는 이유는?
파일이 transpose 요소를 써서 기타를 실제 소리보다 한 옥타브 위로 적었고, 앱이 그 기보음을 프렛에 옮겼을 가능성이 커요. 파트를 실제로 울리는 높이로, 아래에 작은 8이 붙은 높은음자리표를 써서 적으면 해결돼요. 저희 테스트에서 MuseScore 4.7.5는 transpose 요소를 써서 적은 오픈 포지션 C장조 음계를 같은 음계의 한 옥타브 위로 바꿔 1번 줄과 2번 줄에 놓았어요.
카포를 쓰면 0프렛은 너트인가요, 카포인가요?
MusicXML에서는 카포를 기준으로 해요. capo 요소는 모든 줄의 개방 튜닝을 지정한 반음 수만큼 올리므로, 0프렛은 카포를 잡은 위치에서 울리는 줄이에요. MuseScore 4.7.5는 저희 MusicXML을 열 때 카포를 무시하고 너트부터 프렛을 셌어요.
ScoreStarling으로 녹음에서 기타 타브 악보를 만들 수 있나요?
네, 2026년 10월 8일부터 가능해요. 기타, 베이스, 우쿨렐레는 녹음을 오선보와 그 아래 TAB으로, 또는 TAB만으로 적어요. 벤딩, 슬라이드, 해머링은 표기하지 않아요. 오디오 기타 타브 악보 변환을 참고하세요.



