Цифровая обработка звуковых сигналов

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Да кажись можно, есть два независимых проекта по коммутации при помощи ВАК (виртуальный аудио кабель). В одном проекте точно указана возможность через ASIO...
Как я понимаю сама суть асио это прямой эксклюзивный доступ одного софта к драйверу звуковой карты, и ни какой другой софт не может перехватывать соединение. Если между софтом и звуковой картой есть другой софт прокладка, то это уже не асио режим. Да и потом, асио нужно для реалтайма обработки звука т.е. получить минимальную задержку между звуком на выходе/ входе звуковой карты и софтом, а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
 

Freepainter

3 ранг
Новый
Регистрация
11 Авг 2024
Сообщения
10
Реакции
3
Репутация
2
Страна
Ukraine
Город
Kyiv
Как я понимаю сама суть асио это прямой эксклюзивный доступ одного софта к драйверу звуковой карты, и ни какой другой софт не может перехватывать соединение. Если между софтом и звуковой картой есть другой софт прокладка, то это уже не асио режим. Да и потом, асио нужно для реалтайма обработки звука т.е. получить минимальную задержку между звуком на выходе/ входе звуковой карты и софтом, а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
Так у асио тоже есть задержка. Я, так понимаю: если слушать музыку, то главное как она звучит, а какая там задержка не имеет значения. А вот, например, подключить муз. инструмент и что то играть в реальном времени, то задержка должна быть минимальна.
На FL Studio у меня задержка 4мкс и нет проблем в игре на эл.гитаре и записи...
Кроссовер высококачественный проще сделать в "железе" , я так и поступил и идеи с софтом давно оставил...
Вот еще одна ссыль на VAC с асио : http://jackaudio.org
 

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
Да кажись можно, есть два независимых проекта по коммутации при помощи ВАК
Спасибо, с Virtual Audio Cable я уже имел знакомство, устанавливал настраивал, но не смог разобраться.
Доп каналы создал, как на каждый отдельный канал перед тем как он уходит на усилитель навесить VST плагин Fabfilter Pro-Q 3, что бы уже в нем настроить фильтр, разобраться не смог.
инструкции на просторах инета все о другом.

а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
Задержки не так страшны для музыки, точнее наоборот полезны когда ими можно управлять.
а вот обойти системный микшер виндовса при помощи асио и не лишиться всех настроек АРО было бы здорово
 

Freepainter

3 ранг
Новый
Регистрация
11 Авг 2024
Сообщения
10
Реакции
3
Репутация
2
Страна
Ukraine
Город
Kyiv
Вот еще нашел у себя в архиве док. по настройке vac по первой ссылке, там в конце есть описание настройки кроссовера...
Фраза в конце: "...данные графики и идеальный импульс через виртуальный кабель идут бит в битик, по крайней мере REW при замере через него рисует идеальные" (с)!
 

Вложения

  • Help_settings VAC.pdf
    1.1 MB · Просмотры: 7

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, спасибо за проверку.
А у меня тут родилась новая идея, пока только в голове (во время обеда). Попробую воплотить ее в схему вечерком, если время будет.
Итак это целая эпопея. Попробую покороче, но вряд ли получится.
Сначала я уяснил, что моя схема гистерезиса работает совершенно не по тому алгоритму, который я приводил выше. У этой схемы алгоритм работы гораздо проще. Начал изобретать новую схему, работающую именно по задуманному алгоритму. Изобретал - изобретал, схема разрослась до неприличия, но не работала. И тут меня осенило! Спрашивается, а нахуа? Ведь чем плоха эта схема? А плоха она тем, что переключения идут не на каждую единицу, а перескакивают через несколько единиц. Например, если гистерезис стоит +4/-4, то наше число (макс. 1023) будет увеличиваться/уменьшаться четверками. Сколько ступенек получается? А получается 1024/4=256 ступенек. А сколько нам ступенек надо? А надо нам 64 ступеньки. А это значит, что если мы поставим гистерезис +16/-16, то мы как раз и получим 1024/16=64 ступеньки. Таким образом +16/-16 это критический гистерезис. Поставим ниже, промежуточные значения все равно пропадут впустую. Поставим выше - будут потери в количестве ступенек.
Итак, ставим гистерезис +16/-16 и не паримся !!!!!!!!!!!!!!! А это ого-го, какой большой гистерезис!!! Представляете, какой должна быть помеха, чтобы попасть в такой диапазон!
Ну а дальше все тоже самое.
Вот вы Юрий в своей схеме сделали почти также, но немного по-другому. Вы сначала диапазон поделили на 16 (эквивалент сдвигу на 4), а потом сделали гистерезис +1/-1. Больше уже сделать нельзя, это приведет к потерям.
Я приведу свою окончательную схему.
Гистерезис3.jpg

Не могу сказать, чья схема лучше с точки зрения нечувствительности к помехам. Вроде одинаково должно быть. smile_30 А может и нет. Что-то мне интуиция подсказывает, что моя расстановка более помехоустойчива... ;)
А скажите, вы пришли к своей схеме эмпирически или тоже расчетом?
Я поставил ReadBackи в целочисленном формате 32.0. Все прекрасно видно. ReadBack после блока сдвига четко пробегает все числа от 0 и до 63.

И еще. У меня Index Lookup Table стоит стандартный. Видите на нем 2 точки зеленая и синяя. Можно переключать форматы ввода и вывода. У меня формат ввода стоит целочисленный 32.0. Просто представление более привычное и легко отслеживаемое.
 
