Перейти к содержанию
View in the app

A better way to browse. Learn more.

forum.doctorhead.ru - форум по наушникам.

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Final Audio - Эмоции в каждом прослушивании

sale50feb.webp

komplekti_dec122024.webp

sale50feb.webp

friends_club.webp

aurian_jan23.jpg

Настройки БИОС и влияние этого на качество звука

Featured Replies

Опубликовано

@rustam0906

JACK работает с float32 аналогично тому, как фубар работает с входными плагинами (декодерами), то есть, он принимает от клиентских приложений только float32. Так задано в его спецификации. Поскольку в Red Book и большинстве hi-res оцифровок в исходных файлах целочисленные данные, то плеер, выводящий в JACK, предварительно пересчитывает эти входные данные в float32. Естественно, лучше от этого аудиоданные не становятся. При корректном обращении их можно обратно восстановить из float в integer, не более того. Что и делают перед любым выводом в драйвер и фубар, и JACK. Поскольку драйверы float не принимают. Эти трансформации в float и обратно при наличии DSP обработки передаваемого потока весьма разумны, но они совершенно лишние при ее отсутствии, и применяются в этом случае просто в силу универсальности рассчитанного на DSP интерфейса.

 

Если осталось неясным, умеет ли JACK конвертировать форматы, то ответ - да. Без этого он не сможет работать, так как конвертирует их всегда.

 

Игорь, спасибо огромное!

ТО есть по-вашему получается, что Jack это по сути своей не только микшерский пульт, но и DSP одновременно? Но для DSP ему не хватает тонкоректировок.

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

Я думал, что редактор Audacity все делает сам и Джека кормит уже фиксированным 32 бита, то есть он то точно имеет в своем составе DSP, если его отключить звук становится плоским, потому что в нем по умолчанию выставлены параметры как в студии мастеринг делают. Без этих настроеек звук полный оцтой.

Пробовал просто, все наизнанку вывернул в этом Audacity и в Jack.

Мне показалось, что Audacity считывает любой формат и преобразует его сразу в 32бит флоат (это точно), потому что ему можно сказать не преобразовывать, но при этом звук страдает, а потом он проигранный кусок похоже обратно заталкивает уже в формат который понимает драйвер ALSA, потому как через Jack ему передаются параметры этого драйвера, точнее вы в Jack можете их выставить.

 

Я правильно рассуждаю, ничего не путаю?

 

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

 

P.S. прикрепил картинку с доказательством.

post-31983-0-36588900-1510559350_thumb.jpg

Изменено пользователем rustam0906

  • Ответов 215
  • Просмотры 46,2k
  • Created
  • Последний ответ

Top Posters In This Topic

Most Popular Posts

  • Владимир, я, чтобы доказать ampir-nnn, что JACK не может обойти драйвер ASIO в Windows (как и ALSA в Linux) и его ограничения на минимальный размер буфера, даже написал драйвер ASIO, который логгирова

  • Давайте, все вместе внимательно разберемся в смысле картинок, которые выложил (и далеко не в первый раз уже выкладывает) ampir-nnn выше на этой странице.   Это очень важно для того, чтобы разум восто

  • Данная тема закрыта, здесь остается интересная информация.   Создана новая тема Операционные системы и настройки музыкального ПК для звука.   Новая тема как бы продолжаю почившую ветку "Выбор ОС для а

Posted Images

Опубликовано

ТО есть по-вашему получается, что Jack это по сути своей не только микшерский пульт, но и DSP одновременно?

 

Микширование в цифре - это DSP, также JACK поддерживает ресемплинг (и это DSP).

Я думал, что редактор Audacity все делает сам и Джека кормит уже фиксированным 32 бита...

Мне показалось, что Audacity считывает любой формат и преобразует его сразу в 32бит флоат (это точно), потому что ему можно сказать не преобразовывать, но при этом звук страдает, а потом он проигранный кусок похоже обратно заталкивает уже в формат который понимает драйвер ALSA, потому как через Jack ему передаются параметры этого драйвера, точнее вы в Jack можете их выставить.

 

