Страница 14 из 48 Первая ... 4121314151624 ... Последняя
Показано с 261 по 280 из 957

Тема: Цифровой программный кроссовер

  1. #1 Показать/скрыть первое сообщение.
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Цифровой программный кроссовер

    Господа! Представляю вам свою разработку. Изначально это была консольная программа-кроссовер, которую я сделал для использования с НЧ акустикой требовательной к фильтрации сигнала (tapped horn). А недавно у программы появился графический интерфейс к консольной части и я решил, что возможно мой кроссовер будет полезен кому-то ещё.

    Программа делает из компьютера с одной или несколькими звуковыми картами аналог «железного» цифрового кроссовера, обрабатывая сигнал со входов звуковых карт в реальном времени и выдавая его на выходы. Причём число выходов обычно больше чем число входов.
    Аналогичный компонент для foobar – всем известный xover. Есть ещё некоторые vst плагины, которые можно вставить в vst host, есть драйверы kxProject в которых можно (наверное, не пробовал) сделать кроссовер прямо во внутреннем dsp карты. Но объединяет все эти способы одно — каждый пользователь настраивает окружение (т.е. весь набор программ) в котором работают эти плагины практически с нуля. В моей программе настройка и запуск кроссовера делаются гораздо проще.

    В текущей версии доступны следующие возможности:

    - вся обработка производится в 64-bit floating point
    - доступны семейства фильтров IIR: chebyshev, butterworth, elliptic, legendre
    - доступен FIR фильтр
    - доступны типы фильтров lowpass, highpass, bandpass, bandstop
    - регулировка усиления на входе и на выходе канала
    - настраиваемая задержка в каждом канале
    - компрессор динамического диапазона
    - возможность работы с несколькими звуковыми картами одновременно (но без перенаправления звука с одной звуковой карты на другую — разбегутся тактовые генераторы)

    Программа состоит из двух компонентов — composer и launcher. В composer-e пользователем определяется конфигурация кроссовера, выбираются устройства-источники и устройства-получатели. После чего конфигурация сохраняется и запускается в launcher-e. Сейчас у launcher-a минимальный функционал — запуск конфигурации, отображение уровней сигнала и отладочная консоль.

    Текущая версия использует DirectSound через интерфейс BASS, с задержкой сигнала вход-выход около 500 мс. Есть asio версия, в которой задержка определяется возможностями оборудования — менее 20 мс для драйвера asio4all и менее 10 мс для audigy2. Asio версия в перспективе планируется как коммерческая, поэтому в открытом доступе её нет. Но я готов отправить её некоторому количеству пользователей в обмен на тестирование и информирование меня об успехах в её использовании.
    Самым активным тестировщикам могу обещать полную asio версию после её релиза.

    Контактный e-mail: info@dephonica.com
    Сайт программы: http://dephonica.com/
    Размер дистрибутива — 1.1 Мб. Программе для запуска необходим установленный в системе .NET framework 4. Если его нет, при запуске будет предложение скачать его с сайта Microsoft или с сайта программы.

    Текущая версия живёт в надежде на бета-тестирование, супер надёжностью и функционалом пока не наделена, но по моему опыту вполне работоспособна. Поэтому буду рад вашим отзывам, комментариям и опыту использования.

    Видео канал dePhonica: http://www.youtube.com/user/dephonica/videos
    Последний раз редактировалось emaster; 06.01.2012 в 02:27.

  2. #261
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от ВЕТЕР Посмотреть сообщение
    Он у меня был включён, внизу видно его значок.
    О, соединил wdm выход с asio входом, изменения на лицо звук как бы раздвоился, а мне надо было полностью убрать на эквалайзере весь низ...
    У вас сейчас звук идёт двумя путями:

    1. Плеер->WDM драйвер->Звуковая карта.
    2. Плеер->WDM драйвер->ASIO->Кроссовер->ASIO->Звуковая карта.

    Нужно разорвать первый путь, чтобы звук плеера не попадал напрямую в карту.
    Опять погуглил за вас, нагуглил инструкцию от DirectWire
    Нужно нажать кнопочку OUT в столбце WDM в DirectWire - она станет с надписью OFF и звук из плеера на выход попадать не будет.

  3. #262
    Завсегдатай Аватар для ВЕТЕР
    Регистрация
    09.05.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    1,838

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    У вас сейчас звук идёт двумя путями:

    1. Плеер->WDM драйвер->Звуковая карта.
    2. Плеер->WDM драйвер->ASIO->Кроссовер->ASIO->Звуковая карта.

    Нужно разорвать первый путь, чтобы звук плеера не попадал напрямую в карту.
    Опять погуглил за вас, нагуглил инструкцию от DirectWire
    Нужно нажать кнопочку OUT в столбце WDM в DirectWire - она станет с надписью OFF и звук из плеера на выход попадать не будет.
    Просто я даже не знал как и что вводить в поиске...
    Спасибо, эквалайзер работает правда пока не пробовал как он в играх... и пока не могу понять на сколько сильно грузит проц.
    Вчера около 5% ел с 4х ядер. Сегодня как то непонятно, плюс минус короче.

    Прога очень удобная, в ней есть всё, что нужно. У меня esi julia и по звуку очень нравится. Какие нибудь не супер дорогие многоканальные альтернативы ей есть? А то не первый год собираю многоканальную систему долго искал нечто подобное, но видел только для macOS. А тут такой подарок...
    И в чём кстати отличие коммерческой от бесплатной версий на данный момент?

  4. #263
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от ВЕТЕР Посмотреть сообщение
    и пока не могу понять на сколько сильно грузит проц.
    Вчера около 5% ел с 4х ядер. Сегодня как то непонятно, плюс минус короче.
    Зависит от типа использованного фильтра. IIR фильтры (в списке все, кроме FIR) грузят очень немного.
    FIR - в зависимости от числа taps.

    И в чём кстати отличие коммерческой от бесплатной версий на данный момент?
    Коммерческие версии делались для конкретного применения под конкретные спецификации - в основном, для "большой" акустики.

  5. #264
    Завсегдатай Аватар для ВЕТЕР
    Регистрация
    09.05.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    1,838

    По умолчанию Re: Цифровой программный кроссовер

    Что такое тапс и где вообще мануал на русском почитать?

  6. #265
    Забанен (навсегда) Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    690

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    FIR - в зависимости от числа taps.
    6х65k.taps какая загрузка CPU будет ?
    Последний раз редактировалось anpir; 03.05.2015 в 19:01.

  7. #266
    Старый знакомый Аватар для dee-jan
    Регистрация
    09.07.2009
    Адрес
    BLR
    Возраст
    42
    Сообщений
    924

    По умолчанию Re: Цифровой программный кроссовер

    Кстати, да, интресный вопрос. ТС, вы вроде используете в FIR AVX инструкции процессора. А как дела обстоят если их нет, и есть в наличии SSE4.2?
    Сергей.

  8. #267
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от ВЕТЕР Посмотреть сообщение
    Что такое тапс и где вообще мануал на русском почитать?
    Мануала пока нет, но для новой версии кроссовера есть вероятность его появления.
    Так, что гугл и "FIR filter taps".
    Вкратце, это число коэффициентов ядра FIR фильтра. От этого числа квадратично зависит сложность расчёта фильтра (для расчёта фильтра с taps = 2 нужно 4 операции, а с taps = 4 - 16 операций).
    Ещё от этого числа зависит частотное разрешение фильтра. Грубо, число taps можно представить как число полос эквалайзера. Т.е. при taps = 1024 будет 1024 значения, указывающих усиление в каждой из 1024 частот. При частоте дискретизации аудио сигнала 48 кГц получается, что ширина каждой полосы частот 46,87 Гц.
    Т.е. настроить фильтр на вырезание частот ниже 20 Гц с таким числом taps не получится - минимум можно обрезать ниже 46 Гц.
    Кроме того, чем больше число taps, тем круче спад АЧХ фильтра.

    ---------- Сообщение добавлено 11.44 ---------- Предыдущее сообщение было 11.39 ----------

    Цитата Сообщение от anpir Посмотреть сообщение
    6х65k.taps какая загрузка CPU будет ?
    Я-же не знаю, какой у вас CPU
    Старая версия 65к taps не потянет. Но вообще, такая длина ядра на CPU, если запустится, будет потреблять неразумно много процессорных ресурсов. Это для straight fir фильтра. FFT посчитает это всё на загрузке процентов 15-30 на CPU i5.
    В будущих версиях часть фильтров будет уметь считаться в GPU - там с такими длинными фильтрами должно быть проще.

    ---------- Сообщение добавлено 11.47 ---------- Предыдущее сообщение было 11.44 ----------

    Цитата Сообщение от dee-jan Посмотреть сообщение
    Кстати, да, интресный вопрос. ТС, вы вроде используете в FIR AVX инструкции процессора. А как дела обстоят если их нет, и есть в наличии SSE4.2?
    В старой версии - только AVX.
    В новых будут как минимум варианты с GPU.
    Последний раз редактировалось emaster; 04.05.2015 в 12:24.

  9. #268
    Забанен (навсегда) Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    690

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    Старая версия 65к taps не потянет. Но вообще, такая длина ядра на CPU, если запустится, будет потреблять неразумно много процессорных ресурсов.
    А как работает все в этом фильтре ? http://www.ludd.luth.se/~torger/brutefir.html

    BruteFIR is a software convolution engine, a program for applying long FIR filters to multi-channel digital audio, either offline or in realtime. Its basic operation is specified through a configuration file, and filters, attenuation and delay can be changed in runtime through a simple command line interface. The FIR filter algorithm used is an optimised frequency domain algorithm, partly implemented in hand-coded assembler, thus throughput is extremely high. In realtime, a standard computer can typically run more than 10 channels with more than 60000 filter taps each.

    В режиме реального времени, стандартный компьютер может обработать, как правило, более 10 каналов с более чем 60000
    taps.

    Почему у этой программы такое приемущество в производительности, в чем подвох ???
    Последний раз редактировалось anpir; 04.05.2015 в 23:05.

  10. #269
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от anpir Посмотреть сообщение
    А как работает все в этом фильтре ? http://www.ludd.luth.se/~torger/brutefir.html
    Из описания фильтра:

    Frequency domain algorithms for convolution is much faster than the straight-forward time domain one when filters are long. The well known overlap-save algorithm is used as the base in BruteFIR*s convolution


    Используется свёртка фильтра (умножение ядра фильтра на сигнал с суммированием) с помощью FFT. Чуть выше по теме обсуждалось.
    В новой версии кроссовера есть подобный вариант фильтра с аналогичной (или лучшей, в случае использования GPU) производительностью. Но с точки зрения точности обработки сигнала этот вариант уступает ресурсоёмкому FIR с прямой свёрткой.
    Если вкратце описать преобразование сигнала, то каждый семпл на выходе фильтра, в случае FFT FIR, считается последовательным применением следующих преобразований:
    1. Нажмите на изображение для увеличения. 

