В данном разделе собраны материалы раскрывающие понятие о том, что такое MIDI, как его делать и зачем вообще этот зверь нужен. Также здесь можно найти материалы о музыкальных технологиях, мастеринге и т.д.
Азбука MIDI. Совместимость данных. Контролеры. Системные сообщения. Приемы программирования миди-файлов. Создание кавер-версий. Использование тембров. Сведение миди-файлов и многое другое.
Смешивает стереофонический входной сигнал в монофонический и кодирует его как монофонический. Downmix рассчитывается как сумма левого и правого каналов, пониженная на 6 dB.
Эта опция применяется только в том случае, если на входе стерео PCM (так как LAME не способен определять количество каналов во входном файле). Для кодирования входного файла стерео PCM в монофонический, используйте команду: "lame -m s -a".
Для исходных файлов WAV и AIFF применение опций "-m m" будет всегда производить моно .mp3, как для моно, так и для стерео файлов на входе.
Включает кодирование с заданным средним значением битрейта n kbit, разрешая использование фреймов различных размеров. Допустимый диапазон n = 8-310, можно задавать любое целое значение из этого диапазона.
Эта опция может совмещаться с ключами -b и -B, например: lame --abr 123 -b 64 -B 192 a.wav a.mp3 что ограничит допустимый размер фрейма от 64 до 192 kbit.
--athlower n снижение ATH (absolute threshold of hearing).
Снижение ATH (absolute threshold of hearing - абсолютный порог слышимости) на n dB. Как правило, люди не способны слышать звуки ниже этого порога, но эта опция может быть полезна для музыкальных файлов, записанных на очень низком уровне.
Эта опция заставляет LAME игнорировать на выходе психоакустическую модель и использовать только маску ATH (абсолютный порог слышимости). Может быть полезна при высоком битрейте или для проверки ATH.
Абсолютный порог слышимости - это минимальный порог, ниже которого люди неспособны слышать звуки. В ранних версиях LAME использовался тип ATH 0, по формуле Painter & Spanias. Испытания показали, что эта формула работает неаккуратно в области 13-22 кГц, приводя в некоторых случаях к заметным артефактам. Тип 1 (Прим. перев.: "Type 1" Франка Клемма (Frank Klim) ) был выполнен таким образом, что выше порога чувствительности, добавляется очень высокий битрейт. Формула типа 2 (Прим. перев.: "Type 2" Габриэля Бувиня (Gabriel Bouvigne) ) для оптимального качества в точности моделирует реальные данные, без затрат на битрейт. По умолчанию, в режимах CBR и VBR, в Lame установлен тип 2.
В режиме VBR, Lame соответствующим образом изменяет тип ATH в зависимости от значения -V, от типа 0, соответствующей -V9, до типа 2 при -V0.
Для MPEG1 (частота дискретизации 32, 44.1 и 48 кГц) n = 32,40,48,56,64,80,96,112,128,160,192,22 4,256,320
Для MPEG2 (частота дискретизации 16, 22.05 и 24 кГц) n = 8,16,24,32,40,48,56,64,80,96,112,128,14 4,160
По умолчанию: 128 kbs для MPEG1 и 64 kbs для MPEG2.
При кодировании с переменным битрейтом (VBR), -b соответствует значению минимального битрейта, который будет использован. Однако, чтобы не тратить понапрасну место, во время тишины устанавливаются фреймы минимального размера.
Для MPEG1 (частота дискретизации 32, 44.1 и 48 кГц) n = 32,40,48,56,64,80,96,112,128,160,192,22 4,256,320
Для MPEG2 (частота дискретизации 16, 22.05 и 24 кГц) n = 8,16,24,32,40,48,56,64,80,96,112,128,14 4,160
Определяет максимальный битрейт при использовании VBR/ABR.
Использование -B НЕ РЕКОМЕНДУЕТСЯ. Битовый поток CBR 128kbs, как целиковый битовый резервуар, может фактически иметь фреймы, в которых используется столько же битов, сколько во фрейме с 320kbs. Режим VBR минимизирует используемый битовый объём, и, таким образом, позволяет фреймам с 320kbs получать такую же гибкость, как потоки CBR.
Примечание: Если Вы обладатель аппаратного mp3 плейера на чипсете MAS 3503, вам необходимо установить максимальный битрейт не более чем 224 kpbs.
Использование LAME для декодирования в WAV файл. Входным файлом может быть файл любого типа, поддерживающий кодирование, включая Layer I,II,III (MP3) и OGG. В случае MPEG файлов, LAME использует для декодирования свободную от ошибок версию mpglib.
Если используется опция -t (для отключения заголовка wav), Lame выведет raw pcm в формате native endian. Можно использовать -x для изменения порядка битов (свопинг - to swap bytes ).
Эта опция не применяется, если MP3 декодер был явно исключен из LAME.
Всё это устанавливает флаги в битовом потоке. Если у вас на входе файл PCM, в котором применялся один из вышеупомянутых (устаревших) флагов, Вы можете установить этот флаг в LAME. Тогда mp3 декодер должен удалить акценты (de-emphasis) в процессе воспроизведения, хотя большинство декодеров этот флаг игнорирует.
Лучшее решение заключалось бы в том, чтобы применить de-emphasis отдельной утилитой перед кодированием, а затем кодировать без -e.
Эта опция главным образом используется для аппаратных проигрывателей, которые не поддерживают низкие битрейты mp3.
Без этой опции минимальный битрейт будет игнорироваться при прохождении аналоговой тишины, то есть, когда музыкальный уровень ниже абсолютного порога слышимости (ATH).
Создаёт произвольный формат битового потока. С этой опцией Вы можете использовать -b с любым битрейтом выше 8 kbps.
Тем не менее , даже если потребуется mp3 декодер для поддержки битрейтов вплоть до 320 kbps, множество плейеров неспособны иметь дело с этим.
Испытания показали, что следующие декодеры поддерживают свободный формат: FreeAmp до 440 kbps in_mpg123 до 560 kbps l3dec до 310 kbps LAME до 560 kbps MAD до 640 kbps
Использует некоторые усовершенствования, повышающие качество. Кодирование будет медленнее, но результат будет иметь более высокое качество. Аналог ключа -q2. При использовании VBR эта опция всегда включена.
Сообщает кодировщику, о необходимости использовании всей полосы пропускания и отключении всех фильтров. По умолчанию, кодирующее устройство использует некоторый фильтр верхних частот при низких битрейтах, для поддержки хорошего качества, давая большее количество битов более важным частотам.
Joint - стереорежим, установленный по умолчанию для файлов с VBR, при -V большем, чем 4, или с фиксированным битрейтом 160kbs или меньше. При более высоких битрейтах, или более высоких установках VBR, по умолчанию устанавливается режим stereo.
stereo Каждый канал кодируется отдельно, но битрейт может расходоваться динамически. То есть, если в какой-то момент времени левый канал несет скудную звуковую информацию, часть его битрейта может быть отдана правому каналу, наполненному сложной музыкальной партией "под завязку". (Примечание: stereo – рекомендуемый режим)
joint stereo (комбинированное стерео, квазистерео, т.е. «как бы» стерео) Из стереосигнала выделяется некий средний (Mid) сигнал, кодируемый большей частью битрейта, и разностный между каналами (Side) - для него отводится меньшая часть битрейта. (Примечание: не рекомендуем использовать joint stereo. Возможны своеобразные фазовые искажения, потеря стереоэффекта.)
forced joint stereo (принудительное комбинированное стерео) Данный режим принудительно включает MS joint stereo во всех фреймах. Это работает немного быстрее, чем joint stereo, но должно применяться только в том случае, если Вы уверены, что каждый фрейм имеет очень малое разделение стерео.
dual channels (двойные каналы) В этом режиме 2 канала кодируются абсолютно независимо друг от друга. Каждому каналу выыделяется ровно половина битрейта. Такой способ разработан наподобие кодирования двух языков (например, английский язык на одном канале, французский на другом). Применение этого режима кодирования для обычного стерео приводит к более низкому качеству кодирования.
mono Входной сигнал будет кодироваться как моно. Если этот сигнал был стерео, он будет приведён к моно. Смешанный сигнал рассчитывается как сумма левого и правильного каналов, уменьшенная на 6 dB.
Принимает в качестве входного файла - файл MPEG Layer I. Если расширение имени файла ".mp1" или ".mpg", LAME сделает предположение, что это файл MPEG Layer I. Этот ключ необходимо использовать для файлов stdin или Layer I, которые не имеют расширения имени .mp1, или .mpg.
Принимает в качестве входного файла - файл MPEG Layer II (то есть MP2). Если расширение имени файла".mp2", LAME сделает предположение, что это файл MPEG Layer II. Этот ключ необходимо использовать для файлов stdin или Layer II, которые не имеют расширения имени .mp2.
Принимает в качестве входного файла - файл MP3. Применяется для перекодирования одного mp3 в другой. Например, это может быть использовано для передачи через сервер IceCast. Если расширение имени файла ".mp3", LAME сделает предположение, что это файл MP3. Этот ключ необходимо использовать для файлов stdin или MP3, которые не имеют расширения имени .mp3.
Отключает любое использование маски ATH (absolute threshold of hearing - абсолютный порог слышимости). Как правило, люди неспособны слышать любой звук ниже этого порога.
Отключение указанной встроенной оптимизации. Качество не повысится, только понизится скорость. Если у Вас есть проблемы при работе LAME на процессорах Cyrix/Via, отключение оптимизации mmx может решить эту проблему.
По умолчанию, LAME отображает гистограмму битрейта при создании VBR mp3 файлов. Это отключит такое свойство. В Вашем релизе отображение гистограммы может быть недоступно.
При кодировании для всех фреймов используются только длинные блоки. Это может увеличить качество при кодировании с очень низким битрейтом, но может привести к серьёзным артефактам преэха.
Включает защиту от ошибок CRC. Добавление контроля при помощи циклического избыточного кода (Прим. перев.: cyclic redundancy check - CRC, иначе - проверка контрольной суммы) в каждом фрейме, позволяющий обнаружить ошибки передачи, которые могут возникать в потоке mp3. Однако, это требует 16 битов в структуре фрейма, которые иначе были бы использованы для кодирования, и слегка уменьшает качество звучания.
--preset presetName использование встроенного пресета.
Используется один из встроенных пресетов (standard, fast standard, extreme, fast extreme, insane, или режим abr/cbr). "--preset help" предоставит информацию о возможностях применения каждого пресета.
--priority 0...4 управление приоритетом процесса под OS/2.
C этой опцией LAME будет работать с различным приоритетом под IBM OS/2. Это существенно улучшит реакцию системы, так как OS/2 будет иметь больше свободного времени для обновления экрана и опроса клавиатуры/мыши. Действие этой опции очень заметно в особенности на медленных машинах. Влияние работы LAME должно быть минимальным.
0 (Низкий приоритет) Приоритет 0 допускает класс "IDLE" с delta 0. LAME будет иметь самый низкий приоритет, и кодирование может очень часто приостанавливаться из-за действий пользователя.
1 (Средний приоритет) Приоритет 1 допускает класс "IDLE" с delta +31. LAME не будет создавать помех всем вашим действиям. Рекомендуется, если у Вас относительно медленная машина.
2 (Обычный приоритет) Приоритет 2 допускает класс "REGULAR" с delta -31. LAME не будет мешать Вашей работе. Он будет работать так же, как обычный процесс, но будет оставлять небольшое время простоя для системы. Рекомендуется для большинства пользователей.
3 (Высокий приоритет) Приоритет 3 допускает класс "REGULAR" с delta 0. LAME будет работать с немного большим приоритетом, чем обычный процесс. Хорошо, если Вы работаете с только с LAME или с небольшим пользовательским взаимодействием.
4 (Максимальный приоритет) Приоритет 3 допускает класс "REGULAR" с delta +31. LAME будет работать с очень высоким приоритетом и может мешать реакции машины. Рекомендуется, если Вы намереваетесь запустить только LAME, или если у Вас быстрый процессор.
Приоритеты 1 или 2 рекомендуются для большинства пользователей.
Конечно, битрейт главным образом влияет на качество. Чем выше битрейт, тем выше качество. Но для конкретного битрейта у нас есть набор алгоритмов, для определения лучших масштабных коэффициентов и кодирование Хаффмана (Прим. перев.: huffman encoding - алгоритм Хаффмана используется для снижения объема закодированных данных при кодировании относительно однородных сигналов. Таким путем объем закодированных данных снижается примерно на 20%. Метод Хаффмана не приводит к потере качества звучания).
-q 0: используется самая медленная, но наилучшая версия из всех алгоритмов. (Примечание: рекомендуем -q 0)
-q 2: рекомендуется разработчиками. Тоже, что и -h.
-q 5: значение по умолчанию. Хорошая скорость, разумное качество.
-q7: тоже, что и -f. Очень большая скорость, хорошее качество. ( Психоакустика используется для преэха и M/S (перев.: не понял - pre-echo & M/S), но не выполняется обработка шума).
-q9: отключены почти все алгоритмы, включая пси-модели. Низкое качество.
Делается предположение, что на входе файл raw pcm. Частота дискретизации и режим mono/stereo/jstereo должны быть определены в командной строке. Без -r, LAME выполнит выполнит поиск ( fseec() ) во входном файле на наличие заголовков WAV и AIFF. Может быть недоступна в Вашей версии.
--replaygain-accurate вычисления ReplayGain более точные и производится поиск информации о пиках (peak sample).
Возможность декодирования на лету. Вычисляется "Radio" ReplayGain в декодируемом потоке данных. Ищет информацию о пиках в потоке декодируемых данных и сохраняет её в файл.
Анализ ReplayGain не оказывает непосредственного влияния на содержимое сжатого потока данных, такие данные хранятся в заголовке (header) звукового файла. Информацию о назначении ReplayGain и используемых алгоритмах можно найти здесь: http://www.replaygain.org/.
По умолчанию, LAME выполняет анализ во входных данных (после того, как пользователь задаст уровень громкости - volume scaling ). Такое поведение может привести к несколько неточным результатам, так как данные на выходе в результате больших потерь кодирования/декодирования отличаются от исходных данных на входе. Когда задаётся опция --replaygain-accurate, поток mp3 декодируется на лету, и анализ производится на декодированном потоке данных. Хотя теоретически этот метод даёт более точные результаты, он имеет несколько недостатков:
Испытания показали, что различие между значениями ReplayGain, вычисленными во входных данных и в декодируемых данных обычно не больше чем на 0.5dB, хотя минимальная разница громкости, которую человеческое ухо может чувствовать - около 1.0dB Декодирование на лету значительно замедляет процесс кодирования. Очевидное преимущество состоит в том что: При --replaygain-accurate пик (peak sample) определяется и сохраняется в файле. Знание пика может помочь декодерам (плейерам) предотвратить отрицательный эффект, так называемый "clipping", который вносит звуковые искажения. Вычисляется только значение "RadioGain" Replaygain. Оно сохраняется в тэге LAME. Анализ выполняется по базовой громкости 89dB. Примечание: базовая громкость может измениться до 83dB при переходе от версии 3.95 к 3.95.1.
Эта опция не действует, если декодер mp3 явным образом был исключен из билда LAME. (Примечание: если LAME был скомпилирован без декодера mp3, анализ ReplayGain выполняется на входных данных после задания пользователем уровня громкости).
См. также: --replaygain-fast, --noreplaygain, --clipdetect
replaygain-fast работа ReplayGain быстрая, но немного неточная (по умолчанию).
"Radio" ReplayGain производит обработку потока входных данных после заданния пользователем уровня громкости и/или ресемплинга (resampling).
Анализ ReplayGain не оказывает непосредственного влияния на содержимое сжатого потока данных, такие данные хранятся в заголовке (header) звукового файла. Информацию о назначении ReplayGain и используемых алгоритмах можно найти здесь: http://www.replaygain.org/.
Вычисляется только значение "RadioGain" Replaygain. Оно сохраняется в тэге LAME. Анализ выполняется по базовой громкости 89dB. Примечание: базовая громкость может измениться до 83dB при переходе от версии 3.95 к 3.95.1.
--resample 8/11.025/12/16/22.05/24/32/44.1/48 частота дискретизации в кГц.
Выбор выходной частоты дискретизации (sampling frequency) (только для декодирования). Если не задаётся, то LAME будет автоматически производить ресемплинг входного сигнала при использовании больших степеней сжатия.
--scale n регулирование входа на n. --scale-l n регулирование входного канала 0 (левый) на n. --scale-r n регулирование входного канала 1 (правый) на n.
Регулирование на n. Производится умножение данных PCM (после приведения их к плавающей запятой) на n.
n > 1: увеличение громкости n = 1: не изменяется n < 1: уменьшение громкости Используйте с осторожностью, поскольку большинство mp3 декодеров исключает данные со значением, больше чем 32768.
Эта опция предписывает LAME ограничивать полный размер фрейма до 7680 бит. В результате напрасно затратится много битов на кодирование с высоким битрейтом, но будет гарантирована полная совместимость с ISO. Такая совместимость может быть важна для аппаратных плейеров.
Отключение записи информационного тэга при кодировании. Этот тэг вставляется в нулевой фрейм mp3 файла. Он заключает в себе некоторую информацию о методах кодирования файла, и, в случае VBR, позволяет поддерживающим VBR плейерам корректно искать и вычислять время проигрывания VBR файлов.
Когда задана опция '--decode' (декодирование в WAV), этот флаг будет отключать запись заголовка WAV. На выходе будет формат raw pcm, native endian. Применяйте -x для обмена байтами (swap bytes).
Подключает самый новый алгоритм VBR. Во время разработки версии 3.90, в этом алгоритме были произведены значительные усовершенствования, и теперь он сравнялся с исходным --vbr-old.
Преимуществом является очень большая скорость (вдвое быстрее --vbr-old).
Подключает самый старый, наиболее проверенный VBR алгоритм. Он производит файлы очень хорошего качества, хотя и не очень быстро. Как говорят, до v3.89,был VBR алгоритмом "workhorse" - "рабочая лошадка".
Байтовый свопинг во входном файле, или выходном файле при использовании --decode. Для рассортировки типичных проблем little endian/big endian. Если кодированный звук статичен, в первую очередь попробуйте применить эту опцию.
Когда LAME ищет "хорошее" квантование, он сравнивает текущее с наилучшим, найденным до сих пор. Сравнение определяет, что лучше, то, что было раньше, или фактическое. Параметр -X задаёт различные подходы к этому определению. -X0 является методом по умолчанию.
-X0 Критерии - (в порядке значимости):
меньшие искажения суммарный шум меньше порогового полное значение шума более низкое.
-X1 Текущий лучше, если максимальный шум во всём диапазоне меньше, чем при наилучшем режиме квантования.
-X2 Текущий лучше, если полное значение шума ниже, чем при наилучшем режиме квантования.
-X3 Текущий лучше, если полное значение шума ниже, чем при наилучшем режиме квантования, и максимальный шум во всём диапазоне меньше, чем при лучшем режиме квантования на +2dB.
-X4 Пока не задокументировано.
-X5 Критерии - (в порядке значимости):
суммарный шум меньше порогового полное значение шума более низкое.
-X6 Критерии - (в порядке значимости):
суммарный шум меньше порогового максимальный шум во всём диапазоне ниже полное значение шума более низкое.
-X7 Критерии:
меньшие искажения или суммарный шум меньше порогового.