В данной статье я расскажу о своём способе работы со звуковыми файлами на той стадии процесса, когда создание аудио уже произошло. На этом этапе может понадобиться грамотно проименовать файлы, конвертировать их в определённый формат, либо составить документацию, чтобы программист и любой другой пользователь библиотеки могли по документу быстро сориентироваться в содержимом.
Таким образом есть необходимость в техническом инструменте для конвертации, сортировки и подготовки файлов к публикации, имплементации или хранению. Для меня универсальным инструментом, сочетающим в себе все эти возможности, стал foobar2000: он бесплатный, расширяемый плагинами и опенсурсный.
В 2005 году состоялось моё первое знакомство с этим плеером — использовала я его исключительно для обработки своей музыкальной коллекции (в то время не многие плееры могли похвастать возможностью массового редактирования метаданных, а foobar мог) и, разумеется, для прослушивания этой коллекции. Также привлекательной была возможность изменения внешнего вида плеера путём редактирования и добавления скриптов. Но речь сейчас не об удобстве прослушивания и гибкости интерфейса, а о других качествах. Чтобы не рассказывать про всё хорошее подряд, перейду сразу к актуальному примеру.
Что необходимо сделать?
1. Просмотреть список звуковых файлов с отображением нужных нам атрибутов: метаданные, техническая информация. Сортировать файлы по выбранному признаку.
2. Составить документацию к файлам в виде таблицы, содержание столбцов которой будет состоять из пунктов: имя файла, длительность (важно — с миллисекундами), количество каналов, битрейт, бит на семпл, семпл рейт, размер файла и возможно ещё тип кодека и профиль.
3. Копировать/переименовать/переместить файлы в отдельный каталог или каталоги, используя паттерны.
4. Конвертировать файлы. Проигрывать трекерную музыку и конвертировать в форматы потокового аудио.
5. Записать в метаданные информацию, заключённую в названиях файлов — также с применением паттерна тегов.
6. Записать в метаданные информацию, взятую извне.
Просмотр, сортировка.
Для просмотра достаточно голого foobar2000 оригинальной конфигурации (с официального сайта www.foobar2000.org, безо всяких интерфейсных надстроек).
Всё, что необходимо сделать — указать в настройках плеера папки библиотек или перетащить в окно файлы, с которыми нужно провести какие-то операции и — настроить под свои нужды колонки этого интерфейса.
Есть некий список колонок, но ниже по кнопке “More…” мы попадаем на страницу настроек, где можем создать колонки с отображением других параметров. Name — имя колонки, Pattern — по местным правилам синтаксиса запрашиваем любой параметр: например, %directoryname%. Вот так:
Применяю изменения и в настройках столбцов включаю новый, кастомный.
Теперь я могу упорядочить файлы по именам каталогов.
Список команд форматирования находится в корневом каталоге программы (titleformat_help.html), но в этом списке отсутствуют некоторые важные команды, которые для работы с аудио мне понадобились первее остального: бит на семпл и длительность с учётом миллисекунд, без округления. Трудов стоило добыть эти команды, чем, в общем, и делюсь: %__bitspersample%, %length_ex%.
Вот так стало гораздо точнее.
Составляем документацию.
Для этой работы понадобится плагин Text Tools, который можно найти на официальном сайте foobar2000 в разделе components.
После установки функция становится доступна в меню по ПКМ на выделенных файлах.
Нас интересует Advanced…
Видим окно, в котором можно создать маску копируемых метаданных и технической информации. В этом окне я ввожу %filename% %channels% %bitrate% %__bitspersample% %samplerate% %length_ex% %codec% %codec_profile% %filesize%
Также можно добавлять в список заголовки (header), используя тот же синтаксис.
Копирую (copy) и получаю в буфер текст:
МД_07~stereo~1411~16~44100~1:14:49.439~PCM~?~791937206
МД_4~stereo~1411~16~44100~1:11:13.958~PCM~?~753926326
МД_5~stereo~1411~16~44100~1:20:52.227~PCM~?~855933110
МД_10~stereo~1411~16~44100~1:11:31.048~PCM~?~756940982
МД_11~stereo~1411~16~44100~1:10:57.611~PCM~?~751042742
МД_12~stereo~1411~16~44100~1:11:01.288~PCM~?~751691334
В маске использую тильду “~” в роли границы будущих столбцов, чтобы затем в текстовом редакторе типа Microsoft Word или LibreOffice Writer произвести автоматическую конвертацию текста в таблицу.
В окне паттерна можно использовать арифметические операции соответственно синтаксису foobar2000. С копируемой информацией о размере файлов можно поступить так: $div(%filesize%,1048576) MB. Результат такой обработки:
Если тип файла поддерживает хранение метаданных и файл содержит их — в паттерне можем использовать команды получения метаданных (%album%, %artist% и т.д.)
File Operations Setup
Функция, доступная по ПКМ меню на выделенных файлах. По скриншоту, думаю, в целом понятны возможности.
В поле file name pattern мы можем внести любые технические данные и метаданные и, к тому же, какие-то из них использовать для создания подкаталогов.
Проигрываем и конвертируем.
Для проигрывания базового набора форматов потокового аудио — можно установить Free Encoder Pack, предлагаемый разработчиком, либо найти альтернативу.
Меню конвертации доступно по ПКМ и по каждому формату параметры конвертации можно гибко настроить и сохранить для дальнейшего использования.
На сайте программы в пункте components можно найти плагины-декодеры для проигрывания игровых аудио-форматов: форматов трекерной музыки и других специфических. Для быстрого поиска можно применить фильтр game music, который предложен вверху страницы.
Создаём метаданные из названия и свойств файла.
Выделяем файлы, в меню ПКМ находим Properties и открываем Automatically fill values — в нём следуем уже известным нам правилам создания паттернов. Здесь можно выбрать исходник для форматирования — и составлять паттерн, работающий с данным исходником. В данном примере “разделителем” служит пробел.
6. Создаём метаданные из внешних источников.
Мы имеем некий текстовый список, соответствующий порядку наших файлов.
Копируем его в буфер обмена. В Automatically fill values выбираем Source — Clipboard: line per track — Paste и заполняем паттерн заполнения тегов.
В целом, для таких рутинных вещей данный плеер стал для меня избавлением от “ручных страданий”, и полностью удовлетворяет моим текущим требованиям.
Почему я не использую Soundminer или что-то подобное?
Во-первых, в цели пользования программой не входило что-то кроме вот этой текстовой технической обработки и прослушивания материала. Для нарезки и пре-обработки я использую другой софт.
Во-вторых, foobar2000 абсолютно бесплатный.
Тем не менее, в опциях конвертера плеера имеется функция применения DSP обработки к выходным файлам, что можно использовать для пре-обработки семплов. Я эту возможность не использую, поэтому о пользе судить не буду. Факт, что она есть. (для использования нужно установить компоненты DSP)
Также есть возможность в процессе конвертации создать превью треков.
Главный минус, который я вижу на данный момент: нет версии для macOS и в ближайшее время не предвидится.