Последнее редактирование:

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
А скажите, вы пришли к своей схеме эмпирически или тоже расчетом?
Вы про мою схему с НЧ фильтром или про свою схему в которой я перенёс операцию сдвига на выход АЦП?

Хотя наверно не важно, в обоих случаях я это делал в большей мере эмпирически, так сказать на глазок, или как ещё любят говорить некоторые математики - методом научного тыка. Я к расчётам прибегаю в очень крайних случаях, когда это очень важно для достижения некой конкретной цели.
Но в целом ваша затея мне понятна и мне просто было видно, что в моём случае лучше резать помеху сразу на выходе АЦП. Я в принципе понимаю что сдвиг это отбрасывание разрядов и мы этим действием отбрасываем четыре младших разряда от десяти разряов, но это нас не избавляет от "проброса" шумовой единицы в пятый разряд, когда четыре младших разряда равны единице, что в итоге и заставляет вводить некий гистерезис во всё это мероприятие.
Я не хотел увеличивать разрядность в блоке сравнения Tol т.к. это приводит к большему замораживаемому значению в крайних зонах. т.е. очень редко можно получить нуль на выходе такой схемы когда потенциометр уходит в ноль но медленно, и так как мне было лень считать насколько это важно, или не важно, я просто перекинул сдвиг разрядов на выход ЦАПа и получил очень малое выходное значение на выходе схемы при нулевом входе в АЦП.
По поводу помехоустойчивости, на вскидку вроде как очевидно то, что эти два метода эквивалентны, если на гистерезис задействовано одинаковое число разрядов, а вот какой метод более устойчив при минимальном количестве разрядов затраченных на гистерезис, я затрудняюсь сказать. Тут уже нужно считать. _net_1
В целом ваша схема на мой взгляд довольно оригинальная и проста и самоео главное - рабочая.

Видите на нем 2 точки зеленая и синяя. Можно переключать форматы ввода и вывода.
Хммм... незнал, буду знать.
 
Последнее редактирование:

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
там в конце есть описание настройки кроссовера...
Kyiv
Спасибо большое!
Но если честно, я не понял пример настройки кроссовера с Дефоникой.
Я немного знаком с ней, просто под Виндовс 10 у меня не хочет она корректно работать.
Ну так вот, насколько я понял дефоника вполне самодостаточная прога, сама может раскладывает на каналы и отдает на указные выходы, виртуальный кабель ей зачем?
Я правильно понимаю что ВАК самостоятельно не умеет работать с VST плагинами?
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, а хотите удивлю еще разок? Вот смотрите:
Гистерезис4.jpg


Обратите внимание на то, что стоит между гистерезисом и AUX_ADC. А стоит там своеобразный фильтр, который называют субтрактивным фильтром! Ни один из библиотечных фильтров не работает корректно, а этот работает!
Блок DCB1 - отсекатель постоянной составляющей. Почему-то его не называют ФВЧ, хотя он вроде таковым должен являться. Так вот, из смеси постоянной составляющей и переменного шума помехи мы вычитаем переменный шум помехи и... вуаля... остается чистая постоянная составляющая без помехи! В эквиваленте получаем субтрактивный ФНЧ. И что самое интересное, эта хрень работает!!! Первый ридбэк мельтешит младшим разрядом. А второй - стоит, как вкопанный! Причем постоянная составляющая передается без искажений.
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Юрий, а хотите удивлю еще разок? Вот смотрите:
Да, удивили.
Весьма оригинальное решение, и аудиофилов можно завлекать - АЦП с субтрактивнйо фильтрацией обеспечивает максимально качественную регулировку громкости без вращения фазы. _da

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

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Решил я не ждать, больно заманчивая схема.
В общем облом с этим подходом, при моём уровне шума на входе АЦП появляется узкое место как раз на числе 623=1001101111 что явно указывает на "проброс" шумовой единицы выше 4 разряда, даже при шуме 1 младший бит.
А так в целом схема отзывчивая на регулирование громкости, но к сожалению инерции которую должен давать блокиратор постоянки, недостаточно что бы сгладить шум полностью.
Я кстати у себя вижу дребезг младшего разряда до и после субтрактивной фильтрации. С АЦП я вижу диапазон чисел 624-622 после фильтрации крайне редко виден дребезг 623-624. Хотя частота и уровень дребезга после фильтрации меньше и реже, но он есть.
Subtract2.png
 
Последнее редактирование:

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
В общем облом с этим подходом, при моём уровне шума на входе АЦП появляется узкое место как раз на числе 623=1001101111 что явно указывает на "проброс" шумовой единицы выше 4 разряда, даже при шуме 1 младший бит.
Я ведь и раньше говорил, что фильтр в принципе не должен спасать от пораженных точек. Как ни фильтруй, они все равно должны оставаться, просто количество их падает. Поэтому тот фильтр, который вы "нащупали" заслуживает отдельного внимания. Вместе с некорректностью в работе мы бонусом получаем отсутствие пораженных точек, что я никак не могу объяснить.
_____________________________________
Кстати, вы обратили внимание, что в схеме, которую я привел, гистерезис я не стал удалять. Я просто добавил этот фильтр для повышения помехозащищенности. _kluch
 

Статистика форума

Темы
2,561
Сообщения
187,590
Пользователи
2,044
Новый пользователь
Андрей Мирошников
Сверху Снизу