Console Audio Tools — консольная оболочка утилит для работы с аудиофайлами
Здравствуй, уважаемый хабр!
Многие из нас проводили разного рода манипуляции с аудиофайлами. Часто тут хочется намного большего, чем позволяет стандартный инструмент Windows под названием «Запись звука». Тут на помощь приходят специализированные инструменты, бесплатные и нет, которые найти не проблема. Но что делать, если требуется выполнение очень специфичных операций? Настолько специфичных, что инструменты для их выполнения стоит еще поискать? Что это могут быть за операции? Какие для этого используются инструменты? Об этом пойдет речь в данной статье, она же обзор разработки оболочки автора статьи.
ИнтроМне хотелось бы начать свое повествование с преамбулы, которая хорошо объяснит предпосылки, которые сподвигли меня к разработке данного ПО, в процессе же оказалось, что оно не имеет аналогов. Но об этом позже…Я работаю программистом и несмотря на это слушаю тяжелую музыку (да-да, существуют программисты, слушающие тяжелую музыку), ну и в силу этих обстоятельств уже долгое время имею достаточно дорогое хобби — коллекционирование ее на физ. носителях. И так как некоторые вещи слишком редки для какого-либо воздействия на них, кроме как хранения в коробке, я создаю копии дисков и кассет для прослушивания их на компьютере с жесткого диска, что исключает такой неприятный момент, когда последний оставшийся во всем мире альбом оказался заслушан до дыр и просто стерся лазером привода.
Данный не очень легкий процесс осуществляется программами-рипперами, которые, по сути дела, просто снимают с диска звук в формате WAV, и как правило, для экономии места, сжимают его без потерь (APE, FLAC, ALAC), или с потерями (mp3 и другие менее распространенные). Этот процесс можно сравнить с получением всем известных образов дисков. По сути, процесс снятия образов с аудио-дисков похож на снятие образов с дисков с данными, но в случае с аудио программа-риппер еще осуществляет контроль ошибок и целостности данных и создает карту CUE, что позволяет резать один большой образ на отдельные треки на лету прямо при воспроизведении, поэтому преимущество снятия образов рипперами (что требует некоторых знаний и опыта), над простым образом диска даже не предусматривает какой-либо дискуссии и является стандартом де-факто в разнообразном мире музыке. Полученные файлы называются рипами, откуда идет название этой группы программ. Нет нужды говорить, что для того, чтобы таким образом сохранить свою коллекцию от уничтожения безжалостным временем, необходимы 100% копии материалов. Особенно при тонкой и вдумчивой настройке используемой для этого кодека можно добиться почти 50% сжатия аудио-материала с последующей распаковкой без каких-либо потерь в качестве (по принципу zip-архивов).
Мда… Это, пожалуй, очень важно… И чем это можно осуществить? Данных программ существует не так много, ибо немногих заботит сохранение аудиоматериалов (очевидно, что нечего сохранять). В любом случае, безусловным и бессменным уже на протяжении нескольких лет лидером тут является программа Exact Audio Copy, благодаря своей просто параноидальной тонкости настроек. Действительно, данный продукт исключительно сложен в настройке для новичков, его оптимальные параметры для снятия самых точных рипов занимают несколько страниц, и при первом запуске нужно тщательно сверяться с ними как с предполетным журналом. Но это того стоит, ибо тут вы уверены, что ничто не осталось за бортом, и процесс пойдет так, как Вы решили.Ну отлично, программа настроена, рип сделан. Но для того, чтобы быть не коричневой массой, иногда стоит своими шедеврами делиться с другими (оставим за кадром возгласы правообладателей и будем считать, что большинство редчайших вещей уже и вовсе не имеют правообладателей, и это единственный способ уберечь их от уничтожения. Но более-менее современные и известные вещи копировать и выкладывать в интернет мало того, что незаконно, но еще и демонстрация неуважения к творчеству этих коллективов). Как правило (кроме отправки в личку В Контакте своей девушке) это осуществляется путем выкладывания в каких-нибудь известных файлобменных сетях и торрент-трекерах, где очень заботятся о качестве сделанных рипов.
Дак о чем вообще статья? Да-да, я чувствую, что вам уже не терпится уже начать работать с образами дисков из вашей коллекции, но мы уже постепенно раскрываем основные ее функции. Часто бывает так, что под файлом в формате WAV выкладывают mp3'шки, накачанные с халявного интернета у папы с работы. Особенно это практиковалось несколько лет назад, когда на RuTracker’е еще существовал рейтинг, который удваивался у автора, если его раздача была популярной и хорошо раздавалась. Поэтому под видом хороших и качественных рипов выкладывался такой шлак, который даже моя мамка слушать не будет! Такие случаи иногда бывают и ныне, но из-за более тщательной проверки качества рипов, данное явление в целом сошло на нет.Существует проблема и другого рода. Вполне логично, что на качество снимаемых рипов влияет корректность настройки риппера. При неправильной настройке рип может быть снят неверно, что будет чревато при произведении очень неприятными для слуха щелчками (из-за пропуска или наслоения семплов), повторениями звуковых участков через определенное время (при повреждении разметки диска toc) и другие весьма заметные и неприятные моменты, которые могут сильно мешать при наслаждении самой лютой жестью, которую можно только себе представить, так часто льющейся во время работы из моих мощных колонок! :/И мы пришли к самому главному: как после снятия рипа с диска, быть уверенным, что он снят верно? Или другой пример: как админу (или пользователям) какого-нибудь популярного ресурса понять, что %username% льет шлак в виде совершенно неслушабельных вещей, и незамедлительно настучать о нем администрации, что, мол, дескать, %username%-то балуется старыми грамофонными записями! Не проблема, скажете вы, ведь админ может скачать выложенные пользователем %username% записи и прослушать их вечерком, расслабившись после работы, на которой он тоже особо-то и не напрягался… Но вот незадача, админ слушает исключительно музыку для настоящих мужиков, поэтому наотрез отказывается слушать рипы дисков Филиппа Киркорова! Пичаль. Может тогда попробовать проверить качество этих рипов, не слушая их?
Да! Для этого и существуют утилиты, называемые чекерами. Основное их предназначение ясно из их названия — попытаться максимально, насколько это возможно, определить качество рипа. Одной методики для этого нет, так как проверяются несколько факторов разными методами: это считывание и сравнение контрольных сумм файлов, построение аудио-спектров и анализ частоты получаемого аудио-потока. Разумеется, если рип уже создан неверно, ни одна программа не сможет точно определить проблему (это может сделать только человеческое ухо), но определенно, при наличии соответствующих знаний и опыта, умении читать получаемые спектры частот и анализа выходных данных, можно определить, что проблема имеется. Иногда для этого достаточно даже просто просмотреть лог, который создается программой-риппером для каждого сделанного им рипа. Он может показать, что программа настроена неверно, что уже недвусмысленно намекает, что рип не отличается высокой степенью верности.
Имеет место также явление, называемое «апконверт», при котором обычные mp3-файлы просто конвертируются в WAV и даже могут сжиматься соответствующими кодеками. С виду все выглядит вполне достойно, но вот характеристики выходного файла остаются неизменными. В этом случае чекеры практически со 100% вероятностью помогут нам определить, что файл WAV на самом-то деле не является тем, чем усердно пытается себя выставить.
Отлично! Цель у нас имеется. Теперь разберемся с инструментами для ее достижения. Только вот незадача: часто все они консольные, а так же сильно разрознены. Можно сказать, не существует нормального инструмента для таких целей. Они конечно же есть, но как правило требуют множества подчас ненужных действий, ибо операции такого рода как правило однообразны, и не требуют постоянного изменения условий. Но нам же не терпится слушать музыку, нам ведь некогда возиться с утилитами для продвинутых компьютерщиков, правда? Поэтому буду краток: однажды я решил, что почему-бы не объединить необходимые для этого консольные утилиты в одну удобную и простую оболочку? Сказать честно, я сам сторонник максимального удобства при работе и минимального количества действий. Поэтому помимо тяжелой музыки, я очень люблю консольные утилиты. Посудите сами: кидаем утилитку куда надо, пишем для нее простенький батник, тянем на него нужный файл, открывается консоль и выполняются нужные действия. Красота! Ну максимум можно понажимать y / n или цифры для выбора нужного действия… В общем, результатом этих исследований и манипуляций явилось ПО для работы с аудио-файлами Console Audio Tools.
Да, как-то так получилось, что речь в статье шла только о неизвестному большинству вещах типа проверки качества аудио-рипов, поэтому что бы устранить этот досадный недостаток, стоит рассказать, что она умеет еще. А умеет она немало. Давайте узнаем ее характеристики и используемые ею инструменты:
Конвертирование аудиофайлов (инструмент convert пакета SoX). Хоть я и ярый сторонник оригинального качества без потерь, но иногда приходится прибегать к его конвертации, хоть и при неминуемых потерях. Например, ваша девушка просто без ума от коллектива романтичных молодых мальчиков из коллектива Cannibal Corpse, поющих про лубофф. Но досадно, что она никак не может освоить достаточно специфичные методы работы с образами аудиодисков, предпочитая случать старые добрые mp3. Не проблема, перекиньте ей их в mp3 парой кликов. В прямом смысле парой :/
Проверка качества аудио-файлов. Для рипов операция выполняется в несколько этапов, которые несколько отличаются в зависимости от формата файла, открытого в программе:
1) Осуществляется декодирование сжатого файла в WAV (если необходимо) утилитами flac или ape, в зависимости от формата рипа.2) Выполняется получение и запись в файл хэша sha1 аудиофайла. Данный процесс осуществляется оболочкой самостоятельно.3) Полученный файл режется на треки по карте CUE, если таковая имеется.4) Выполняется проверка каждого трека утилитой aucdtect на соответствие формату WAV. Запись результата для аудио-рипов записывается на экран. Если осуществляется проверка обычного аудиофайла — полученные ею данные выводятся на экран.5) Осуществляется создание спектра аудиофайла инструментом spectrum утилиты SoX в формате png.6) Производится анализ лога снятия рипа на соответствие необходимым параметрам настройки риппера. Данный процесс осуществляется оболочкой самостоятельно. R слову, для этого достаточно просто открыть в программе файл лога.
Создание спектров аудиофайлов. Если Вы любитель анализировать чего либо — эта функция Вам подойдет как нельзя кстати. Кстати, эта возможность — то, с чего все начиналось.
Создание профилей для внешних кодировщиков рипперов. Все вышеперечисленные действия возможно проделывать автоматически прямо при снятии рипа диска.
Нарезка аудиофайлов по CUE (инструмент split пакета shntools). Возможно скажу об этом позднее…
И чтобы как-то разбавить обзор, вашему вниманию предлагаются ее скриншоты. Вы же любите скриншоты? Я тоже люблю скиншоты. Скриншоты полиграфии моих любымых дисков. Но я отвлекся… Поехали!
Главное окно программы. Тот минимализм, который мне так нравится.
Проверяем лог сделанного рипа аудифайла. Сколько ошибок! Наверное, этот рип скачан с такого же некачественного файлобменника! Лучше я закажу диск на Амазоне и сделаю рип с него сам.
Проверяем качество отдельного аудиофайла. Вот безобразие! Под видом WAV нам подсунули мерзкий mp3! Причем программа даже не сомневается в этом (95%)!
Попробуем еще? Отлично! Вот тут нам просто несказанно повезло! Перед нами оказался чистой воды WAV!
И какой же обзор программы может обойтись без ссылки на проект в SourceForge?
Оутро Вот такой получился обзор, он же мои мемуары, и он же — небольшой экскурс в интересный и познавательный музыкальный мир.Слушайте и любите музыку!
Увидимся.