Название:	a8f2aeebe7a355be7c9184633d33bdea.png 
Просмотров:	136 
Размер:	1.4 Кб 
ID:	236081
    2. затем умножение результата на коэффициенты фильтра, после чего снова
    3. Нажмите на изображение для увеличения. 

Название:	a8f2aeebe7a355be7c9184633d33bdea.png 
Просмотров:	136 
Размер:	1.4 Кб 
ID:	236081 но с обратным знаком возведения в степень.

    Для Straight FIR операция всего одна и простая по сути:

    1. x = E(s[-n]*k[n]), где E - операция суммирования, s - исходные семплы, k - коэффициенты фильтра.

    Т.е. то, что получается во втором случае предсказуемо, с легко вычисляемой ошибкой (в случае обработки сигнала в 64-bit double эта ошибка исчезающе мала), которая не зависит практически ни от чего.
    В случае FFT FIR очень много факторов (опять-же, выше я давал ссылку на документ) вносящих ошибку в сигнал. Она мала, но гораздо больше, чем в случае straight fir.

  11. #270
    Забанен (навсегда) Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    690

    По умолчанию Re: Цифровой программный кроссовер

    Спасибо, все понял... Ждем новую версию кроссовера с поддержкой GPU .

  12. #271
    Частый гость Аватар для 155ла3
    Регистрация
    28.09.2005
    Возраст
    54
    Сообщений
    188

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    Так, что гугл и "FIR filter taps".
    Вкратце, это число коэффициентов ядра FIR фильтра. От этого числа квадратично зависит сложность расчёта фильтра (для расчёта фильтра с taps = 2 нужно 4 операции, а с taps = 4 - 16 операций).
    Сложность вычисления FIR фильтрации (в лоб) растет не квадратично, а линейно. для 4 tap надо 4 умножения + 4 сложения.

  13. #272
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от 155ла3 Посмотреть сообщение
    Сложность вычисления FIR фильтрации (в лоб) растет не квадратично, а линейно. для 4 tap надо 4 умножения + 4 сложения.
    Да, очевидно, что действительно линейно - в предыдущем сообщении почему-то решил, что квадратично.
    Спасибо за замечание.

  14. #273
    Новичок Аватар для avtoneru
    Регистрация
    19.04.2015
    Адрес
    г. Нерюнгри
    Возраст
    52
    Сообщений
    90

    По умолчанию Re: Цифровой программный кроссовер

    Возможно автора темы заинтересует эта реализация - заманчиво, производительность IIR и линейная фаза, самое простое что нашел - по моим прикидкам - спокойно будет работать и в микроконтоллере ...
    IIR с линейной фаз&#1086.zip

  15. #274
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от avtoneru Посмотреть сообщение
    Возможно автора темы заинтересует эта реализация - заманчиво, производительность IIR и линейная фаза, самое простое что нашел - по моим прикидкам - спокойно будет работать и в микроконтоллере ...
    Спасибо за документ.
    Да, у меня в наборе фильтров есть фазовый корректор, которым можно линеаризовать IIR фильтры. И в новой версии будет выбор - FIR или линейно-фазовый IIR.

  16. #275
    Новичок Аватар для avtoneru
    Регистрация
    19.04.2015
    Адрес
    г. Нерюнгри
    Возраст
    52
    Сообщений
    90

    По умолчанию Re: Цифровой программный кроссовер

    emaster, ешё неплохо добавить в список "корректор Линквитца", без коррекции фазы после него, и с инвертированием сигнала (корректор инвертирует сигнал), и чтобы был выбор параметров как тут http://www.minidsp.com/images/fbfile...1-20101026.zip.
    Этот фильтр необходим для коррекции динамиков в оформлении ЗЯ.
    Ещё пожелание - в Вашем конфигураторе задавать параметры фильтров как в этом файле - тип фильтра, его порядок и частота ... LR - нужен для деления на полосы.

  17. #276
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от avtoneru Посмотреть сообщение
    emaster, ешё неплохо добавить в список "корректор Линквитца", без коррекции фазы после него, и с инвертированием сигнала (корректор инвертирует сигнал), и чтобы был выбор параметров как тут http://www.minidsp.com/images/fbfile...1-20101026.zip.
    Думается, что корректор Линквица может быть с успехом заменён фазолинейным эквалайзером (который уже реализован).
    А для отличной отдачи по НЧ в ЗЯ гораздо лучше использовать 12"-18" НЧ драйверы - звук с ними просто монументальный.

    Ещё пожелание - в Вашем конфигураторе задавать параметры фильтров как в этом файле - тип фильтра, его порядок и частота ... LR - нужен для деления на полосы.
    Пока планирую оставить базовый набор настроек для фильтров - частоты среза и порядок.
    Более хитрые огибающие можно строить в эквалайзере - в том числе и загружая реально измеренные АЧХ.

  18. #277
    Старый знакомый Аватар для dee-jan
    Регистрация
    09.07.2009
    Адрес
    BLR
    Возраст
    42
    Сообщений
    924

    По умолчанию Re: Цифровой программный кроссовер

    Когда уже осчастливите нас?
    Сергей.

  19. #278
    Новичок Аватар для avtoneru
    Регистрация
    19.04.2015
    Адрес
    г. Нерюнгри
    Возраст
    52
    Сообщений
    90

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    Думается, что корректор Линквица может быть с успехом заменён фазолинейным эквалайзером
    В том и весь смак ,что не может, т.к. выполняет сразу две функции - правит "как надо" и АЧХ и ФЧХ, в результате - НЧ меньше запаздывает. Причем график ФЧХ и ГВЗ у НЧ динамиков - нелинейный, а применение данного корректора позволяет эти графики сделать более удобными, для "сшивки" с динамиком следующей полосы.
    http://www.linkwitzlab.com/filters.htm#9

  20. #279
    Забанен (навсегда) Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    690

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от emaster Посмотреть сообщение
    Думается, что корректор Линквица может быть с успехом заменён фазолинейным эквалайзером (который уже реализован).
    А сделайте возможность коррекции по импульсу

  21. #280
    Частый гость
    Автор темы

    Регистрация
    07.02.2009
    Адрес
    Россия, г. Белгород
    Возраст
    41
    Сообщений
    375

    По умолчанию Re: Цифровой программный кроссовер

    Цитата Сообщение от avtoneru Посмотреть сообщение
    В том и весь смак ,что не может, т.к. выполняет сразу две функции - правит "как надо" и АЧХ и ФЧХ, в результате - НЧ меньше запаздывает. Причем график ФЧХ и ГВЗ у НЧ динамиков - нелинейный, а применение данного корректора позволяет эти графики сделать более удобными, для "сшивки" с динамиком следующей полосы.
    http://www.linkwitzlab.com/filters.htm#9
    Мне до сих пор кажется, что это самое "как надо" делается загрузкой пресетов в амплитудный и частотный эквалайзеры. Это если коррекция "усреднённая" по множеству НЧ динамиков.
    Или загрузкой измеренной АЧХ/ФЧХ динамика - для индивидуальной коррекции.
    Т.е. моё техническое образование подсказывает, что коррекции АЧХ и ФЧХ должно быть достаточно для линеаризации любой реальной аудиосистемы (без учёта нелинейностей высших порядков).

    ---------- Сообщение добавлено 00.42 ---------- Предыдущее сообщение было 00.40 ----------

    Цитата Сообщение от anpir Посмотреть сообщение
    А сделайте возможность коррекции по импульсу
    На данный момент функционал кроссовера уже "железно" определён и врядли будет изменяться до релиза.
    А в будущем - всё возможно.

    ---------- Сообщение добавлено 00.43 ---------- Предыдущее сообщение было 00.42 ----------

    Цитата Сообщение от dee-jan Посмотреть сообщение
    Когда уже осчастливите нас?
    Сам в нетерпении
    Планы, как обычно - всего-лишь планы.

Страница 14 из 48 Первая ... 4121314151624 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •