LINUX.ORG.RU

Чем лучше конвертировать музыку в Linux?

 , , , ,


0

1

Чем в Linux принято конвертировать аудио-файлы? Существует ли один лучший/стандартный/общепринятый способ (консольный), который конвертнет НЕ ХУЖЕ профессиональных программ под виндой?

Форматы обычные: Flac, mp3, ogg… Есть ли для этого специальный инструмент?

Нагуглил lame, oggenc, ffmpeg, mppenc.

Что из этих 4х лучше подходит для конвертации аудио? Есть ли какие-то критерии качества? Можете ли в кратце описать каждый из проектов или поделиться своим опытом?

А главное, как/чем проверять качество рипа? Ну там что нигде ни секунды не запороло и т.д. Не переслушивать же все.

Ответ на: комментарий от peregrine

Так вот, можешь показать такой iso файл, полученный с Audio CD?

с Audio CD с Audio CD с Audio CD с Audio CD с Audio CD

Кое-кто отвечает не читая, вот так новости, да :)

curufinwe ★★★★★ ()
Ответ на: комментарий от curufinwe

Зачем тебе ленты 60-х в DSD загонять, они деградировали уже, как минимум надо ремастеринг делать

А может не надо ремастеринг? Вот некоторым людям хочется получить сырой исходник, даже без преобразования в PCM. Не пойму, отчего у тебя так бомбит?

Абсолютно то же самое происходит при аналоговой записи

Происходит, но не так жёстко. С технической точки зрения, если ты хочешь обеспечить аутентичность при оцифровке, то нужно чтобы параметры были гарантированно не ниже чем у исходника.

У DSD полоса воспроизводимых частот до 100 кГц по стандарту.

Это не отменяет для DSD возможности извлечь какую-то информацию выше этой частоты. И в этом DSD тоже ближе к «аналогу», т.к. это означает только спад параметров выше этой частоты, а не то, что информации вообще нет.

У обычного PCM на DVD-Audio полоса до 96 кГц. У DXD вдвое больше.

Ты уже забыл как уверял что CD качества хватит всем?

PCM и DSD эквивалентны по параметрам полоса частот/шум квантования в этой полосе

Разумеется. Но при этом у DSD всё-таки есть преимущества, как у формата для хранения, распространения и воспроизведения аудио. Меньшая чувствительность к повреждениям, простота преобразования в аналог. Ведь DSD даже не нужен ЦАП как таковой, тупо прогоняешь через ФНЧ и всё. Меньше манипуляций - меньше искажений. Это же замечательно.

Оцифровка в PCM тут ничем не отличается, тоже все максимально сырое и аутентичное, если вообще так можно сказать про цифровую копию. Я бы не стал так говорить. Аутентичное - это когда ты ленту слушаешь

Для получения PCM нужен дополнительный этап преобразования. DSD на этом пути находится ближе к ленте. Собственно DSD даже не вполне коректно называть цифровым форматом. Это дискретный формат, но не цифровой, т.к. никаких цифр там нет, а есть только импульсная модуляция.

В цифровую эпоху любая пукалка имеет запредельные параметры и разницы больше нет, точнее она в аналоговой части, а не в цифровой.

Ну ты как-то определись, то у тебя DXD только достаточна по параметрам, то любая пукалка и «разницы нет».

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от curufinwe

PCM тут ничем не отличается

Я ещё одну особенность вспомнил, чтобы тебе побомбить. У PCM есть проблемы с сигналами низкими по уровню (около нуля), т.к. эффективное разрешение (битность) при этом уменьшается. А у DSD нет.

no-such-file ★★★★★ ()
Ответ на: комментарий от peregrine

последний диск ещё до 2010 года, а с тех пор не испытываю нужды

а если захочется чегото редкого или конкретного старого издания ?

x905 ★★★★★ ()
Ответ на: комментарий от no-such-file

Вот некоторым людям хочется получить сырой исходник, даже без преобразования в PCM. Не пойму, отчего у тебя так бомбит?

Ну, может быть. Спишем это на лично мои предпочтения, у других людей они могут быть другими.

С технической точки зрения, если ты хочешь обеспечить аутентичность при оцифровке, то нужно чтобы параметры были гарантированно не ниже чем у исходника.

Так это вопрос выбора параметров формата. Тут нет разницы, PCM или DSD. Надо правильно выбрать параметры при оцифровке.

Это не отменяет для DSD возможности извлечь какую-то информацию выше этой частоты.

Художественный шум квантования? Кому он нужен.

