Перейти к содержанию

sale50feb.webp

sale50feb.webp

komplekti_dec122024.webp

sale50feb.webp

friends_club.webp

sale50feb.webp

aurian_jan23.jpg

audioshock

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

Рекомендуемые сообщения

@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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

 

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

 

Почти.

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ТО есть по-вашему получается, что 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.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@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 может звучат лучше по иному и даже для некоторых предпочтительнее чем прямой вывод . Ведь мастеринг тоже самое, по сути это какие-то (или скажем набор) предискажений, зато звучит вкуснее с ними, тамже и объем добавляют и ревер и все остальное.

 

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

 

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

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

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

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

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

Изменено пользователем IgorA
  • Нравится 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоп Игорь,

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

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

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 данные.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@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
  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вы можете определить что плееры например тот же 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;
}

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Спасибо!!!!

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Куплю Шипы Soundcare SuperSpike 2 SA (комплект 3 шт.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

 

Игорь,

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

 

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

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

 

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

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

С уважением,

Рустам

Изменено пользователем rustam0906
  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже не спец в этом всем, но насколько понимаю преобразование битности самая простая и безобидная операция для 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, а потом симметричным преобразованием без потерь восстановить обратно.

  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

Рустам

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@IgorA,

 

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

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

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

 

.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...

Важная информация

Пользуясь форумом вы соглашаетесь с нашими Условия использования.