음악 정보는 음악 파일에 태그를 이용하여 기록한다. 태그 기록에 대해서는 그 규격이 있지만, 규격이 너무 장대하다거나, 또는 미흡한 부분이 있을 경우에, 어떤 프레임1)을 선택할 것인가는 큰 고민거리가 된다.
이는 프로그래머 만의 고민은 아니다. 클래식 음악을 주로 듣는 사람이라면 지휘자나 오케스트라를 적기를 원할 수도 있다. 하지만 재생기가 이를 지원하지 않는다면, 복잡한 방법으로 기록을 해야할 것이고, 또한 보는 방법도 쉽지많은 않을 것이다.
프로그래머의 고민과 소비자의 고민. 각각의 음악 재생기는 이러한 고민 속에서 어떻게 기록할 것인가에 대한 자신들만의 답을 내었고, 재생기마다 기록하는 태그에 차이가 발생하게 되었다.
하나의 재생기를 주구장창 쓴다면 이제 무슨 문제일러냐. 하지만 때론 다른 재생기를 써야할 때도 있을 것이고, 새로 산 휴대용 재생기가 내가 쓰는 방법과 다르게 태그 정보를 읽어서 머리에 스팀이 올라오게 할 지도 모른다.
태그 기능이 뛰어난 휴대용 재생기는 본인도 없으니 넘어가기로 하자. 하지만 Windows에서 돌아가는 재생기 소프트웨어는 내 손 안에 있으니 분석해 보려한다.
오늘의 재물은 Winamp와 iTunes, foobar2000, QMP(Quintessential Media Player)의 4종이다. 뭐가 뭔지 궁금하면 알아서 찾아보시길 바란다.
| Winamp | iTunes | foobar2000 | QMP | |
|---|---|---|---|---|
| Version | 2.3 | 2.32) | 2.4 | 2.3 |
| TIT2 | Title | Name | Track Title | Title |
| TPE1 | Artist | Artist | Artist Name | Track Artist |
| TPE2 | Album Artist | Album Artist | BAND | Band/Orchestra |
| TXXX/ALBUM ARTIST | Album Artist | ALBUMARTIST3) | ||
| TXXX/ALBUMARTIST | ALBUMARTIST | Album Artist | ||
| TALB | Album | Album | Album Title | Album |
| TCOM | Composer | Composer | Composer | Composer |
| COMM | Comment | Comments | Comment | Comment |
| TCON | Genre | Genre | Genre | Genre |
| TYER(2.3)/TDRC(2.4) | Year | Year | Recording Year | |
| TXXX/YEARREL | Release Year | |||
| TXXX/DATE | Date | |||
| TRCK | Track # | Track Number | Track Number Total Tracks | Track (# of #) |
| TPOS | Disc # | Disc Number | Disc Number Total Discs | Disc (# of #) |
| TPUB | Publisher | PUBLISHER | Publisher | |
| TBPM | BPM | BPM | BPM | BPM |
| USLT | Lyrics | UNSYNCED LYRICS | Lyrics | |
| TOPE | Orig. Artist | ORIG. ARTIST | ORIGARTIST | |
| TENC | Encoded | ENCODEDBY | ||
| TCOP | Copyright | COPYRIGHT | COPYRIGHT | |
| WXXX | URL | WWW | CustomLink | |
| TIT1 | Grouping | COTENT GROUP | Cont.Gr.Des. | |
| TCMP4) | Sort of a compilation | |||
| TIT3 | Video / Description | SUBTITLE | SUBTITLE | |
| TSOT | Sort Name | TitleSO | ||
| TSOA | Sort Album | AlbumSO | ||
| TSOP | Sort Artist | PerformerSO | ||
| TSO25) | Sort Album Artist | |||
| TSOC6) | Sort Composer | |||
| TXXX/PERFORMER | Performer | PERFORMER | ||
| TPE3 | CONDUCTOR | Conductor | ||
| TEXT | WRITER | Lyricist | ||
| TMOO | Mood |
연한 파란색은 기본 편집 창이 아닌 세부 프레임 목록에서 확인할 수 있는 것으로, 다른 재생기에서 기록한 태그 정보를 보여주기는 하는지 알려준다. 그렇지만 이를 확인하는 것도 귀찮은 일이니 그냥 없는 것으로 무시해도 된다.
앨범 음악가에 대해서는 본인의 블로그 글 MP3 ID3v2 태그와 앨범 아티스트에서 다뤘던 적이 있다. 여기에서는 좀 더 기술적인 면에서 다루려고 한다.
ID3v2(~2.4)에는 앨범 음악가를 위한 프레임이 없다. 앨범 음악가를 기록하는 것이 하나의 경향이 되었을 때, 프로그래머는 큰 고민을 했을 것이다. 어디에 기록할 것인가? 상식적으로는 사용자가 직접 정의할 수 있는 프레임을 사용하여 기록해야 할 것이다. 하지만 그렇지 않았다.
ID3v2에는 곡의 밴드나 오케스트라, 반주 등을 기록하는 TPE2라는 프레임이 있다. ID3v2의 방대한 프레임 중에서 이 프로그램은 많은 재생기에서 무시되었고, 쓰지도 않는 곳인데다가 앨범 음악가와도 얼추 비슷하니 프레임을 찾던 사람들에게는 좋은 먹이감이었을 것이다.
언제부터 Winamp와 iTunes가 TPE2를 쓰기 시작해는지는 모르지만(앨범 음악가 기록과 동시에 시작하지 않았을 수도 있다.) 어째든 이는 앨범 음악가를 기록하는 주 프레임이 되어 버린 것 같다.
하지만 TPE2 프레임을 유용하게 쓰던 클래식이나 재즈 음악 애호가들에게는 이러한 현상은 결고 바라지 않는 현상이었음에는 틀림없다.
어떤 이유인지 명확히는 알 수 없지만, foobar2000이나 QMP는 사용자 정의 프레임에 앨범 음악가를 기록한다. 그런데 여기에는 또 다른 문제가 있다. 사용자 정의 프레임 이름이 ALBUM ARTIST와 ALBUMARTIST로 서로 다른 것이다.
게다가 QMP는 한 술 더 떠서 foobar2000에서 기록한 ALBUM ARTIST를 ALBUMARTIST로 바꾸어 버린다. 그래서 foobar2000에서 기록한 앨범 음악가는 QMP에서 나오지만, QMP에서 기록한 앨범 음악가는 foobar2000에서는 볼 수 없다.
foobar2000이나 QMP 모두 TPE2는 밴드/오케스트라로 해석하며, QMP의 경우 쉽게 입력할 수 있는 입력 필드를 제공한다.
ID3v2.3에서 레코딩 날짜는 TYER(YYYY), TDAT(MMDD), TIME(DDSS)으로 나누어 기록했고, 자유롭게 기록하고 싶은 날짜(7월의 2~3주, 12월 27일 등)는 TRDA에 기록하였다.
연도만 기록하였던 ID3v1에서의 전통과 레코딩 월일까지 정확히 알기 어렵다는 사실이 겹쳐서, 대다수의 재생기에서는 TYER에 4자리의 발매 또는 녹음 연도만 기록할 수 있었다.
이러한 상황을 타파하기 위해서 였는지 ID3v2.4에서는 이러한 구조를 버리고, 하나의 프레임에 연도월일시간을 기록할 수 있도록 구조가 바뀌었다. 또한 TDEN(인코딩 시간), TDOR(최초 발매시간), TRDC(레코딩 시간), TDRL(발매 시간), TDTG(태깅 시간) 등의 프레임을 만들어 더 자세한 시간 데이터를 기록할 수 있도록 하였다.
하지만 ID3v1이나 ID3v2.3 등과의 호환성 등의 이유로 발매 또는 녹음 연도만 기록할 수 있다. 또한 날짜를 기록할 수 있는 foobar2000 역시도 기본 프레임이 아닌, DATE라는 사용자 정의 프레임을 사용한다. 원하는 데로 기록할 순 있지만, 다른 프로그램과 호환이 되지 않는 문제가 생긴다.
ID3v2.4에 시간 프레임은 ISO 8601에서 정의한 방법으로 기록하는데, 표준시간대는 항상 UTC를 따라야한다. yyyy와 yyyy-MM, yyyy-MM-dd, yyyy-MM-ddTHH, yyyy-MM-ddTHH:mm, yyyy-MM-ddTHH:mm:ss의 6가지 입력 방법이 있다.