Я правильно рассуждаю, ничего не путаю?

 

Почти.

Как я выше уже отметил, JACK может принять от редактора или плеера только float. Фиксированные 32 бита ему передать невозможно. То, что нужно драйверу ALSA, всегда делает сам JACK.

Опубликовано

ТО есть по-вашему получается, что Jack это по сути своей не только микшерский пульт, но и DSP одновременно?

 

Микширование в цифре - это DSP, также JACK поддерживает ресемплинг (и это DSP).

Я думал, что редактор Audacity все делает сам и Джека кормит уже фиксированным 32 бита...

Мне показалось, что Audacity считывает любой формат и преобразует его сразу в 32бит флоат (это точно), потому что ему можно сказать не преобразовывать, но при этом звук страдает, а потом он проигранный кусок похоже обратно заталкивает уже в формат который понимает драйвер ALSA, потому как через Jack ему передаются параметры этого драйвера, точнее вы в Jack можете их выставить.

 

Я правильно рассуждаю, ничего не путаю?

 

Почти.

Как я выше уже отметил, JACK может принять от редактора или плеера только float. Фиксированные 32 бита ему передать невозможно. То, что нужно драйверу ALSA, всегда делает сам JACK.

 

Коллеги!,

если я засоряю ветку дайте знать плиз. Я уйду в личку. Если тема не интересная, то конечно надо заканчивать этот оффтоп.

 

Игорь, в своем предыдущем посте прикрепил доказательство,что Audacity все конвертит в 32бит флоат.

 

А вот последнее ваше сообщения повергло меня в шок.

Как я выше уже отметил, JACK может принять от редактора или плеера только float. Фиксированные 32 бита ему передать невозможно. То, что нужно драйверу ALSA, всегда делает сам JACK.

 

Почему Игорь?? Как вы это проверили?

ВЕдь Клементина и Audacios - это плееры, прошу не путать с редактором Audacity, так вот оба плеера не умеют выводить звук в 32 бита флоат.... :shok: :shok: :shok:

Я потому и спросил, какой плеер умеет, я не знаю ни одного плеера, который умеет. При этом любой плеер может кормить потоком в любом формате даже в 16 бит Jack. Вы же сами писали, что Jack - это коммутатор, ему не должно быть разницы, по аналогии это межблочный кабель.

 

Про 32 бита флоат:

Похоже, что плеерам это не нужно.

Редакторам это остро необходимо, потому что в них делается преобразование сигнала, а плеер с готовым сигналом работает.

 

Или я снова что-то напутал.

 

заранее спасибо и сорри за оффтоп,

с уважением, Рустам

Изменено пользователем rustam0906

Опубликовано

@rustam0906

Если плеер поддерживает вывод в JACK, он обязан уметь передавать выходной поток в float32.

Иначе нельзя. На стартовой странице документации JACK сказано:

 

There is no "format negotiation": all audio data within JACK is represented as 32 bit floating point values.

Опубликовано

@rustam0906

Если плеер поддерживает вывод в JACK, он обязан уметь передавать выходной поток в float32.

Иначе нельзя. На стартовой странице документации JACK сказано:

 

There is no "format negotiation": all audio data within JACK is represented as 32 bit floating point values.

 

Игорь, вы крутой спец!!! Честно! Не то, что я любитель-недоучка.

 

то есть получается Jack в чистом виде DSP раз он умеет делать ресемплинг?

Про плееры я в глубоком шоке......

 

 

с уважением, Рустам

 

Игорь,

 

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

 

могу ошибаться, сильно не пинайте.

 

с уважением, Рустам

Опубликовано

Всё относительно :)

 

JACK не в чистом виде DSP, но некоторые функции DSP реализует.

Но не мастеринг. Разгадка не в этом. Я свою версию высказывал, без претензии на окончательную истину -

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

как эффект наполненности звука и послезвучий.

А джиттер косвенно порождается дополнительной программной активностью, сопровождающей воспроизведение,

которая существенно возрастает на минимальных буферах.

Изменено пользователем IgorA

Опубликовано

Стоп Игорь,

не согласен, вы из контекста выдрали кусок предложения.

Вот оно целиком

JACK presents a familiar model: your program provides a "callback" function that will be executed at the right time. Your callback can send and receive data as well as do other signal processing tasks. You are not responsible for managing audio interfaces or threading, and there is no "format negotiation": all audio data within JACK is represented as 32 bit floating point values.

 

Там используется предлог within!!! ТО есть внутри. Английский я тоже хорошо знаю. Если был бы предлог to, то другое дело. Дмитрий BAMF подтверди, ты же лингвист.

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

 

с уважением, Рустам

 

Игорь, вам Большое спасибо!!!

На этом я разобрался с вопросом и умолкаю.

Коллеги простите меня за такой длинный оффтоп.

 

P.S. Свои слова подтверждаю, Вы Игорь реально крутой спец!!! Это комплимент в хорошем смысле, я просто из уважения к Вам и Вашей голове ну и терпение у вас!! Мне бы хотя бы вашего терпения... Завидую белой завистью....

 

PPS. Your callback can send and receive data as well as do other signal processing tasks. А это фраза означает, что все-таки Jack это сигнальный процессор. Вы были правы!!!

Изменено пользователем rustam0906

Опубликовано

@rustam0906, Вы ошибаетесь. Обратите внимание в цитируемом тексте на: no "format negotiation".

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

Я ведь не только первую страницу документации читал, но и смотрел программный интерфейс JACK для приложений (API).

Там нет выбора формата для передачи данных, он задан как тип jack_default_audio_sample_t и является форматом с плавающей точкой.

Поэтому, всё сказанное выше в силе: клиентское приложение может передать в JACK только float данные.

Опубликовано

@rustam0906, Вы ошибаетесь. Обратите внимание в цитируемом тексте на: no "format negotiation".

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

Я ведь не только первую страницу документации читал, но и смотрел программный интерфейс JACK для приложений (API).

Там нет выбора формата для передачи данных, он задан как тип jack_default_audio_sample_t и является форматом с плавающей точкой.

Поэтому, всё сказанное выше в силе: клиентское приложение может передать в JACK только float данные.

 

Игорь, я настырный недоучка )))

там так написано

For convenience, use this typedef if you want to be able to change between float and double. You may want to typedef sample_t to jack_default_audio_sample_t in your application.

 

ТО есть можно и не флоат?

 

Правильно?

 

Как вы можете определить что плееры например тот же MPD умеет выводить в 32 флоат, вроде в его документации такое не возможно. Он только умеет с целыми числами работать, при этом его спокойно Джек понимает. Так и должно быть Игорь, это же микшер.

 

с уваажением, Рустам

Изменено пользователем rustam0906

Опубликовано

@rustam0906,

double - это тоже формат с плавающей точкой, просто 64-битовый вместо 32-х.

Поменять на него можно, если пересобирать JACK из исходников. Тогда будет JACK с 64-битным процессингом. Но и все клиентские приложения тогда должны будут собираться под эту версию и отдавать double.

То, что распространяется в готовых пакетах, собрано под float32.

Изменено пользователем IgorA

Опубликовано

Как вы можете определить что плееры например тот же MPD умеет выводить в 32 флоат, вроде в его документации такое не возможно.

 

Если заинтересовал MPD, то вот фрагмент кода из его исходников, файл JackOutputPlugin.cxx

(там для нас даже предусмотрели красноречивый комментарий)

 

static void set_audioformat(JackOutput *jd, AudioFormat &audio_format)
{
...
/* JACK uses 32 bit float in the range [-1 .. 1] - just like MPD's SampleFormat::FLOAT*/
static_assert(jack_sample_size == sizeof(float), "Expected float32");
audio_format.format = SampleFormat::FLOAT;
}

Опубликовано

Игорь, гениально!!!

Спасибо и низкий поклон, а я этот вопрос уже давно пытался выяснить.

Как говорится туше, уложили на лопатки.

Спасибо!!!!

 

С уважением, Рустам

Опубликовано
  • Автор

Рустам, пожалуйста теперь для всех: какой из всего этого следует вывод?

Изменено пользователем audioshock

Опубликовано

Дима, еще раз привет,

Так я для себя выяснял.

Просто Джек заставляет плееры работать под себя, и эти плееры делают переквантование. Переквантование они делают с помощью так называемого диттеринга, то есть надо добавить не существующие биты в сигнал, просто добавить нули плохо, заметно на слух, добавляют шумоподный сигнал и превращают 16бит целых стандарта ред бук в 32 бита с плавающей запятой. Для чего? Потому что Джек написан не для аудиофилов а профессинальных студий записи. Весь софт работает потом в таком стандарте , то есть 32бита с плавающей запятой. Зачем? При монтаже цифры есть потери, чтобы их нивелировать и полнять качество. После миксинга и сведения, фонограммы попадают в мастеринг, где их компрессуют, лимитят и всякую вкусность придают, чтобы для таких как мы Вау было. Мастернинговая скрипка никогда не звучит как живая, мастеринга более выпяченная и округлая , тут уже на вкус мастеринг инженера.

Так вот потом Джек из этих 32бит с плавающей отдает драйверу Алсы такую битность какую попросит железка, или что прописано руками жестко.

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

Я поосто сделал попытку раз и навсегда разобраться. Попытался изложить все попонятней. Если не понятно, готов более упрощенно объяснить.

 

Игорь,

Где напутал поправьте меня недоучку.

 

Спасибо всем за терпение и сорри за оффтоп,

Зато теперь все кто спорят должны задуматься. Теперь точно знаете как именно работает Джек.

 

Игорю отдельное гранд мерси!!!

Сорри печатал c телефона, могут быть ошибки.

С уважением,

Рустам

Изменено пользователем rustam0906

Опубликовано

Плееры делают float для JACK не так. Никакой dithering при этом не применяется. Они просто делят значение целого семпла на нормирующий в диапазон -1...1 коэффициент. Для 16-битных исходников это число 32768.0, для 24-битных - 8388608.0. А JACK перед передачей драйверу ALSA умножает обратно на этот коэффициент. Восстанавливает целочисленность. Естественно, звуку это последовательное деление и умножение в лучшем случае не вредит, но точно, что не помогает.

Опубликовано

Любой аудио софт не работает с 16 бит (если у вас не DOS), все преобразовывается в 32, 64 или 32 бита с плавающей запятой. Это аксиома.

DSP в звуковых картах работает с 24, 32 бита или выше.

Это для вас новость, и в чем здесь подвох ? :yes:

С плеера на прямую поток в железо не передать, только через звуковую систему ОСи - ALSA, OSS, Windows, ASIO.

Изменено пользователем ampir-nnn

Опубликовано

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

И пересчет сначала в него, а потом обратно - бесполезные с точки зрения выполняемой задачи вычисления.

Опубликовано

Ну, это ваше мнение ...

Опубликовано

Любой аудио софт не работает с 16 бит (если у вас не DOS), все преобразовывается в 32, 64 или 32 бита с плавающей запятой. Это аксиома.

DSP в звуковых картах работает с 24, 32 бита или выше.

Это для вас новость, и в чем здесь подвох ? :yes:

С плеера на прямую поток в железо не передать, только через звуковую систему ОСи - ALSA, OSS, Windows, ASIO.

 

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

Может для вас очевидно, а для меня неуча это было открытие.

 

С уважением, Рустам

Опубликовано

Я тоже не спец в этом всем, но насколько понимаю преобразование битности самая простая и безобидная операция для PCM. Сам делал когда то для "Tremor - PCM61" на двух простейших ИС.

