짧은 답
MIDI 파일은 연주를 기록해요. 어느 건반이, 언제, 얼마나 세게, 얼마나 길게 눌렸는지요. MIDI 음에는 올림표나 내림표, 성부, 적힌 쉼표, 빔이 없고 파일에 조표도 없는 경우가 많아서 MuseScore가 이를 추측해야 하는데, 음이 박 그리드에서 벗어나 있을수록 추측이 가장 많이 빗나가요. 기타 채보 12개에서 저희의 첫 변환기는 조표를 쓰지 않았고 쉼표를 모두 숨겼어요. 같은 음을 일정한 템포의 16분음표 그리드에 맞추고 모든 트랙에 조를 써 넣어 MuseScore Studio 4.7.5의 가져오기 기능에 넣었더니, 12개 중 10개에서 조가 맞았고 쉼표가 모두 보였어요. MuseScore Studio 4에는 MIDI 가져오기 패널이 없으므로, 이 해결책은 MIDI 파일 안이나 명령줄의 옵션 파일에 넣어요.
MIDI 파일에는 무엇이 저장되지 않나요?
악보를 읽는 사람이 필요로 하는 것 대부분이에요. MIDI 음은 0부터 127까지의 건반 번호와 벨로시티로 이루어지며, 음이 시작될 때 한 번, 멈출 때 한 번 더 전송돼요(MIDI Association). 63번 음은 D♯이면서 E♭이기도 해요. 어느 쪽으로 적을지는 조에 달려 있고, 음 자체에는 그 정보가 없어요. Standard MIDI File에는 템포, 박자표, 조표를 메타 이벤트로 추가할 수 있지만, 성부, 쉼표, 빔, 잇단음표를 담는 표준 위치는 없어요. 쉼표는 그냥 빈 틈이고, 길이는 틱의 개수일 뿐 적힌 음가가 붙어 있지 않아요.
오디오를 MIDI로 바꾸는 도구는 두 번째 문제를 더해요. 타이밍이 녹음에서 나오기 때문에 음이 박에 정확히 떨어지는 일이 드물어요. ScoreStarling이 쓰는 Spotify의 Basic Pitch는 모든 음을 Electric Piano 1 파트 하나에, 사용자가 준 템포로, 조표 없이 써요(note_creation.py). 이를 악보로 바꾸려면 음마다 표기, 적을 길이, 성부, 보표를 정해야 해요. 모든 변환기가 이런 선택을 하는데, 더 잘하는 쪽과 못하는 쪽이 있어요.
단순한 변환기가 기타 채보 12개에 한 일
저희의 첫 악보 변환 단계는 music21 라이브러리로 직접 만든 변환기였어요. 공개 GuitarSet 데이터셋의 녹음 12개에서 나온 Basic Pitch MIDI를 녹음마다 템포를 지정해 넣었고, Verovio가 변환기가 쓴 내용을 그대로 조판했어요. 그 악보 12개를 점검한 결과는 이래요:
- 어느 악보에도 보이는 쉼표가 없었어요. music21의 MusicXML 내보내기는 기본적으로 빈 틈을 숨은 쉼표로 채워요(m21ToXml.py).
- 어느 악보에도 조표가 없었어요. E장조 곡에 올림표가 표시되지 않았고, C장조 반주 하나는 적힌 음 431개 중 153개에 불필요한 제자리표가 붙었어요(MIDI 음 421개, 일부는 붙임줄로 나뉨).
- 음 번호만으로 표기를 정했어요. MIDI 63번 음은 E장조에서 D♯이 필요한 곳에서도 늘 E♭으로 나왔고, G♭장조 곡에서는 그 조에 속한 음 49개 중 30개가 잘못 표기됐어요.
- 보표 하나에 성부가 최대 다섯 개까지 생겼어요. 음의 시작과 끝을 각각 가장 가까운 16분음표에 맞췄기 때문에, 다음 음 아래에서 아직 울리고 있는 줄이 있으면 성부가 하나 더 생기고 그에 맞춰 점과 붙임줄도 생겼어요.
- 기타가 피아노처럼 적혔어요. 악보 12개 중 10개는 큰보표로, 나머지 2개는 낮은음자리표로 적혔고 기타용 음자리표는 하나도 없었어요. Basic Pitch가 모든 음을 Electric Piano로 표시하기 때문이에요.
2026년 10월 7일에 저장해 둔 같은 MIDI 파일로 그 변환기를 다시 돌렸더니 같은 개수가 나왔어요.
음악 글꼴은 원인이 아니었어요. Verovio와 Leipzig 글꼴은 MusicXML이 말한 그대로 그렸고, 틀린 것은 MusicXML이었어요.
전과 후: MuseScore Studio의 가져오기 기능
먼저 오픈 소스 대안을 살펴봤어요. partitura는 조, 표기, 성부를 다루지만 퀀타이저가 없고 쉼표를 쓰지 않아요. 그 밖에 찾은 연구용 도구는 피아노 전용이거나, 라이선스가 없거나, 비상업용이거나, 아직 공개되지 않았어요. 그래서 이 일을 MuseScore Studio 4.7.5의 MIDI 가져오기 기능에 맡기고, 별도 프로그램으로 실행했어요. 같은 녹음 12개, 같은 Basic Pitch 음, 같은 템포를 아래 설명대로 준비해서 2026년 10월 2일에 Mac에서 돌렸어요:
| 측정 항목 | music21 변환기 | MuseScore 가져오기 |
|---|---|---|
| 조표가 주석과 일치 | 0/12 | 10/12 |
| 그 조의 음계에 속하는데 어긋나게 표기된 음 | 2,703개 중 322개 | 3,213개 중 0개 |
| 적힌 음 하나당 임시표 개수 | 0.53 | 0.06 |
| 보이는 쉼표 | 1,626개 중 0개 | 988개 중 988개 |
| 한 보표의 최대 성부 수 | 5 | 2 |
| 모든 MIDI 음이 적힘 | 12/12 | 12/12 |
| 4/4박자, 지정한 템포 | 12/12 | 12/12 |
적힌 음의 개수가 다른 것은 MuseScore가 박과 마디선을 넘는 음을 붙임줄로 처리하는 방식이 다르기 때문이에요. 틀린 조 두 개는 모두 주석의 조에서 5도 떨어진 조였어요. G♭장조 곡에는 D♭장조, E장조 곡에는 B장조였어요. 파일에 저희의 추정값을 넣지 않으면 MuseScore가 스스로 추측한 조는 12개 중 5개만 맞았고(2026년 10월 7일 재실행), 추정값을 써 넣자 10개로 올랐어요. 가져오기에는 녹음당 1.2~4.3초, 평균 2.3초가 걸렸어요.
전: 저희의 첫 변환기
후: MuseScore Studio의 가져오기 기능
MuseScore는 왜 템포, 박자, 조를 다시 추측하나요?
퀀타이즈되지 않은 MIDI는 MuseScore에게 실제 연주처럼 보여요. 가져오기 기능은 박 근처에 있는 음을 확인해서, 그중 박 위에서 정확히 시작하는 음이 60% 미만이면 파일을 사람의 연주로 취급해요(importmidi_quant.cpp). 그런 다음 자체 박 추적기를 돌려 박자를 고르고, 찾아낸 박에 맞게 음의 시간을 늘이거나 줄여요. MuseScore의 이전 안내서는 이 모드를 정확도를 일부 내주고 읽기 쉬움을 얻는 방식이라고 설명하며, 박에 맞지 않는 파일에서는 기본으로 켜져 있다고 해요.
조에는 별도의 규칙이 있어요. 드럼이 아닌 트랙 중 하나라도 조표가 없거나 파일이 연주로 판단되면, 가져오기 기능은 음에서 조를 추정해요(importmidi_key.cpp). 템포 트랙에만 조표가 있어서는 부족하고, 음이 있는 트랙마다 조표가 있어야 해요. 가공하지 않은 Basic Pitch MIDI에서는 사람 연주 옵션을 false로 해도 박자, 템포, 조가 모두 다시 추측되는 것을 확인했어요.
가져오기 전에 MIDI를 어떻게 준비해야 하나요?
MuseScore가 파일을 보기 전에, 악보에 대한 결정을 할 수 있는 만큼 MIDI 파일 안에서 하세요. 저희는 모든 채보에 이렇게 해요:
- 템포는 하나로 일정하게 쓰세요. ScoreStarling은 사용자가 정한 BPM이나 녹음에서 감지한 BPM을 써요. DAW에서는 클릭에 맞춰 녹음하거나 프로젝트 템포를 연주에 맞추세요.
- 모든 음의 시작과 끝을, 읽고 싶은 가장 짧은 음가의 그리드 위로 옮기세요. 여기서 10월 2일에 한 테스트는 4/4박자의 16분음표를 썼어요. 모든 음이 그리드 위에 있으면 MuseScore는 파일을 적혀 있는 악보처럼 읽어요.
- 템포와 박자표는 첫 번째 트랙에, 조표는 음이 있는 모든 트랙에 넣으세요. 저희는 music21의 Krumhansl–Schmuckler 조 찾기로 음에서 조를 추정해요. 실제 조를 안다면 그 조를 쓰세요.
- 트랙마다 실제 악기를 지정하세요. MuseScore는 General MIDI 프로그램으로 보표와 음자리표를 정해요. Electric Piano로 남아 있는 기타는 큰보표에 놓이고, 나일론현 기타 프로그램은 아래에 8이 붙은 높은음자리표를 받아요.
- 반복되는 음을 조심하세요. 같은 음높이를 그리드 한 칸 안에서 두 번 치면 그리드에 맞추는 과정에서 두 번의 시작이 하나로 합쳐져요. 저희는 두 번째 음을 32분음표만큼 뒤에 둬요.
MuseScore의 가져오기 설정은 무엇을 써야 하나요?
MuseScore Studio 4에는 이 설정을 위한 가져오기 패널이 없어요. 안내서는 MIDI 가져오기 패널을 “not currently implemented”(현재 구현되지 않음)라고 하고, 복원을 요청하는 GitHub 이슈(#11918, 2022년 6월에 등록)는 저희가 2026년 10월 3일에 확인했을 때도 열려 있었어요. 앱 안에서 쓸 수 있는 퀀타이즈 설정은 “Preferences → Import”(환경 설정 → 가져오기)에 있는, 가져온 MIDI 파일의 가장 짧은 음가 하나뿐이에요.
가져오기 기능은 지금도 명령줄에서 -M으로 넘긴 파일에서 주요 옵션을 읽어요. 안내서의 명령줄 페이지에 예시 파일 링크가 있어요. 아래는 10월 2일 테스트에서 쓴 파일이에요. ScoreStarling은 이제 멜로디 한 줄을 성부 하나로 쓰고(VoiceCount 0), 첫 마디가 못갖춘마디면 RecognizePickupBar를 켜요:
<?xml version="1.0" encoding="UTF-8"?>
<MidiOptions>
<QuantValue>2</QuantValue>
<VoiceCount>1</VoiceCount>
<Duplets>false</Duplets>
<Triplets>false</Triplets>
<Quadruplets>false</Quadruplets>
<Quintuplets>false</Quintuplets>
<Septuplets>false</Septuplets>
<Nonuplets>false</Nonuplets>
<HumanPerformance>false</HumanPerformance>
<MeasureCount2xLess>false</MeasureCount2xLess>
<SplitStaff>false</SplitStaff>
<ClefChanges>false</ClefChanges>
<SimplifyDurations>true</SimplifyDurations>
<ShowStaccato>false</ShowStaccato>
<DottedNotes>true</DottedNotes>
<RecognizePickupBar>false</RecognizePickupBar>
<Swing>0</Swing>
</MidiOptions>
그런 다음 출력을 MusicXML로 지정해서 변환하세요:
mscore -M midi-import.xml -o score.musicxml performance.mid
프로그램의 이름과 위치는 시스템에 따라 달라요. 안내서는 Windows에서 MuseScore4.exe를 써요. 주요 옵션이 하는 일은 이래요:
| 옵션 | 값 | 효과 |
|---|---|---|
| QuantValue | 2 | 가장 짧게 적을 음가: 16분음표(1은 8분음표, 3은 32분음표) |
| VoiceCount | 1 | 보표당 최대 두 성부. 성부 수는 값에 1을 더한 수 |
| 셋잇단음표와 그 밖의 잇단음표 | false | 저희 그리드에는 잇단음표가 없으므로 잇단음표를 찾지 않음 |
| HumanPerformance | false | 파일을 실제 연주로 취급하지 않음. 음이 그리드 위에 있을 때만 유효 |
| SplitStaff | false, 피아노는 true | 피아노 파트를 양손으로 나눔. 다른 악기는 MuseScore가 대신 별도 파트를 만듦 |
| SimplifyDurations | true | 쉼표가 줄고 음가가 단순해짐 |
| ClefChanges | false | 보표 안에 작은 음자리표 변경을 넣지 않음 |
| RecognizePickupBar | false | 첫 마디는 온전한 마디 |
| Swing | 0 | 스윙 감지 안 함 |
음악에 셋잇단음표가 있다면 일반적인 16분음표 그리드에 맞추지 말고 셋잇단음표 옵션을 켜 두세요. MuseScore가 이를 얼마나 잘 찾는지는 저희가 측정하지 않았어요. MuseScore 3에서는 같은 선택 사항이 가져오기 패널에 있었고, “Max. voices”, “Search tuplets”, “Is human performance” 같은 열이 있었어요.
Starling Refine으로 채보를 나중에 다듬을 수 있나요?
네. Starling Refine은 녹음을 채보한 결과를 교정하는 단계이고, 변경 하나하나가 실행 취소할 수 있는 버전으로 저장돼요. Plus에서는 무료이고, Plus가 없으면 한 달에 한 번 무료로 써 볼 수 있어요(요금, 2026년 10월 24일 확인). 〈엘리제를 위하여〉 채보의 시작 부분을 교정 전과 후로 나란히 보여 드려요.
교정 전: 채보 결과
Starling Refine 후
더 깔끔한 악보의 대가는 무엇인가요?
일부 정확도, 주로 음 길이의 정확도예요. 저희가 측정했거나 알고 있는 절충점은 이래요:
- MuseScore는 음의 26%를 퀀타이즈된 연주보다 길게 적었어요. 최대 16분음표 세 개만큼 길어졌고 더 짧아진 음은 없었으며, 함께 울리는 음은 길이가 달라도 하나의 음가를 공유할 수 있어요. ScoreStarling에서는 재생과 MIDI 내보내기가 연주된 타이밍을 그대로 유지해요. 다만 멜로디 한 줄은 먼저 정리해서, 함께 친 음 중 가장 센 음은 남기고 약한 울림은 없애며, 길게 끈 음은 다음 음이 시작되는 곳에서 끝나요.
- 조는 음에서 추정하며 12개 중 2개가 틀렸고, 둘 다 5도 떨어진 조였어요. 올림표나 내림표가 일곱 개인 조는 같은 소리를 내면서 올림표나 내림표가 다섯 개인 조로 적혀요.
- 10월 2일 기타 테스트의 16분음표 그리드는 셋잇단음표나 스윙을 표현할 수 없었어요. ScoreStarling이 악기 하나나 목소리를 채보할 때도 마찬가지예요. 이때는 4/4박자로 시작해요. 피아노 솔로는 연주의 마디를 따라가며 4/4, 3/4, 6/8, 12/8 중에서 고를 수 있어요. 파일을 직접 준비한다면 실제 박자표를 써 넣으세요.
- MuseScore는 자체 규칙으로 피아노 화음을 양손에 나누는데, 가까이 붙은 두 음짜리 화음도 서로 다른 보표에 놓일 수 있어요.
이 중 일부는 가져온 뒤에 정리할 수 있어요. “Tools → Regroup rhythms”(도구 → 리듬 다시 묶기)는 선택한 구간을 박 단위로 음이 묶이도록 다시 써 주는데, 리듬 자체는 바뀌지 않아요. “Tools → Respell pitches with sharps or with flats”(도구 → 올림표나 내림표로 음 다시 표기)는 표기를 바꿔 주지만, 안내서에 따르면 음높이가 하나인 음을 위한 기능이에요. 틀린 조는 가져온 뒤에 음마다 고치는 것보다 가져오기 전에 MIDI 파일에서 고치는 편이 빨라요.
MuseScore로 MP3를 악보로 바꿀 수 있나요?
MuseScore Studio로는 안 돼요. MusicXML, MIDI 같은 악보 형식은 열지만 오디오 파일은 열지 못해요. Muse Group은 2026년 8월 17일에 MuseScore 웹 플랫폼에서 Audio-to-Score 베타를 발표했어요. 피아노 솔로와 어쿠스틱 기타, 최대 30MB(약 3분)의 MP3 파일을 지원하고 무료이며, 결과는 MuseScore Studio용 MSCZ 파일로 돌려줘요. 저희는 테스트하지 않았어요.
다른 방법이 이 글에서 다룬 방법이에요. 오디오를 MIDI로 바꾸는 모델, 타이밍 준비, 그다음 MuseScore의 가져오기 기능이에요. ScoreStarling은 오디오 MIDI 변환이나 오디오 MusicXML 변환을 할 때 이런 방식으로 작동해요. 악기 하나나 목소리는 Basic Pitch로, 피아노 솔로는 음으로 박과 마디선도 정해 주는 피아노 모델로 처리하고, 악보는 Verovio가 그려요. 단선율은 이제 보표 하나에 성부 하나로 적고, 화음을 연주하는 파트는 화음을 한 보표에 그대로 둬요. ‘악보 설정’의 ‘녹음으로 악보 다시 쓰기’는 파트가 하나인 녹음을 다시 멜로디 한 줄로, 보표 하나나 두 개에 적을 수 있어요. 위의 측정값은 10월 2일 것이에요. 멜로디를 보표 하나에 한 번에 음 하나씩 적기 시작한 뒤인 10월 4일에 다시 돌렸을 때도 조가 12개 중 10개에서 맞았고, 조에 속한 음 3,158개 중 0개가 어긋나게 표기됐으며, 쉼표 357개가 모두 보였어요.
ScoreStarling에서 MIDI 파일을 선택하거나 끌어다 놓아도 편집 가능한 악보를 얻을 수 있어요. 드럼 트랙은 드럼 보표에 놓이고, 악보 전체는 박자표 하나를 유지해요. 악기 하나나 목소리, 피아노 솔로는 6분(Plus는 15분), 밴드는 최대 30분(Plus 없이는 6분)까지 다루고, 업로드는 최대 95MiB예요. PDF는 모든 계정에서, MusicXML은 Plus 구독 중에 받을 수 있어요. 나머지는 사양에 있어요(2026년 10월 24일 확인). 워크스페이스는 무료로 시작할 수 있고, AI 음악 채보, 얼마나 정확할까? 직접 측정해 봤어요에는 날짜가 적힌 기타와 밴드 측정값이 있어요.
출처
- Summary of MIDI 1.0 Messages, MIDI Association
- Meta Message Types, mido 문서
- basic_pitch/note_creation.py, Spotify Basic Pitch, GitHub
- music21/musicxml/m21ToXml.py, music21, GitHub
- GuitarSet 1.1.0, Xi et al., Zenodo (CC BY 4.0)
- MIDI import, MuseScore 4 안내서
- Restore MIDI import panel, issue #11918, MuseScore, GitHub
- importmidi_quant.cpp와 importmidi_key.cpp, MuseScore 소스, GitHub
- MIDI import, 이전 MuseScore 안내서(가져오기 패널)
- Command line usage와 그 예시 MIDI 가져오기 옵션 파일, MuseScore Studio 안내서
- Preferences, File export, Regroup rhythms, Respell pitches, MuseScore Studio 안내서
- Hear It, Play It: MuseScore Introduces New Smart Audio Recognition Features, Muse Group, 2026년 8월 17일
질문과 답변
MIDI를 MusicXML로 어떻게 변환하나요?
MuseScore Studio에서 MIDI 파일을 열고 “File → Export”(파일 → 내보내기)를 선택한 다음 MusicXML을 고르세요. 기본값은 압축된 .mxl이에요. 터미널에서는 mscore -o score.musicxml file.mid로 같은 일을 할 수 있고, -M으로 퀀타이즈와 성부를 위한 옵션 파일을 추가할 수 있어요. 먼저 MIDI를 준비하세요. 그러지 않으면 MusicXML에도 같은 지저분함이 담겨요.
MIDI를 가져오면 왜 붙임줄과 점음표가 이렇게 많은가요?
연주된 음은 박에 맞춰 끝나는 경우가 드물어요. 촘촘한 그리드에 맞추면 박과 마디선을 넘나들어 붙임줄이 필요해지고, 겹치는 음은 여분의 성부로 넘쳐 나요. 읽고 싶은 가장 짧은 음가로 퀀타이즈하고, 가져오기에서 성부를 두 개까지로 제한하고, 음가를 단순화하게 하세요. 그러면 MuseScore가 악보를 깔끔하게 하려고 일부 음을 조금 더 길게 적어요.
E♭을 예상했는데 MuseScore가 D♯으로 적는 이유는 무엇인가요?
MIDI는 63번 음을 표기 방식 없이 저장하므로 MuseScore는 조표를 보고 표기를 정하고, 트랙에 조표가 없으면 스스로 조를 추정해요. 가져오기 전에 모든 트랙에 올바른 조표를 써 넣으세요. 가져온 뒤에는 “Tools → Respell pitches with sharps or with flats”(도구 → 올림표나 내림표로 음 다시 표기)가 선택한 음 중 같은 음높이인 음의 표기를 바꿔 줘요.
MuseScore Studio 4에서 MuseScore 3의 MIDI 가져오기 패널을 쓸 수 있나요?
아니요. 저희가 2026년 10월 3일에 확인했을 때는 안 됐어요. 그 패널은 옮겨 오지 않았고, 복원을 요청하는 GitHub 이슈 #11918는 아직 열려 있어요. MuseScore Studio 4에는 가져온 MIDI에 대한 가장 짧은 음가 설정이 있고, 명령줄에서는 -M으로 패널의 주요 선택 사항을 담은 옵션 파일을 받아요.
ScoreStarling 채보를 MuseScore에서 열 수 있나요?
네. 조표, 표기, 쉼표, 성부를 유지하는 MusicXML(.musicxml 또는 .mxl)을 내보내세요. 음만 필요하면 MIDI를 내보내세요. 둘 다 Plus 구독 중에 받을 수 있어요. ScoreStarling은 무료로 시작할 수 있고, 모든 채보는 귀로 확인해야 하는 초안이에요.