И в этом DSD тоже ближе к «аналогу», т.к. это означает только спад параметров выше этой частоты, а не то, что информации вообще нет.

Поэтому у меня и бомбит, что можно делать такие заявления, которые формально правильные, но отношения к реальности, к практике не имеют никакого.

Ты уже забыл как уверял что CD качества хватит всем?

Да, я так считаю. Но если мы начали сравнивать hi-res форматы то вот было сравнение.

Меньшая чувствительность к повреждениям

Да, но это не важно, потому что надо бы вообще исключать повреждение, а не уменьшать его.

простота преобразования в аналог

Это тем более неважно, преобразование из PCM в дельта-сигму делает копеечная микросхема.

Меньше манипуляций - меньше искажений.

Эти манипуляции не вносят искажений, они только могут отрезать художественный шум квантования. На полезный сигнал они не влияют, на практике.

Это дискретный формат, но не цифровой, т.к. никаких цифр там нет, а есть только импульсная модуляция.

Класс, то есть 1 и 0 это не цифры и к компьютере у нас никаких цифр нет, только модуляция.

DXD только достаточна по параметрам

Я такого ни разу не говорил. И как достаточна. Для полного раскрытия возможностей SACD придется его создавать из DXD. При прямой записи возможности полностью раскрыты не будут - получится шум квантования больше, чем минимально достижимый.

curufinwe ★★★★★ ()
Ответ на: комментарий от no-such-file

У PCM есть проблемы с сигналами низкими по уровню (около нуля), т.к. эффективное разрешение (битность) при этом уменьшается.

Это полная ерунда, все с точностью наоборот (всмысле PCM в этом плане лучше чем DSD, или точно не хуже). Почитай про дизеринг.

curufinwe ★★★★★ ()
Ответ на: комментарий от curufinwe

надо бы вообще исключать повреждение, а не уменьшать его

Ну, к сожалению деградация цифровых носителей это тоже проблема. Те же CD очень даже запросто разлагаются на плесень и липовый мёд через несколько десятков лет хранения. При хранении всегда лучше иметь устойчивость к деградации, чем не иметь её.

неважно, преобразование из PCM в дельта-сигму делает копеечная микросхема

Так вот этом и проблема. Вариантов такого преобразования не один и в копееченой микросхеме может быть не самый лучший (не говоря уже о том, что лучшесть относительна). Можно долго спорить, что правильнее, а можно просто дать пользователю DSD и пусть он сам решает, что и как с ним дальше делать.

Эти манипуляции не вносят искажений

Эта манипуляция производится фильтром. Любой фильтр вносит искажения и шумы.

Класс, то есть 1 и 0 это не цифры и к компьютере у нас никаких цифр нет, только модуляция

Модуляция заключается не в битах, а в изменении их плотности. В компьютере числа кодируются другим способом.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Можно долго спорить, что правильнее, а можно просто дать пользователю DSD и пусть он сам решает, что и как с ним дальше делать.

Ладно, убедил. Если мне не надо - не значит что никому не надо.

Эта манипуляция производится фильтром. Любой фильтр вносит искажения и шумы.

В теории - да, на практике эти искажения ничтожны. А перфекционизм в этом вопросе это прямой путь в ТЛЗ.

Модуляция заключается не в битах, а в изменении их плотности. В компьютере числа кодируются другим способом.

Во-первых в компьютере можно кодировать как угодно. DSD же можно загрузить на компьютер? Ну вот.

И главный вопрос - изменение плотности происходит непрерывно, или дискретно? Если ты говоришь что формат не цифровой, должно происходить непрерывно. То есть должно быть квантование по времени, а квантования по уровню быть не должно. А это не так, изменение плотности происходит дискретно и квантование по уровню, следовательно, есть. А значит это, конечно же, цифровой формат. Просто метод кодирования числа другой.

curufinwe ★★★★★ ()
Ответ на: комментарий от curufinwe

изменение плотности происходит непрерывно, или дискретно

Непрерывно в пределах дискретизации, ЛОЛ, Ну т.е. формат синхронный, импульсы идут в определённых позициях, но распределение плотности произвольное, т.е. нет такого, что вот эта пачка у нас один отсчёт, следующая второй отсчёт и т.д. как в PCM. Это больше похоже на ШИМ, только там импульсы имеют произвольную длину, а в DSD тоже самое набивается отдельными импульсами фиксированной длины.

no-such-file ★★★★★ ()
Ответ на: комментарий от x905

Я — законопослушный гражданин, так что признания от меня выпросить не получится, а двоякие намёки это просто случайность, не более того.