Опубликовано

Я тоже не спец в этом всем, но насколько понимаю преобразование битности самая простая и безобидная операция для PCM. Сам делал когда то для "Tremor - PCM61" на двух простейших ИС.

Уважаемый Ампир,

то есть при этом получаемая ошибка квантования уровней не влияет на качество звучания? То есть например уровень 1 вольт был описан как 16 битное слово и превратилось в 32 битное? Ничего при этом не происходит на слух? Я тоже не особый спец во всем этом.

Темой сильно интересовался, когда экспериментировал с Джеком.

 

с уважением,

Рустам

Опубликовано

Уважаемый Игорь,

 

Во-первых, 32-битный формат — это внутренний формат Nuendo, во-вторых, сохранение результата в целочисленном 24-битном формате может привести к случайной потере качества из-за превышения уровня в 0 дБ. Далеко не все модули снабжены измерителями уровня.

Напротив, 32-битный формат с плавающей точкой защищен от проблемы 0 дБ чисто математически. Поэтому случайное превышение уровня 0 дБ не приведет к необратимой потере качества. После операции Normalize к уровню 0 дБ слышимые искажения исчезнут, потому что ЦАП звуковой карты преобразует в аналог только целочисленный формат. А сигнал в формате 32 Bit Float с уровнем, превышающим 0 дБ, после преобразования в целочисленный формат всегда ограничен сверху.

Вывод: если в проекте предполагается использовать качественное деструктивное редактирование, то звуковые файлы нужно преобразовать в 32-битный формат с плавающей точкой.

http://fdstar.com/download/nuendo_online/glava%202/index67.htm

 

ничего не понял из написанного, но похоже есть какой-то математический смысл в этих 32 битах с плавающей запятой. Буду признателен, если сможете объяснить по-простому, для колхозника, как это работает.

Спасибо заранее!!!

Опубликовано

@rustam0906

Надо представлять, как кодируются числа в вычислительной технике.

Плавающая точка нужна для вычислений над сигналом. Простой пример - надо найти средний уровень двух громких сигналов. Если они в целочисленном коде, то сложение двух чисел может привести к переполнению разрядной сетки и искажению результата. В плавающей точке отдельно хранится порядок результата и его диапазон допустимых значений очень велик. Поэтому переполнения не возникает. Сама максимальная точность по числу значащих цифр при этом остается равной 24 битам. И при делении решается проблема, например, по какой-то формуле для фильтрации значение семпла надо поделить на 10 и что-то потом с ним делать. В целочисленном представлении при делении младшие биты отбросятся, в плавающем - сохранятся, но попадут в дробную часть. Однако всё это актуально только при вычислениях, выполняемых над сигналом. Для просто воспроизведения ничего нового вычислять не надо. float формат при воспроизведении без DSP не требуется. На последнем шаге, при передаче драйверу, от float в любом случае надо избавляться. И когда float навязан как промежуточный формат, то удачный сценарий заключается в том, что 24 бита целочисленного исходника можно упаковать в float32, а потом симметричным преобразованием без потерь восстановить обратно.

Опубликовано

Уважаемый Игорь,

я сегодня получил огромное удовольствие от общения с вами. Спасибо!!!

Так подробно разжевать никому еще не удавалось из тех кого я знаю конечно. Такой ликбез для меня устроили. Спасибо!

 

с глубоким уважением,

Рустам

Опубликовано

@IgorA,

 

Можно ссылку на док, по поводу написанного вами выше.

Мне кажется что 32 бит с плавающей запятой гораздо гораздее чем просто 32 бит. Потому как Jack работает стабильнее всех аудио приложений, включая ваш плеер.

И, очень хотелось бы, глянуть на исходники вашего творения, ну если вы оперируете уже здесь чужими (доступными всем) исходниками ..... давайте тогда по правилам :yes:

 

.

Изменено пользователем ampir-nnn

Гость
Эта тема закрыта для публикации ответов.

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.