1. 민지 기능 설명서
파일 재생MIDI(.mid/.midi), MusicXML(.musicxml/.xml), IMS(.ims)를 불러와 브라우저에서 연주합니다. IMS는 실험 지원입니다.
악기 선택내장 신시사이저, 온라인 SoundFont 샘플, BNK/AdLib 악기은행 근사 적용을 선택할 수 있습니다.
트랙 관리트랙을 개별로 켜고 끄거나 전체 켜기/전체 끄기를 사용할 수 있습니다. 재생 중에도 반영됩니다.
코드 출력동시에 울리는 음을 분석해 코드 진행을 추정하고, 연주 중 현재 코드와 전체 코드 텍스트를 표시합니다.
렌더링 저장재생하지 않아도 오디오 파일을 렌더링할 수 있습니다. 전체 저장, 구간 저장, n초 간격 샘플 저장, 중지 후 부분 저장을 지원합니다.
Airinn Music 테마Cafe Airinn, Midnight Kiss, 수채화를 위한 발라드, 겨울기억 등 Airinn Music 분위기의 색상 테마를 제공합니다.
활용 용도
- 음악 아이디어 확인: 작곡 중인 MIDI나 MusicXML을 빠르게 재생해 멜로디와 코드 흐름을 확인합니다.
- 악보 학습: MusicXML을 열어 연주 타이밍과 화성 진행을 귀로 확인합니다.
- 레트로 음악 감상: IMS/BNK 파일을 불러와 한국 DOS/PC통신 시절의 AdLib 계열 음악을 체험합니다.
- 데모 샘플 제작: 전체 곡 또는 n초 간격 샘플을 MP3/WAV로 저장해 공유용 데모를 만듭니다.
- 교육 자료 제작: 코드 출력과 렌더링 기능을 사용해 작곡·화성·MIDI 수업 자료를 만듭니다.
- AI 음악 워크플로: AI가 만든 MIDI를 들어 보고, 코드/구간/악기 느낌을 빠르게 점검합니다.
2. MIDI란 무엇인가?
MIDI(Musical Instrument Digital Interface, 악기 디지털 인터페이스)는 소리 자체를 담는 오디오 파일이 아니라, “어떤 음을, 언제, 얼마나 세게, 어떤 악기로 연주할지”를 기록하고 전달하는 음악 명령 체계입니다. 그래서 MIDI 파일은 MP3/WAV보다 훨씬 작고, 나중에 음색·템포·조성·악기·길이를 편집하기 쉽습니다.
MIDI는 “악보 + 연주 지시서”에 가깝고, MP3/WAV는 “녹음된 소리”에 가깝습니다. 같은 MIDI라도 어떤 신시사이저나 SoundFont로 재생하느냐에 따라 소리가 달라집니다.
MIDI가 오래 살아남은 이유
- 제조사가 달라도 악기·컴퓨터·DAW가 서로 소통할 수 있습니다.
- 음정, 세기, 타이밍, 컨트롤러 움직임을 데이터로 남길 수 있습니다.
- 작곡, 편곡, 게임 음악, 노래방, 교육, 라이브 공연, AI 음악 분석에 모두 쓸 수 있습니다.
- 오디오보다 편집 가능성이 높습니다. 잘못 친 한 음만 고치거나, 피아노를 스트링으로 바꿀 수 있습니다.
3. MIDI 핵심 용어: 영어 / 한국어
| English | 한국어 | 설명 |
| MIDI | 미디 | 악기와 컴퓨터가 음악 연주 정보를 주고받는 표준입니다. |
| SMF / Standard MIDI File | 표준 MIDI 파일 | .mid/.midi 파일. 시간 정보가 붙은 MIDI 이벤트를 파일로 저장한 형식입니다. |
| Track | 트랙 | 피아노, 베이스, 드럼처럼 파트를 나누는 단위입니다. |
| Channel | 채널 | MIDI 1.0에서 1~16번까지 쓰는 연주 통로입니다. 보통 10번 채널은 드럼으로 사용됩니다. |
| Note On / Note Off | 음 시작 / 음 끝 | 건반을 누르고 떼는 이벤트입니다. |
| Velocity | 세기 / 벨로시티 | 건반을 얼마나 세게 쳤는지 나타냅니다. 음량뿐 아니라 음색에도 영향을 줄 수 있습니다. |
| Program Change | 악기 변경 | 피아노, 기타, 스트링 등 사용할 악기 번호를 바꾸는 이벤트입니다. |
| Control Change / CC | 컨트롤 변경 | 볼륨, 팬, 서스테인 페달, 모듈레이션 같은 연주 표현을 조절합니다. |
| Pitch Bend | 피치 벤드 | 음정을 미끄러지듯 올리거나 내리는 표현입니다. |
| Tempo | 템포 | BPM. 1분에 몇 박자인지를 나타냅니다. |
| PPQ / TPQN | 4분음표당 틱 수 | MIDI 시간 해상도입니다. 값이 클수록 미세한 타이밍 표현이 쉬워집니다. |
| Quantize | 퀀타이즈 / 박자 보정 | 흔들린 연주 타이밍을 박자 격자에 맞추는 편집입니다. |
| Humanize | 휴머니즈 / 인간화 | 너무 기계적인 타이밍과 세기에 작은 변화를 줘 자연스럽게 만드는 과정입니다. |
| SoundFont | 사운드폰트 | 샘플 기반 악기 음색 묶음입니다. 같은 MIDI도 SoundFont에 따라 전혀 다르게 들립니다. |
| Synthesizer | 신시사이저 | 파형·필터·엔벨로프 등으로 소리를 만드는 장치나 소프트웨어입니다. |
| DAW | 디지털 오디오 워크스테이션 | Cubase, Logic, FL Studio, Ableton Live, Reaper 같은 음악 제작 프로그램입니다. |
| MusicXML | 뮤직XML | 악보 정보를 교환하기 위한 XML 기반 형식입니다. 악보 표기와 파트 구조 보존에 강합니다. |
| IMS | IMPlay Song Format | 한국 DOS 환경에서 많이 보인 AdLib/OPL 계열 음악 파일 형식입니다. |
| BNK | AdLib 악기은행 | OPL/FM 악기 이름과 레지스터 정보를 담는 악기 데이터 파일입니다. |
4. MIDI 파일 안에는 무엇이 들어 있나?
표준 MIDI 파일은 보통 헤더 청크(MThd)와 하나 이상의 트랙 청크(MTrk)로 이루어집니다. 트랙 안에는 시간이 붙은 이벤트들이 순서대로 저장됩니다.
- Header: 파일 형식, 트랙 수, 시간 해상도 정보를 담습니다.
- Delta Time: 이전 이벤트 이후 얼마나 시간이 지났는지를 나타냅니다.
- Meta Event: 템포, 박자표, 조성, 트랙 이름, 가사 같은 음악 메타 정보를 담습니다.
- Channel Voice Message: 음 시작/끝, 악기 변경, 컨트롤 변경처럼 실제 연주에 직접 관련된 이벤트입니다.
SMF Type 0 / Type 1 / Type 2
- Type 0: 모든 파트가 하나의 트랙에 합쳐져 있습니다.
- Type 1: 여러 트랙이 동시에 진행됩니다. 일반적인 편곡 MIDI에 많이 쓰입니다.
- Type 2: 여러 곡/패턴을 순차적으로 담는 구조지만 실제 사용은 드뭅니다.
5. MusicXML과 MIDI의 차이
MIDI가 강한 것연주 데이터, 타이밍, 벨로시티, 컨트롤러, 실제 연주 느낌, DAW 편집, 게임/장치 제어.
MusicXML이 강한 것오선보, 음표 표기, 마디·파트·가사·악상 기호, 악보 프로그램 간 교환.
MusicXML은 “악보를 정확하게 옮기기 위한 형식”에 가깝고, MIDI는 “연주를 재생하고 편집하기 위한 형식”에 가깝습니다. MusicXML을 MIDI처럼 재생하려면 박자, divisions, duration, backup/forward, tie, chord 같은 악보 정보를 시간축으로 다시 계산해야 합니다.
6. SoundFont, BNK, OPL/FM 음색 이해
- SoundFont는 녹음된 샘플을 음정별로 재생하는 방식에 가깝습니다. 피아노, 스트링, 드럼 같은 실제 악기 느낌을 내기 쉽습니다.
- BNK는 AdLib/OPL 계열의 FM 악기 정보를 담습니다. 샘플이 아니라 오퍼레이터, 배음, 엔벨로프 같은 합성 파라미터가 핵심입니다.
- OPL/FM은 1990년대 DOS 게임과 PC 음악에서 많이 들을 수 있는 특유의 전자음, 벨소리, 금속성 음색을 만듭니다.
민지는 현재 BNK를 “근사 음색”으로 적용합니다. 원음에 더 가까워지려면 YM3812/OPL2 에뮬레이터를 넣어 BNK 레지스터 값을 실제 FM 합성에 연결해야 합니다.
7. 하늘소 IMPlay, IMS, BNK 소개
IMPlay는 한국 DOS/PC통신 음악 문화에서 회자되는 AdLib/OPL 계열 플레이어입니다. 이 계열에서 사용된 IMS 파일은 표준 MIDI와 비슷한 이벤트 구조를 가지면서도, 끝부분에 악기 이름 테이블을 붙이는 점이 특징입니다.
- IMS: 음표와 시간 이벤트를 담는 음악 파일입니다. MIDI와 비슷하지만 AdLib/OPL 악기 사용을 전제로 합니다.
- BNK: IMS에서 참조하는 악기의 실제 FM 음색 정보를 담는 악기은행입니다. 예: STANDARD.BNK.
- 악기 매칭: IMS 파일 안의 악기 이름이 BNK 안의 악기 이름과 일치하면, 그 악기 정보를 적용할 수 있습니다.
- 문자 인코딩: 옛 한국어 IMS 파일은 EUC-KR뿐 아니라 Johab 조합형 한글이 섞일 수 있어, 제목이 깨져 보일 수 있습니다. 민지는 `쨧쟞늳 봧쨜` 같은 오인식 패턴을 줄이기 위해 Johab 후보를 우선 검증합니다.
민지는 IMS 제목의 Johab 조합형 한글을 해석하고, IMS 악기 이름과 BNK 악기 이름을 맞춰 근사 재생합니다. MIDI/MusicXML은 원래 BNK 악기 이름을 갖고 있지 않으므로, GM 프로그램 번호를 BNK 악기명에 대응시키는 방식으로 근사 적용합니다.
8. 코드 출력은 어떻게 동작하나?
민지는 같은 시간대에 울리는 음들을 모아 음 집합을 만들고, 그 음들이 어떤 코드 구성음에 가까운지 추정합니다. 예를 들어 C, E, G가 함께 울리면 C Major로 볼 수 있습니다.
- 장점: 코드명이 없는 MIDI/IMS에서도 화성 진행을 대략 확인할 수 있습니다.
- 한계: 지나가는 음, 멜로디 음, 서스펜션, 텐션, 페달톤이 많으면 실제 코드와 다르게 추정될 수 있습니다.
- 활용: 빠른 분석, 연습용 코드표 만들기, 리믹스 전 화성 확인에 유용합니다.
9. 준전문가를 위한 MIDI 활용 지식
ExpressionCC11 Expression과 CC7 Volume을 구분하면, 전체 음량과 연주 표현을 따로 조절할 수 있습니다.
Sustain PedalCC64는 피아노 연주에서 매우 중요합니다. Note Off가 와도 페달이 켜져 있으면 음이 지속됩니다.
Bank SelectCC0/CC32와 Program Change를 조합해 GM 이상의 확장 음색을 선택할 수 있습니다.
Pitch Bend Range피치 벤드는 값만으로 반음 범위가 정해지지 않습니다. RPN 설정에 따라 ±2반음, ±12반음 등으로 달라집니다.
Tempo Map곡 중간에 템포가 바뀌면 tick을 초 단위로 변환할 때 각 구간의 tempo event를 반영해야 합니다.
Human Timing좋은 MIDI는 박자에 정확하기만 한 데이터가 아니라, 의도적인 미세한 밀고 당김을 담습니다.
10. MIDI 배우는 순서와 과정
- 1단계: MIDI는 오디오가 아니라 명령이라는 점 이해 — MIDI와 MP3/WAV의 차이를 먼저 익힙니다.
- 2단계: 피아노 롤 보기 — DAW나 시퀀서에서 음높이, 길이, 세기를 눈으로 확인합니다.
- 3단계: Note On/Off, Velocity 익히기 — 같은 음이라도 세기에 따라 느낌이 달라지는 것을 들어 봅니다.
- 4단계: 악기와 채널 이해 — Program Change, Channel, GM Drum Channel을 배웁니다.
- 5단계: 컨트롤러 배우기 — Volume, Pan, Sustain, Modulation, Expression을 실습합니다.
- 6단계: 퀀타이즈와 휴머니즈 — 기계적인 MIDI와 자연스러운 MIDI의 차이를 비교합니다.
- 7단계: MusicXML과 악보 연동 — 악보 파일을 MIDI로 변환하거나, MIDI를 악보로 정리해 봅니다.
- 8단계: SoundFont와 가상악기 — 같은 MIDI를 여러 음색으로 바꿔 보며 사운드 디자인을 배웁니다.
- 9단계: 편곡과 믹싱 — 파트별 음역, 보이싱, 악기 배치, 다이내믹을 다룹니다.
- 10단계: 고급 분석 — 템포맵, 피치벤드, RPN/NRPN, SysEx, MIDI 2.0 개념까지 확장합니다.
11. MIDI의 현재 활용 현황
- 대중음악 제작: 드럼, 베이스, 피아노, 신스, 스트링 편곡을 MIDI로 먼저 만들고 가상악기로 소리 냅니다.
- 라이브 공연: 키보드, 패드 컨트롤러, 조명, 루퍼, 클릭 트랙을 MIDI로 동기화합니다.
- 교육: 피아노 학습 앱, 리듬 훈련, 화성 분석, 악보 재생에 활용됩니다.
- 게임/인터랙티브 음악: 상황에 따라 악기·템포·패턴을 바꿀 수 있어 동적 음악에 유리합니다.
- AI 음악: MIDI는 음표와 시간 구조가 명확해 학습 데이터, 토큰화, 생성, 편곡 분석에 자주 쓰입니다.
- 레트로 보존: DOS 게임, PC통신 음악, AdLib/OPL 파일을 복원하고 재생하는 데 중요합니다.