Примечание. Я являюсь разработчиком OpenMPT/libopenmpt и более десяти лет работал над кодом, работающим с форматами модулей.
Довольно простой ответ на этот вопрос - "нет". Даже формат IT, предложенный mr_lou, не является жизнеспособным надмножеством любого из упомянутых форматов. Не существует формата, который бы выполнял все, что делают все остальные форматы, и, в частности, среди упомянутых вами форматов .sid является нечетным, поскольку он не является отслеживаемым музыкальным форматом (он содержит программный код для выполнения на C64 или эмуляторе). , Как раз среди упомянутых вами форматов, у каждого из них есть уникальные команды, не поддерживаемые другими форматами:
- Мод имеет Invert Loop, что довольно уникально для этого формата
- Воспроизведение S3M "каноническим" способом (то есть, как ScreamTracker 3 будет их воспроизводить) несовместимо с IT по нескольким причинам, потому что он обрабатывает память эффектов по-разному.
- Большинство людей считают, что XM - это подмножество ИТ, но у ИТ нет некоторых команд, которые есть у ХМ (например, Key Off или Set Envelope Position).
- Исторически существовали некоторые форматы, которые пытались достичь того, чего вы хотите достичь (например, внутренний формат MikMod или GDM BWSB), но на самом деле они не являются надмножествами всех форматов, а более реалистично просто моделируют возможности внутренней работы MikMod или BWSB.
Вы можете продолжить этот список с любой комбинацией двух форматов модулей, и вы всегда найдете что-то, что сделано по-другому или не поддерживается ни одним из форматов. Каждый формат и проигрыватель имеет свои особенности, которые уникальны для этого формата. Конвертация между этими форматами всегда является процессом с потерями в общем случае. Пожалуйста , не конвертируйте модули в разные форматы, если это абсолютно не нужно.
Что касается проблемы метаданных, то было бы разумнее хранить эти метаданные отдельно от файла, поскольку большинство форматов модулей имеют плохую поддержку метаданных, и встраивание пользовательских метаданных не всегда возможно. Это может быть решено, например, с помощью базы данных, такой как база данных STIL для музыки C64 SID, которая поставляется с High Voltage SID Collection.
Я считаю, что реальным решением вашей проблемы является не придумывание еще одного формата контейнера, который, возможно, будет содержать каждую отслеживаемую музыку, а наличие стандартизированной музыкальной базы данных трекера и проигрывателя, который может обрабатывать множество форматов (например, путем объединения библиотек, таких как libopenmpt). , UADE, reSID и некоторые другие). Существуют различные плееры, которые могут быть расширены с помощью плагинов (например, XMPlay), которые отлично справляются с этой задачей. В настоящее время в работе также находится современное перевоплощение HippoPlayer, которое стремится воспроизводить практически любой отслеживаемый музыкальный формат и, в конце концов, также предоставляет богатые метаданные, возможно, через внешнюю базу данных. Вы можете увидеть прогресс этого проекта здесь: https://github.com/emoon/HippoPlayer