Делаем auCDtect Task Manager всеядным конвейером!-ПРЕАМБУЛА
Коллеги, перед проверкой файлов с высокой битностью и частотой обычно требуется выполнить дополнительные манипуляции. В качестве альтернативного варианта я использовал fooCDtect. Этот инструмент обладает многими преимуществами, но для работы требует наличия foobar2000, отдельных настроек и выводит лог специфичного не очень информативного стандарта. Со временем формат лога auCDtect Task Manager стал наиболее удобным стандартным решением и заменил большинство других проверяющих программ (аудиочекеров), благодаря функции записи контрольных сумм в логах и автоматическому созданию спектральных анализов сомнительных треков. Это значительно упрощает процесс проверки и делает использование дополнительных инструкций по спектрам практически ненужным. В данном руководстве я расскажу, как можно расширить возможности этого инструмента, повысить его универсальность и ускорить работу за счёт использования нового высокоэффективного декодера. МАТЕРИАЛЫ ДЛЯ СБОРКИ
1. Оригинальный auCDtect Task Manager можно скачать тут: https://codecpack.co/download/auCDtect-Task-Manager.html. Сразу удаляем папку Codecs, она нам не понадобится.
2. Официальная страница кодека ffmpeg на Github: https://github.com/BtbN/FFmpeg-Builds/releases (берём ffmpeg-[...]-latest-win64-gpl-[...].zip для современной 64-битной Винды (с 2024 года поддержка от Windows 10) или смотрите сами по своей системе, возможно надо поискать более старую/совместимую версию).
3. Также следует обновить SoX до финальной версии: https://sourceforge.net/projects/sox/files/sox/14.4.2/ (берём sox-14.4.2-win32.zip). Содержимым заменяем старую версию в подпапке \sox. МАНИПУЛЯЦИИ
1. ffmpeg.exe кладём в папку к auCDtect Task Manager.
2. Открываем файл Codecs.ini и заменяем содержимое кодом из спойлера.
МЕХАНИЗМ РАБОТЫ ffmpeg является поистине многозадачным кодеком/муксером, который умеет из чего угодно раскодировать и во что угодно кодировать. Он имеет огромное количество разных ключей и фильтров, вообще-то он главным образом разрабатывался для работы с видео-форматами, но и поддерживает всевозможные манипуляции с аудио. В принципе широта его применения может быть поистине безграничной. Таким образом передаём следующую команду: ffmpeg.exe -i "%s" -vn -ar 44100 -sample_fmt s16 %d, где
-i "%s" — входной файл, %s - это путь к файлу, рекомендуется его помещать в кавычки, так как он может содержать пробелы, что создаёт большинство проблем с консольными приложениями
-vn — запрет на передачу выходному файлу любой видео и графической информации из входного контейнера, в том числе вшитых обложек - просто страхует от лишнего хлама
-ar 44100 — ключ -а задаёт настройки аудио, -ar - частота дискретизации выходного файла
-sample_fmt s16 — этот не совсем очевидный по названию ключ ставит формат выходного файла 16 бит
%d — это (временный) выходной файл, который будет помещён во временную папку, которая указана в настройках auCDtect Task Manager, его название формируется псевдослучайным методом. ДОПОЛНИТЕЛЬНЫЕ КОММЕНТАРИИ
1. В Codecs.ini в Path можно писать только пути внутри рабочей папки auCDtect Task Manager. Он не поддерживает возвратные пути вида: "..\..\сodecs\ffmpeg.exe". Если вы не хотите дублировать уже имеющийся у вас где-то в другом месте ffmpeg.exe, то используйте hardlink или junction (Link Shell Extension вам в помощь).
2. В Codecs.ini можно задать любые другие форматы входных файлов, в том числе видео, по той же простейшей схеме. Проверить естественно можно только аудио-дорожку из видео файлов.
3. ffmpeg с такими параметрами выводит временные файлы наиболее приближённые к исходным, в случае если они имеют бо́льшую частоту дискретизации или битовую глубину – не добавляет дизеринг, тем самым не искажает результат проверки auCDtect.
4. Если добавить ключ -ac 2, то можно приводить к стерео формату многоканальные аудио файлы, источником которых являются DVD-Audio/DVD-Video/BD-Audio/SACD. Правда, не совсем ясно, как именно ffmpeg поступит с дополнительными каналами - то ли смиксует всё в стерео по "стандартной формуле", то ли выбросит ненужные. Как оказалось, этот ключ можно не использовать вовсе – всё прекрасно работает, auCDtect по всей видимости игнорирует (не видит) дополнительные каналы и тестирует только фронты, чего более чем достаточно для музыкальных лосслесс форматов, а вот SoX внезапно делает нечто совершенно фантастическое (см. спойлер в самом низу)!
5. ffmpeg имеет в том числе фильтры: -af emphasis - применение/снятие преэмфазиса разных типов (см. документацию), -af hdcd - раскодирование 20-бит из 16-битных дисков HDCD, а так же поддерживает входной формат DSD (с некоторыми тонкостями, см. комментарии на Github).
6. Единственный из более-менее известных форматов, который точно не поддерживает ffmpeg - OptimFROG, но он достаточно давно заброшен и практически не встречается в природе. Однако причина этого в том, что формат имеет закрытый код. Все остальные форматы в настройках выше мной лично проверены.
sklk
В 44-16 и проверяй. Лог потом в 24 папку закинуть. Все эрроры, убрать кракозябры, лучше вообще теги удалить. И путь покороче.
Короче, катаю копию на рабстол, конверт в 44-16, проверка. Лог в нужную папку, остальное нах.
Klorus X
sklk, а смысл делать промежуточное действие, если можно сразу из любого формата получить лог прямо в папку с финальными файлами? При проверке из временных файлов будут ещё одни временные файлы создаваться где-то в другом месте... У меня временная папка назначена на отдельный хард для временных файлов, туда в 32 потока гонит на раскодирование файлы. Все сомнительные я сразу по спектрам смотрю прямо в чекере, спектры тоже сыпет туда во временную папку, потом это всё в помойку идёт.
manijak1
Программа "Fakin' The Funk?" вроде всеядная - проверяет и 16 и 32.
Есть и на Винду и на Мак.
Klorus X
manijak1, раньше не слышал. Но похоже программа платная и не базируется на aucdtect, а использует какой-то свой подход. В таблице сравнений у них на сайте написано абсурдное сравнение с кучей других программ, которые все являются нишевыми разработками для экспертов, представляют собой GUI для aucdtect 2004 года и якобы ничего из них не обновляется, но там и обновлять нечего, aucdtect является законченным и совершенным продуктом, звук не может каким-то образом стать ещё каким-то, чтобы программа не справлялась со своей задачей. Тут уже стоит говорить о том, что результаты Fakin' The Funk нужно как-то иначе интерпретировать, для этого нужно техническую и опытную базу составить. Стандартом у нас является aucdtect, вряд ли это когда-либо изменится. Хотя я и любитель новых технологий, но думаю, что тут не стоит менять рабочий инструмент на что-то неизвестное. Мой вариант Task Manager лишь улучшает ту стадию, которая является узким местом исходной программы, мне кажется большего тут и не нужно. Хотя конечно если бы Task Manager исправил некоторые баги было бы совсем идеально. Я уже не говорю о том, что слушательская (труЪ-аудиофильская) культура умирает, а её место занимает деградантская стримминговая культура потребления. За деградированием потребления следует и предложение, сама музыка (и другое искусство) выходит в исполнении "жрите, свиньи, подавитесь!" - качество продакшена, смысловой нагрузки современных продуктов в среднем очень низкое.
Андрамедон
Klorus X, а ни где не попадались исходники Task Manager'а и auCDtect? Я вот что-то не нашел. Сами программы очень устарели, нет, не по алгоритмам, а чисто технически, например беглый просмотр вызовов API функций показывает очень плохую поддержку юникода, отсюда известная проблема с путями содержащими специфические символы к файлам... И в принципе это не сложно было бы исправить при наличие исходников, но походу они тупо утеряны...
Klorus X
Андрамедон, aucdtect закрытый, ему аналогов почти не существует, его разработали авторы TTA. Конкретно с ним никаких проблем нет, так как ему файлы даются с временными названиями. Проблема в Task Manager, и он тоже закрытый - это у него прямо в About написано. Кстати там же есть и мыло автора на Гмыле, можно написать попробовать. Стоит говорить о том, что проще его переписать заново, так как там и программы-то нет по сути, каркас один, он только передаёт всё во внешнюю обработку, а сам только выводит результаты, не сказать, чтобы очень удобно. Было бы намного лучше, если бы было превью спектра при выделении трека, а не приходилось каждый трек тыкать и там ещё вкладку выбирать. В идеале хорошо бы конвертировать сразу 2 временных файла - 44/16 для aucdtect и как есть для sox, тогда можно было бы смотреть полный спектр.
Быстрый ответ
Вы должны войти в систему, прежде чем совершить данное действие.