peregrine ★★★★★ ()

Шутки про конвертирование музыки в Linux уже были?

t184256 ★★★★★ ()
Ответ на: комментарий от curufinwe

на практике эти искажения ничтожны. А перфекционизм в этом вопросе это прямой путь в ТЛЗ

Тут я в общем согласен. Поэтому в принципе хайрез pcm меня вполне устраивает. Но это всё равно вкусовщина и поле для экспериментов.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

импульсы идут в определённых позициях, но распределение плотности произвольное

Это взаимоисключающее утверждение.

При конечной длине сигнала и фиксированных позициях импульсов у тебя число импульсов всегда будет конечное. А это значит что распределение плотности всегда дискретное.

нет такого, что вот эта пачка у нас один отсчёт, следующая второй отсчёт

Ну как нет. Мы оцифровываем сигнал конечной частоты. На период сигнала всегда придется конечное число импульсов, которые имеют фиксированные позиции. Поэтому распределение плотности всегда будет дискретное.

Это больше похоже на ШИМ

ШИМ - не цифровой формат, именно потому что

там импульсы имеют произвольную длину

а в DSD тоже самое

Не то же самое. В DSD плотность распределения изменяется дискретно, поэтому это цифровой формат, а в ШИМ скважность меняется непрерывно.

curufinwe ★★★★★ ()
Последнее исправление: curufinwe (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Или по другому.

В DSD если идет подряд три единицы, это можно рассматривать как импульс тройной длины. То есть ширина импульсов может быть разной, но она меняется дискретно, а не непрерывно как у ШИМ. А это значит что есть квантование по уровню и формат цифровой.

curufinwe ★★★★★ ()
Ответ на: комментарий от curufinwe

плотность распределения изменяется дискретно, поэтому это цифровой формат

ЛОЛ. Т.е. сигнал дискретный и поэтому он цифровой?

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Это не ЛОЛ, а незнание элементарной теории.

Вот определение цифрового сигнала.

Цифровой сигнал — сигнал данных, у которого каждый из представляющих параметров описывается функцией дискретного времени и конечным множеством возможных значений.

Если звуковой сигнал дискретный по времени и дискретный по уровню - он называется цифровым, по определению.

То есть - описывается функцией дискретного времени - у DSD отсчеты в определенных позициях.

И конечное множество возможных значений - плотность распределения конечного DSD сигнала может принимать конечное число возможных значений.

Перед тем как лоллировать с кого-либо, неплохо было бы почитать букварь.

curufinwe ★★★★★ ()
Ответ на: комментарий от curufinwe

Вот определение цифрового сигнала

Это называется «смотрю в книгу - вижу фигу». Ты бы хоть читать сначала научился.

описывается функцией дискретного времени

Это есть.

конечным множеством возможных значений

А этого нет. Потому что кодирование происходит не значением импульса, а всей последовательностью целиком.

no-such-file ★★★★★ ()
Ответ на: комментарий от curufinwe

плотность распределения конечного DSD сигнала может принимать конечное число возможных значений

Не может, потому что нет никаких квантов плотности. Сигнал не делится на какие-то отсчёты плотности.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Вот это ересь.

Вот тебе задача, попробуем на пальцах.

У нас есть DSD сигнал, 2000 отсчетов, каждый «единичный» импульс имеет амплитуду 1 вольт, а «нулевой импульс» соответственно 0 вольт. Приведи любую последовательность импульсов, которая кодирует постоянное напряжение ровно

0.2384562845627345278452745827346524826345826346283465183641582327834562346562348253746523456293485726934857263948523452693457293485726384562746512341034852841230423476504189234526394576249857103495264562340571093456234651934572937845623417034952634956103457298347562934875169348256394857163049523479125304258963458927340523475619384571639451357234795203456534

вольт.

То есть входной аналоговый сигнал у нас - постоянное напряжение именно такой величины. Надо закодировать его в однобитный формат.

И параллельная задача - 2000 ШИМ импульсов, надо сделать то же самое. Рассчитай скважность, которую должена иметь ШИМ.

Ты же утверждаешь, что никаких квантов плотности нет. Ну давай, тогда ты без труда рассчитаешь такую последовательность импульсов, ведь закодировать можно абсолютно любое напряжение, по твоей логике.

curufinwe ★★★★★ ()

Насколько я знаю, у всяких «профессиональных программ» под капотом тот же самый LAME, поэтому разницы в качестве нет никакой. Я думаю, самым линуксоидским способом будет дергать его непосредственно.

file=$1
oldname="${file}"
newname="${file%.*}.mp3"
echo "Converting $oldname to $newname"
lame -q 0 -b 320 $oldname $newname
Скрипт, который сжимает один wav-файл. Можно скормить ему несколько файлов так
find . -type f -name '*wav' | parallel -j3
Есть еще какой-то кодек получше, не помню его название, но я на компьютерных колонках даже разницы между lossless и сжатым LAME'ом MP3 не слышу.

damix9 ()
Ответ на: комментарий от curufinwe

Приведи любую последовательность импульсов, которая кодирует постоянное напряжение ровно

ЛОЛ, для любого постоянного напряжения будет просто непрерывный поток импульсов 111111 и т.д. до полной длительности сигнала. Какой именно величины не важно, т.к. сигнал всегда нормализуется по уровню перед АЦП.

2000 ШИМ импульсов, надо сделать то же самое

Ну и будут они просто разбиты на пачки 1111. По времени да, будет квантование. А где квантование по значению? Где величина выраженная числом, которое зависит от кванта по времени? Нет её.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

сигнал всегда нормализуется по уровню перед АЦП

Ты серьезно? Это просто упрощение, чтобы ты хотя бы это осознал.

Ты что, не понимаешь, что я тебя сейчас попрошу два периода синуса с такой же амплитудой, а потом другой такого же порядка точности закодировать (в рамках одного сигнала!), и ты уже свой нормализацией ничего не подгонишь?

Подумай еще раз над задачей.

Где величина выраженная числом, которое зависит от кванта по времени?

Ты точно не серьезно. Ты же вроде программист, а это школьная математика.

У тебя 2000 бит. Из них сколько-то единиц, остальные нули. Число единиц - это и есть твое число. Которое зависит от величины, КРАТНОЙ кванту времени (квант времени * 2000 в данном случае).

Надо объяснять, что величина кратная кванту времени - квантована по времени?

curufinwe ★★★★★ ()
Последнее исправление: curufinwe (всего исправлений: 2)
Ответ на: комментарий от curufinwe

Число единиц - это и есть твое число

ЛОЛ, нет.

попрошу два периода синуса с такой же амплитудой

Ну вот ты и возьми и покажи мне, какая квантованная величина напряжения должна быть в некий момент времени. Что ты там будешь считать, какие единицы? Да что уж там, вот тебе последовательность 001000101010010011101110101 - какое напряжение в момент t-4?

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

ЛОЛ, нет.

Лол, да. Ты школу то закончил?

Да что уж там, вот тебе последовательность 001000101010010011101110101 - какое напряжение в момент t-4?

Элементарно, Ватсон.

Рассчитаем сигнал на выходе аналогового фильтра, раз у на однобитный ЦАП, иначе задача вообще была бы тривиальной. В качестве фильтра - интегратор, как в дельта-сигме. Тогда у нас единица увеличивает выходное напряжение на delta_x, а ноль - уменьшает выходное напряжение на delta_x. Здесь delta_x это некая величина в вольтах, зависит от параметра интегратора.

Стартуем мы с нуля, условимся так, все равно постоянная составляющая отрезается в аудио.

Итак, t-4 это четвертый бит с конца, как я понял.

Идем по битам.

0 -delta_x
0 -2*delta_x
1 -delta_x
0 -2*delta_x
0 -3*delta_x
0 -4*delta_x
1 -3*delta_x
0 -4*delta_x
1 -3*delta_x
0 -4*delta_x
1 -3*delta_x
0 -4*delta_x
0 -5*delta_x
1 -4*delta_x
0 -5*delta_x
0 -6*delta_x
1 -5*delta_x
1 -4*delta_x
1 -3*delta_x
0 -4*delta_x
1 -3*delta_x
1 -2*delta_x
1 -delta_x

Итого ответ - напряжение на выходе фильтра ЦАП в момент времени t-4 будет -delta_x.

Как ты видишь из таблицы, на каждом шаге величина напряжения КРАТНА delta_x. То есть уровень сигнала на каждом отсчете квантуется, квант - delta_x. Это относится к напряжению в конкретный момент времени.

То что я говорил раньше про число единиц - относится к СРЕДНЕМУ напряжению за ИНТЕРВАЛ времени из N импульсов. Значение среднего напряжения на интервале так же квантуется, потому что число единиц на интервале - целое.

curufinwe ★★★★★ ()
Последнее исправление: curufinwe (всего исправлений: 2)
Ограничение на отправку комментариев: только для зарегистрированных пользователей