В ходе обсуждения предыдущего топика про криворукость разработчиков одной небезызвестной компании, спор как-то плавно перешёл в сторону холивара «зачем проигрывать файлы в папке подряд, когда давно придумали тэги», который я довольно эпично зафейлил. Собравшись с силами, попробую теперь всё-таки пояснить свою позицию.
В чём профит использования метатэгов? В трёх основных моментах:
(а) возможность спокойно перемещать свои файлы, не опасаясь их потерять — медиабиблиотека позволит найти трек в любой самой феерической файловой куче;
(б) готовые базы данных (CDDB, например), которые позволяют автоматически протегировать треки;
(в) унифицированный формат отображения трека в плеере — на фоне зоопарка и разнобоя в именах файлов, плеер всегда покажет чистенькую строчку Артист — Название трека. (Ну или Артист — Название альбома — Номер трека. Название трека. Кому как удобнее.)
Проблема только в том, что всё это работает только на уровне стандартной схемы «исполнитель — альбом — трек», и абсолютно отказывается работать в другой предметной области (я говорю о классической музыке). Сейчас я попытаюсь пояснить, почему.
Идея метатэгов изначально базируется на следующем принципе: мы можем привязать метаинформацию непосредственно к самому файлу. Трек является самостоятельной независимой единицей, которую можно легко выдернуть из «контекста» (альбома, сборника) и он не потеряет свою ценность. Логично тогда и всю нужную информацию привязать прямо к треку, а не к контексту.
В случае классической музыки это абсолютно не так.
1. Большинство классических произведений состоят из нескольких частей. Многие — ещё и имеют иерархию подразделений внутри одного произведения (для опер, например, акт — действие — номер). Выдёргивать отдельный трек из записи НЕЛЬЗЯ. Это попросту бессмысленно.
2. Одно и то же произведение записывается многократно. У меня, например, есть более 50 полных комплектов симфоний Бетховена. Многие записи сделаны одним и тем же исполнителем в разные годы и в разных местах. Есть записи, сделанные одним и тем же исполнителем в один и тот же день!
3. У одной записи может быть более одного исполнителя. В случае опер, например, это 5-10 исполнителей основных ролей, хор, дирижер хора, оркестр и дирижер оркестра. Иногда несколько оркестров или несколько хоров.
4. И, наконец, у классической музыки ИНОЙ ПАТТЕРН ИСПОЛЬЗОВАНИЯ. Это (а) другой паттерн выбора — по композитору и по исполнителю — и (б) другой паттерн воспроизведения — у классического произведения, как правило, заметная продолжительность по времени (полчаса и более), поэтому кейса «посмотреть, что сейчас играет» нет; есть кейс «пропустить трек/перескочить на нужный фрагмент».
Итак, почему же всё вышесказанное делает тэги непригодными?
1. У классической записи ТРИ уровня метаинформации: само произведение, запись, трек внутри записи. Эту информацию необходимо предоставлять в иерархическом виде:
Композитор: Бетховен Произведение: Симфония №6, Пасторальная Запись 1: Чикагский симфонический оркестр п/у Фрица Райнера, 1961 Часть 1. Пробуждение радостных чувств от прибытия в деревню. Allegro ma non troppo Часть 2. Сцена у ручья. Andante molto mosso Часть 3. Веселое сборище крестьян. Allegro Часть 4. Гроза. Буря. Allegro Часть 5. Пастушья песнь. Allegretto Запись 2: Филадельфийский оркестр п/у Юджина Орманди, 26.01.1966 Часть 1. Пробуждение радостных чувств от прибытия в деревню. Allegro ma non troppo Часть 2. Сцена у ручья. Andante molto mosso Часть 3. Веселое сборище крестьян. Allegro - Гроза. Буря. Allegro - Пастушья песнь. Allegretto Запись 3: ... Произведение: ...
Метаинформация не привязана к конкретному файлу! Она попросту там избыточна. Да и файл всё равно нельзя просто взять и перенести куда-то.
Но, допустим, для чистоты эксперимента, мы сделаем над собой насилие и сведём всю информацию в конечный трек. Получим в нашем гипотетическом плейлисте примерно следующее:
1. Брамс. Концерт для скрипки и виолончели с оркестром «Двойной» — Жак Тибо, скрипка; Пабло Касальс, виолончель; оркестр Пабло Касальса п/у Альфреда Корто — Барселона, 10-11.05.1929 — 1. Allegro
2. Брамс. Концерт для скрипки и виолончели с оркестром «Двойной» — Жак Тибо, скрипка; Пабло Касальс, виолончель; оркестр Пабло Касальса п/у Альфреда Корто — Барселона, 10-11.05.1929 — 2. Andante
3. Брамс. Концерт для скрипки и виолончели с оркестром «Двойной» — Жак Тибо, скрипка; Пабло Касальс, виолончель; оркестр Пабло Касальса п/у Альфреда Корто — Барселона, 10-11.05.1929 — 3. Vivace ma non tanto
В выведенной плейлистом куче-мале информации данных по самому треку — 10%. Всё остальное — метаинформация более высокого уровня, которая дублируется n раз просто для того, чтобы правильно идентифицировать трек в медиабиблиотеке. Я уж оставляю за скобками вопрос, кто и как будет вписывать эти безумные метаданные.
Но, по-прежнему, допустим. Мы придумали кастомные поля для хранения всех метаданных в треке, прописали эти метаданные и настроили медиабиблиотеку так, чтобы она показывала информацию о треке именно в таком виде.
Можем ли мы теперь использовать все преимущества метатэгов, которые я описал выше?
(а) Перемещать файлы — можем. Да только это бессмыссленно: нет кейса оторвать одну часть от произведения. Всё равно придётся перемещать их как минимум в составе всей записи.
(б) Использовать готовые базы — не можем. Мы же сами только что придумали, как распихать всю эту информацию по тэгам. Думаете, какая-то из существующих баз поддерживает этот формат? Черта с два. Я вам больше скажу — нет ни одной базы, где вся нужная метаинформация присутствует хоть в каком-то виде. Типичное описание классического альбома в базах выглядит примерно так: www.freedb.org/freedb/classical/45115f06
(в) Унифицировать формат отображения в плеере — да! Унифицировали. Да вот только описание трека стало невнятной кашей в несколько строчек с минимумом полезной информации.
А решили ли мы какие-то кейсы из паттерна использования?
(а) Поиск по любой части метаданных — вероятно, возможен, как меня уверяют в предыдущем топике. Но только в десктопной библиотеке. 90% плееров, включая все мобильные, не даст нормально искать по метаинформации, как её не вписывай.
(б) Паттерн воспроизведения… тут всё стало вообще плохо. Кейс «открыть нужную запись» усложнился — её можно найти только поиском по кастомным полям; гигантское месиво метаинформации в плеере — абсолютно бесполезно, поскольку эта информация нужна ТОЛЬКО в момент выбора произведения; кейс «пропустить пару треков» переусложнён — очень трудно найти нужный трек, если 90% наименования трека составляет бесполезная информация.
Итак, зачем же мне использовать метатэги? Получается, незачем. Я не могу пользоваться ни одним преимуществом метатэгов, и они усложняют мне типичные паттерны использования медиабиблиотеки.
Ну и что делать?
А тут есть два пути. Простой и сложный.
Простой: раскидать всё по файловой системе и забить на метатэги. Приходится здесь, правда, усложнять один из двух кейсов: поиск по произведению или поиск по исполнителю. Я выбрал второе, у меня файловая система выглядит так:
Beethoven Orchestral Music Symphonies Symphony No. 9, Choral Georg Ludwig Jochum, 1961
Я легко могу выбрать нужное мне произведение, а потом выбрать интересное мне исполнение этого произведения. Это, в целом, покрывает 80% кейсов использования мной медиабиблиотеки.
Что самое важное, этот паттерн я могу легко использовать в любом плеере и на любом устройстве, который поддерживает функцию «открыть папку и проиграть все файлы подряд».
Сложный:
1. Придумать свой формат метатэгов, совместимый с mp3, ape, flac, vw, cue, mp4 и ogg;
2. Протэгировать все 600 Гб своей музыки;
3. Написать свой плеер, который умеет читать мой формат метатэгов и группировать треки в иерархические деревья согласно тэгам; портировать этот плеер на основные платформы;
4. Сделать свою базу данных по классическим трекам и мэйнтейнить её.
И, если я всё это сделаю, мне скажут спасибо примерно с десяток гиков, увлекающихся классической музыкой. При этом я не улучшу самому себе ни одного кейса и ни одного паттерна, кроме быстрого поиска по исполнителю.
Что бы выбрал ты, %USERNAME%?
Автор: forgotten