Максим, а как с видеоплеера транслировать звук, если АСИО фактически ни один не понимает?
Коллеги!
Завожу отдельную ветку для обсуждения новой версии моего программного кроссовера - dePhonica version3.
Эта версия кроссовера полностью отличается от первой версии, которая обсуждалась здесь как с точки зрения кода (который переписан на 99%) так и с точки зрения функционала.
Разработка версии началась весной 2015 года и в настоящее время (начало 2016) находится в активной стадии.
Скачать preview версию можно по адресу: http://dephonica.com/?lang=ru
Текущая сборка на сайте от 21.03.2016.
Внимание!
Для корректной установки WDM драйвера на windows 7 с отключенными обновлениями, необходимо установить апдейт KB3033929, добавляющий поддержку цифровых подписей SHA-2.
Ссылка для x86 обновления: http://download.microsoft.com/downlo...033929-x86.msu
Ссылка для x64 обновления: http://download.microsoft.com/downlo...033929-x64.msu
Статья по обновлению windows: https://support.gamenet.ru/kb/articles/789-windows
Ограничения preview версии:
- максимум 6 каналов обработки
- требует перезапуска ядра каждые 30 минут
Основные возможности кроссовера:
- собственный WDM драйвер для ввода потока из стандартных аудио и видео плееров, браузеров, навигаторов и других программ.
- собственный ASIO драйвер для ввода потока из аудио плееров поддерживающих ASIO
- низкая задержка: около 50 мсек при использовании IIR фильтров и выводе на ASIO устройство
- поддержка ввода звука в форматах 16 bit integer, 24 bit integer, 32 bit floating point
- 2 входных канала и до 8 выходных
- вывод звука на устройства DirectSound, ASIO, Kernel Streaming
- вся обработка производится в 64 bit floating point
- фильтрация производится FIR фильтрами, IIR фильтрами или IIR фильтрами с автоматическим корректирующим фазовым FIR фильтром
- есть возможность создания фазового фильтра для коррекции ФЧХ внешнего IIR фильтра
- доступны два конволвера для FIR фильтров: FFT конволвер с алгоритмом Overlap-Add и линейный (Straight FIR), без использования FFT
- любой из FIR конволверов может использоваться совместно с одним или более IIR фильтром в каждом канале
- до 128 000 taps на канал при использовании FFT FIR
- доступны формы АЧХ семейств фильтров IIR: Linkwitz-Riley, Butterworth, Chebyshev
- доступен параметрический синтез АЧХ и ФЧХ для типов фильтров Low Pass, High Pass, Band Pass, Band Stop, Low Shelf, High Shelf
- два варианта параметрического задания фильтров Band Pass и Band Stop: нижней и верхней частотой среза или центральной частотой и полосой пропускания
- амплитудный и фазовый эквалайзер для произвольного изменения АЧХ или ФЧХ в канале обработки, с возможностью загрузки АЧХ или ФЧХ из текстового файла или из импульсного отклика в формате WAV
- любое сочетание FIR и IIR фильтров в канале обработки
- полноценный канал предварительной обработки исходного сигнала с отдельным набором фильтров
- возможность автоматической нормализации к 0 дБ АЧХ индивидуальных каналов или группы каналов
- регулировка усиления на входе и на выходе канала
- настраиваемая задержка в каждом канале с отключаемым sub-sample разрешением
- встроенный анализатор фактической частотной характеристики кроссовера с отображением общей АЧХ кроссовера, графиков АЧХ/ФЧХ/ГВЗ для каждого канала и возможностью суммирования АЧХ выбранных каналов в отдельном окне
Пример установки и настройки полной версии кроссовера (уже местами не соответствует действительности и будет перезаписан): http://www.youtube.com/watch?v=CF_YNp0IijE
============
Пополняемый FAQ:
Скрытый текст
Q: Для чего можно использовать кроссовер?
A: Прямое назначение кроссовера – разделить исходный сигнал на несколько сигналов, каждый из которых будет воспроизводиться отдельным динамиком. Для такого использования необходима многоканальная звуковая карта (или ЦАП), многоканальный усилитель (или несколько обычных – стерео или моноблоков) и многополосная акустика, каждый динамик в которой подключен к отдельному каналу усилителя отдельным кабелем. Самый простой и часто встречающийся пример такой акустики – система 2.1 с двумя фронтальными колонками и одним сабвуфером.
A: Кроссовер можно использовать для того, чтобы вывести один и тот-же сигнал (с обработкой или нет) на несколько выходов многоканальной звуковой карты. Например, первые 2 канала – звук для колонок, следующие 2 канала – звук для наушников. На колонки одни настройки эквалайзера (внутри кроссовера), на наушники – другие.
A: Также кроссовер можно использовать даже с обычными наушниками – как точный и продвинутый эквалайзер.
Q: Какое оборудование требуется для использования кроссовера?
A: Кроссовер может использоваться для различных целей практически с любым оборудованием. Минимальные требования – компьютер с Windows 7/8/10 и любая звуковая карта.
Q: Как перенаправить в кроссовер звук из программы или плеера, не поддерживающей вывод звука на ASIO устройства?
Q: Как вывести в кроссовер звук из видео плеера?
A: Выберите в плеере вывод на аудио устройство *dePhonica Virtual Audio Device*.
Q: Какие настройки требуются в видео плеере для работы через кроссовер?
A: При использовании в кроссовере IIR фильтров, никакой дополнительной настройки плеера не требуется. При использовании FIR фильтров (или IIR с линеаризацией), в плеере необходимо установить смещение звуковой дорожки в зависимости от порядка FIR фильтра. Например, для FIR фильтра с 8000 taps это около 250 мсек.
Q: Как ввести в кроссовер звук из внешнего источника (виниловый проигрыватель, кассетный магнитофон, пульт и т.д.)?
A: На данный момент можно использовать программу VoiceMeeter от VB-Audio - она поддерживает ввод с внешних источников. Скачать программу можно по ссылке: <a style="color: #505050; font-weight: bold;" href="http://vb-audio.pagesperso-orange.fr/Voicemeeter/">http://vb-audio.pagesperso-orange.fr/Voicemeeter/</a>
В будущем появится непосредственная поддержка ввода сигнала с входов звуковой карты в кроссовер.
[свернуть]
============
Список изменений:
Скрытый текст
30.03.2016
- Более устойчивый алгоритм проверки активации
- Исправлены bypass каналы без фильтров
- Исправлена инициализация таймера в WDM драйвере
- Исправлен номер версии в окне "О кроссовере dePhonica version3"
- Исправлен вывод сообщения "Устройство вывода не выбрано" при первой установке кроссовера
20.03.2016
- Переходные процессы в модуле вывода теперь обрабатывает машина состояний. Фейдинги стали четче, мягче и предсказуемее.
- Появился приоритет ввода с ASIO Sink драйвера - WDM замолкает, когда приходит поток с ASIO.
- Расстояние при редактировании задержки выводится в метрах / сантиметрах / миллиметрах
17.03.2016
- Появился WDM драйвер виртуального аудио устройства для ввода в кроссовер - можно перенаправить в кроссовер весь системный звук
- Уменьшилась latency - для IIR фильтров составляет ~50 мс
- По умолчанию фильтры создаются как IIR. При добавлении в тракт FIR фильтра выводится отключаемое предупреждение о дополнительной задержке в тракте.
- Диалог сообщений в конфигураторе стал отображаться поверх всех окон
- Появилась возможность инвертирования кривой в эквалайзере
- Появилась возможность смещения кривой в эквалайзере
09.03.2016
- Уменьшилась latency до ~500 мсек
- Добавились IIR фильтры Bessel и Legendre
- Тысячные доли миллисекунды меняются при изменении расстояния в компоненте Delay
- Исправлена ошибка с несохранением в пресете канала предварительной обработки при загрузке конфигурации из файла
- Исправлена каша из надписей на шкале Gain на графиках анализатора
- Добавил легенду к графикам в анализаторе
- Улучшена отправка логов - теперь отправляются независимо от IP адреса пользователя
- При перетаскивании канала с удерживаемым Shift (или Ctrl+Shift) копируются только фильтры - задержки и Gain не изменяются
[свернуть]
Последний раз редактировалось emaster; 01.04.2016 в 20:55.
Максим, а как с видеоплеера транслировать звук, если АСИО фактически ни один не понимает?
Мы всего лишь развитые потомки обезьян на маленькой планете с ничем не примечательной звездой. Но у нас есть шансы постичь Вселенную. Это и делает нас особенными.
С. Хокинг.
Да, всех с наступившим Новым Годом, прошедшими и будущими праздниками.
Вы написали синтез именно через рассчёт (или измерение) АЧХ и ФЧХ фазового IIR-LR фильтра.Не надо считать ФЧХ. Я вам написал, как синтезируеся ядро all-pass и его inverse.
А до этого писали, что хотите импульсный отклик этого фильтра посчитать сами и загрузить в кроссовер, чтобы он инвертировал его фазу и выступил конволвером.
На первое отвечу, что на праздниках я реализовал возможность задать для FIR фильтра АЧХ соответствующую одному из 4-х IIR фильтров (LR, Butterworth, Chebyshev I/II) или инверсную ФЧХ для этих-же фильтров. По идее это позволит двумя щелчками сделать фазовый фильтр для коррекции ваших внешних IIR фильтров.
По поводу загрузки импульса - в текущей конфигурации ядра кроссовера не предусматривалась возможность использовать загруженный импульс без его преобразования в форму АЧХ/ФЧХ. Для этого есть причины связанные как с оптимизацией быстродействия конволвера так и чисто технические заморочки (вроде той-же необходимости ресемплинга импульса). А так, как операция FFT по сути обратима (симметрична), то восстановление формы импульса из АЧХ/ФЧХ происходит с точностью, ограниченной разрядной сеткой используемой математики (64 бит). Поэтому для меня не очевидна востребованность реализации схемы с использованием исходного, загруженного пользователем, импульса в конволвере. Если поясните, в чём здесь point - буду рад.
Для разных применений могут быть разные критерии выбора фильтра. Но, в общем, это не повод для спора - сейчас есть список АЧХ фильтров, первый в котором именно LR."Мало-ли кому что" - вы много еще фильтров знаете, которые фазо-когерентны и суммируются в единицу? При этом звенят меньше Linkwitz-Riley? Это ж не рум-корректор для коррекции пассивной АС. В таком случае да - проще измерить. Но результат будет заведомо хуже цифры с скорректированным "иедальным" LR4.
Версия с этими (и многими другими) изменениями станет доступна для скачивания завтра, 12.01.
Их нет? В шапке темы заявлено... Как вы драйвера предлагаете эквализировать (не мне, а тому, кто свои АС целиком в PC сводит)?Да, это моя ошибка - с выходом новой версии стоило создать новую тему (что я сейчас и сделаю). Актуальная версия кроссовера не имеет почти никакого отношения к кроссоверу из шапки, кроме пары килобайт straight fir конволвера. Поэтому заглавное сообщение этой темы вводит в заблуждение.
Тему создал, теперь шапка соответствует обсуждаемой версии кроссовера.
Драйвера эквализировать предлагаю FIR фильтром, упреждающий звон которого для плавных АЧХ очень незначителен. Но вы правы, возможность включения в канал IIR фильтров не помешает, запланировал на следующий мажорный билд.
Нет, про исследования не слышал.А по поводу ошибок квантования на 24 бит не слышно - вы где то слышали о подобных исследованиях? У того же Бруно на эту тему есть хорошая фраза:
Зато проверил в PortAudio - если dithering включен, то он применяется при всех понижениях разрядности и при конверсиях из плавающей точки в целочисленную арифметику.
Так что да, во всех случаях конвертации семплов dithering присутствует.
А откуда взяться ВЧ составляющим в импульсном отклике, если АЧХ/ФЧХ гладкие и медленно изменяющиеся? Для АЧХ эмулирующих IIR фильтры получаются очень короткие импульсы.Тогда следующий вопрос (concern). (Как) гарантируете отсутствие "острых" артефактов на краях ядра FIR?
Тут не очень понял, что имеется в виду.В принципе, можно на каждый канал поставить по FIR, и загнать в них синтез из всех секций FIR и IIR (так делают некотрые чисто-FIR решения).
Обыкновенно - комплексная частотная характеристика задаётся в taps/2 точках и через IFFT из неё получается импульсный отклик фильтра.И как же? Только, чтоб мне не пришлось вас в очередной обратно к документу отсылать...
Собственно, как и в коде вашего примера вычисления инверсного фазового фильтра. Никаких технических ограничений по форме частотных характеристик фильтра тут нет. Естественно это не значит, что для звука подойдёт любой возможный импульс.
Да я не про это. Продукт всегда проходит развитие от простого к сложному.Мы не в 1987 году. Тогда - она иела право на жизнь. Сегодня убеждать кого-то, что это продукт и его можно продать - просто нелепо. Ситуация изменилась. Всему своё время.
Те, кто пытается реализовать сразу всё никогда не выпускают ничего работоспособного, даже с вливанием приличных инвестиций.
В этой области (готовых продуктов) перфекционизм должен быть поэтапно ограниченным.
В общем да, согласен. Просто именно термин "реквантование" в большинстве случаев применяется к квантованию по времени.Любая операция снижения разрешения - суть реквантование (укладываем значение в конечное число интервалов).
А почему? Это именно приведение шума квантования к его тепловому "коллеге" для уменьшения слышимости. Чистая психоакустика, "размазывание""Размазать шум" - это слишком примитивное понимание. Я бы сказал - сконвертировать в новый формат без внесения нелинейных искажений.
Ну а смысл грузить ФЧХ в каждый канал? В каждом канале задана АЧХ кроссовера при линейной ФЧХ.Уже сказал - более чем странно всё это.
А инверсная ФЧХ (для внешних фильтров или для акустики/комнаты) может быть загружена в канал предварительной обработки для всех каналов сразу.
Я просто не люблю, когда что-то вещается как истина в последней инстанции. При этом логические доводы понимаю и не являюсь фанатом никаких подходов.Еще автора rePhase (ах, да, забыл, он же той самой злополучной докой вдохновился), Троелса, Батя (которые предлагают практически те же методики, но, сюрприз, - для дизайна уже обычных аналоговых кроссов АС, естественно без единственной детали - FIR). Вы всё же гляньте за рамки математики на звук, акустику и проблемы создания АС... вы ж не абстрактный кроссовер в вакууме делаете.
---------- Сообщение добавлено 09.23 ---------- Предыдущее сообщение было 09.19 ----------
Мне удавалось заставить работать mpc-hc с asio рендерером http://surodev.com/products/asio-renderer/
Он неудобен, запутан, и херово управляется со смартфона. Та же ситуация с
Мне надо для просмотра кино в зале на ТВ с активом с норм управлением. КОДИ пока лучше всех для меня, а он АСИО не держит.
Этого нет, поэтому проехали.
Выход то есть, WDM ASIO Link, но платно.
Мы всего лишь развитые потомки обезьян на маленькой планете с ничем не примечательной звездой. Но у нас есть шансы постичь Вселенную. Это и делает нас особенными.
С. Хокинг.
Подозреваю, igorzep-у не нужен кроссовер. Подозреваю, ему нужен удобный конволвер, ориентированный для задач кроссовера. Чтобы он мог грузить в них импульсы, полученные из источников, которым он доверяет. Тот же Rephase не зря упоминается - он уже принят как стандарт. И настроек там дофига. При этом я так и не смог понять, например, что именно он делает с импульсом при многопроходовой генерации. Или зачем он размер FFT берёт больше, чем размер FIR. (Другой вопрос, что я сам считаю это всю эту кучу настроек совершенно незначительными - ну невозможно услышать разницу в форме кривой, начинающейся от -60 дБ и погрешностью в +/- 0.1 дБ).
Я хоть и не Максим, но посоветую посмотреть на упомянутый в соседней теме VoiceMeeter. Он это умеет.
Единственная проблема – не поддерживает дискретизацию 192 кГц, только до 96 кГц.
А на них я в прошлой теме ссылку давал
Прикреплю в первом сообщении.
---------- Сообщение добавлено 22.36 ---------- Предыдущее сообщение было 00.13 ----------
Обновил сборку кроссовера на сайте.
Основные изменения:
- Внимание! Изменился формат хранения настроек - при апдейте старые настройки пропадут
- для фильтров появилась возможность задавать кривую АЧХ аналогичную кривой IIR фильтров
- появилась параметрическая настройка АЧХ фильтра
- появилась возможность параметрически задать корректирующий фазовый фильтр - для коррекции ФЧХ внешнего IIR фильтра
- ускорилась работа основного окна конфигуратора
- ускорилась работа, уменьшился объём необходимой памяти и повысилась точность анализатора АЧХ
- в анализаторе АЧХ графики увеличиваются по щелчку
- входное и выходное усиление канала теперь задаются в dB - для единообразия
- спрашиваются (отключаемые) подтверждения при удалении канала или фильтра в канале
- добавилась поддержка вывода через WASAPI (но у меня, почему-то, все устройства 2-х канальные - разбираюсь)
- много невидимых пользователю изменений
Изменений много, версия свежая, к возможным глюкам прошу относиться с пониманием.
Offтопик:
ASIO Bridge мне у них не понравился. VAC в связке с asio4all работает как-то понятней. А вот упомянутый VoiceMeeter привлекает тем, что позволяет легко подключить к компьютеру еще один-два аналоговых источника. Мне, например, очень нехотелось отказываться от возможности иногда послушать проигрыватель винила – а переход на программный кроссовер эту возможность затруднял. А с этой программкой все станет проще – завел вертушку на вход звуковой карты и все.
Здравствуйте! Как сделать, что бы пробная версия не запускалась при старте операционки? Галочка Start at startup не включена...
Обновился дистрибутив на сайте.
Произошли следующие изменения:
- добавилась возможность автонормализации (к 0 дБ) АЧХ каналов или группы каналов
- изменился конволвер - теперь его алгоритм это overlap-add
- в анализаторе появился график общей АЧХ кроссовера и возможность суммирования АЧХ отдельных каналов
Крупное обновление кроссовера:
- появились IIR фильтры, с возможностью автоматической фазовой коррекции FIR фильтром
- оптимизация ядра по производительности и латентности
- анализатор частотных характеристик работает в несколько раз быстрее
- изменилась логика работы лампочек clip in в конфигураторе - теперь они меряют уровень сигнала после ручки input gain, до фильтра
- в окнах ввода параметров значения применяются как клавишей enter, так и клавишей tab
- ручки регулировки параметров стали понимать вращение колеса мыши (при нажатом ctrl - ускоренное)
- можно выбирать способ задания фильтров band pass: нижняя и верхняя частота или центральная частота и полоса пропускания
- в пробной версии время прослушивания до перезапуска ядра увеличино с 10 до 30 минут
---------- Сообщение добавлено 28.01.2016 в 22.12 ---------- Предыдущее сообщение было 27.01.2016 в 14.52 ----------
Обновил описание основных возможностей кроссовера в первом сообщении темы.
А DirectSound версия больше недоступна?
Обновление дистрибутивов на сайте:
- исправлен баг с не работающим режимом Max Latency
- режимов задержки фильтра стало всего два: High и Low
- доработано подавление щелчков при переключении треков
Кто столкнулся с перечисленными проблемами - пожалуйста обновитесь.
Последний раз редактировалось emaster; 31.01.2016 в 19:11.
Новое видео: использование IIR фильтров с FIR линеаризацией
Ссылка: https://www.youtube.com/watch?v=2dBozhhflyA
И обновление дистрибутивов на сайте:
- исправлено измерительное ядро: теперь импульс из wav загружается без потери разрешения и анализатор характеристик работает гораздо точнее
Социальные закладки