...

суббота, 8 марта 2014 г.

Определение локальных IP-адресов через WebRTC

Через WebRTC можно получить список всех локальных (находящихся за NAT) интерфейсов в системе.

Пример кода на JavaScript jsfiddle.net/GZurr


Работает только в браузерах поддерживающих WebRTC, на текущий момент это Firefox и Chrome.


Это можно использовать для получения более точного фингерпринта браузера или, например, разоблачения персонажей, сидящих за VPN, чтобы ВЫЧИСЛИТЬ ПО АЙПИ И НАБИТЬ Е**ЛЬНИК


Для удобства использования я изготовил js-сниффер, который можно вставить на страницу и удобно просматривать результат его работы: http://ift.tt/1fUfh9N


Достаточно вставить на страницу код:



<script src="//zhovner.com/jsdetector.js?name=test"></script>

Где test нужно заменить на слово, по которому будет доступен результат работы сниффера: http://ift.tt/1fUfh9P




Из примечательного в скрипте — определение адресов пользовательского резовлера.


Скрипт генерирует несколько рандомных поддоменов вида RANDOM.detect.zhovner.com и обращается к ним по HTTP.


Зона *.detect.zhovner.com делегирована wildcard-ом на NS-сервер, которые логирует запросы резолверов, и при обращении к сайтам возвращает source адрес, с которого пришел резолвер.


Нужно иметь в виду, что SSL сертификат валидный только для корневого домена, но не для *.detect.zhovner.com, поэтому при встраивании скрипта на https-сайты, будет показано предупреждение о контенте загружаемом не по HTTPS.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Игры с UEFI

Одним из важнейших нововведений спецификации Unified Extensible Firmware Interface явилось появление и интеграция в firmware персональной платформы особой операционной среды UEFI Shell, позволяющей выполнять небольшие задачи или UEFI приложения без загрузки операционной системы. В этом контексте, в первую очередь речь идет о задачах, связанных с обслуживанием вычислительной системы: обновление firmware платформы и периферийных устройств, восстановление модулей операционной системы после различных сбоев, а также утилиты системной информации и диагностики. Упоминание об игровых приложениях, а тем более современных 3D играх в этом контексте прозвучит несколько парадоксально. И все же давайте попробуем ответить на вопрос: можно ли написать игру для выполнения в среде UEFI? Если можно, то как? Если нельзя, то почему?

Вспомнить все: программный вывод графики




На ранних этапах развития графических подсистем персональных платформ, во времена господства шины ISA, «рисование» объектов на экране осуществлялось программным путем. Принцип прост: видео память располагается в адресном пространстве центрального процессора, вывод графического объекта сводится к записи заданной информации по заданным адресам. Несколько упрощая, можно сказать, что координаты каждой отображаемой точки определяются адресом, по которому выполнена запись, а цвет – записанными данными. Достоинство такой модели — простота программной и аппаратной реализаций, недостаток — низкая производительность.

Компьютер в компьютере: аппаратный вывод графики




Как известно, современный видео адаптер, это «компьютер в компьютере». Графический процессор, входящий в его состав, способен выполнять собственный командный поток, взаимодействуя с оперативной памятью платформы в режиме bus-master, а также с локальной памятью видео адаптера. При этом основная задача центрального процессора сводится к подготовке в оперативной памяти блоков заданий для графического процессора.

В типовой современной персональной вычислительной системе, для шины, связывающей микросхему видео контроллера с видео памятью, характерны разрядности и тактовые частоты, существенно превышающие аналогичные параметры для шины оперативной памяти системной платы. И заметим, что в отличие от центрального процессора, графический процессор не использует транзитных звеньев (в виде шин AGP или PCI Express) при доступе к видео памяти. В результате, очевидное преимущество — высокая производительность. Но есть и недостатки. Об этом ниже.


Проблемы решенные и не решенные




Так уж исторически сложилось, что индустрия не выработала единой унифицированной программной модели для низкоуровневого доступа к регистрам видео акселератора. Унификация реализована исключительно на уровне программного интерфейса драйверов. Разработчику приложений, выполняемых в среде современных операционных систем, не требуется заботиться о низкоуровневом взаимодействии с регистрами видео контроллера потому, что его производитель предоставил драйвер, берущий эту задачу на себя. Проблема в том, что для среды UEFI такой инфраструктуры не предусмотрено.

Несомненно, такие факторы, как переход от 16-битного режима Real Mode к 64-битному Protected Mode, а также использование UEFI Driver Model вместо программных прерываний Legacy BIOS, закладывают фундамент для создания такой инфраструктуры. Но на сегодня фундамент есть, а инфраструктуры нет.


Компромиссы возможны




Ряд современных технологий позволили «вдохнуть вторую жизнь» в реализацию графики средствами центрального процессора. Речь в первую очередь об использовании 128 и 256-битных SSE инструкций, а также технологии Write Combining, позволяющей объединять результаты нескольких процессорных циклов записи в пакет размером до 4 килобайт для отправки по шине PCI Express. Иногда, такой подход позволяет получить приемлемый результат для 2D графики в рамках использования UEFI Graphics Output Protocol в сочетании с «дедовским» методом визуализации:

image

Рис 1. Снимок экрана, полученный из UEFI-среды в процессе запуска игры Tetris64


Но очевидно, что достичь функциональности и производительности, реализуемой средствами аппаратных графических процессоров, данный метод не позволит.


Резюме




Приходится констатировать невозможность написания UEFI-приложения, реализующего 3D графику с кинематографическим качеством. Почему? Унифицированных протоколов и готовых драйверов, обеспечивающих поддержку 3D под UEFI, не существует. Также нереально решение этой задачи путем прямого обращения к аппаратным ресурсам видео акселератора из UEFI-приложения: отсутствие унификации оборудования потребует от разработчика написания драйверов для всех моделей графических процессоров.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Как подружить LO и MSO: автоматическая генерация тестов для docx и odt

Здравствуй, читатель! Как и обещал, продолжаю тестировать различные форматы документов в MS Office 2010 и LibreOffice 3.5. За время написания этого поста я успел проверить в работе форматы odt и docx — к сожалению, остался разочарован. Но не будем забегать вперед; под катом о том, как эти форматы обрабатываются в MSO и LO, а также небольшой сюрприз тестировщикам: как автоматизировать процесс генерации тестов для такой необычной области, как форматы документов.



Ожидания




В комментариях к прошлому посту, как и повсюду в интернете, много говорили о форматах docx и odt, как о замене старого и (как оказалось) не очень доброго doc. Много говорили о стандарте doc, много вспоминали о качестве формул в odt, грех было не протестировать эти форматы в деле. Если честно, я ожидал, что odt будет открываться и там и тут без проблем, docx же покажет результаты похуже чем odt, но намного лучше чем doc. Но мечтам не суждено было сбыться…

Генератор тестов




Тесты для doc я готовил около дня. Согласно логике, столько же мне нужно было для docx и еще день для odt. Три дня для написания одинаковых тестов, но в разных форматах! Какого программиста это может устроить? Базисом моей идеи является следующее наблюдение: если сохранить любые компоненты в odt под LO, то они не изменятся при повторном открытии в LO. Это означает, что все тесты изначально нужно было писать в odt формате, затем их нужно всего лишь пересохранить в форматах doc и docx, что даст нам три теста взамен одного. К счастью, у soffice есть параметр --convert-to, который я и использовал для автоматизации.

Итак, как же автоматизируется создание тестов:



  1. Пишем все тесты в odt

  2. Пишем небольшой sh для конвертации odt в любой формат

    converter.sh


    soffice --headless --convert-to $2 $1






  3. Пишем еще один sh для автоматизации процесса конвертации всех доступных odt тестов

    create.sh


    for i in `seq 12`; do
    cd $i;
    ../converter.sh "*.odt" doc;
    ../converter.sh "*.odt" docx;
    cd ..
    done






  4. На всякий случай пишем sh для удаления всех doc и docx

    clean.sh


    for i in `seq 12`; do
    rm $i/*.doc* $i/*/*.doc*;
    rm $i/*.docx* $i/*/*.docx*;
    done;







В результате получаем генератор тестов из odt в doc и docx + полностью переписанные тесты для всех трех форматов за один день!


Помимо форматов




Новые форматы — это хорошо, но я не забыл о просьбах читателей и добавил в тесты формулы и сноски. Как оказалось, дела здесь обстоят не так плохо, как говорили. Большая часть компонентов отображается корректно.

Также немного изменил журнал. Добавил немного статистики для поиска наиболее «хорошего» формата, который бы хорошо отображался в большинстве случаев на обоих редакторах.


Результаты




Страницы



Все форматы корректно работают с размерами страниц, их ориентацией, полями и границами. Цвет фона страниц лучше не использовать вовсе, как и отступы от границ (заменяется полями или отступами абзацев).
Колонтитулы



Если вам от колонтитулов нужно указать высоту (в LO — интервал) или добавить номера страниц, то никаких проблем ни в одном из форматов не возникнет. Но вот границы и боковые поля обрабатываются не очень, так же плохо обрабатываются таблицы в колонтитулах в формате docx, в LO они удаляются (странно, но даже удаленные они видны в MSO).
Колонки



Нигде никаких проблем.
Абзац



Отступы, интервалы и выравнивание во всех форматах и редакторах отображаются одинаково, как и цвета с различными выделениями. Границы тоже можно использовать без опасений, но вот о такой экзотике как вертикальное выравнивание относительно базовой линии следует забыть, MSO об этом просто не знает. Параметры «Не разрывать абзац» и «Не отрывать от следующего» тоже корректно отображаются во всех форматах и редакторах.
Символы



Нет никаких проблем за исключением двух:


  • О надчеркивании можно забыть

  • Гиперссылки удаляются при открытии odt через MSO


Списки



Тоже все хорошо в doc и docx. В odt смещаются отступы списков.
Изображения



Если коротко — пользуйтесь doc. Никаких проблем с изображениями в ваших документах не будет.
Таблицы



Аналогично предыдущему пункту — doc показал себя и здесь лучше всех.
Рецензирование



Если любите odt, о переносимости можете забыть! MSO удаляет все данные об изменениях из документа без вашего согласия.
Поля



Вроде как все везде корректно, но после долгих тестов пришел к выводу — не используйте специальные поля в ваших документах (кроме номера и количества страниц, конечно).
Формулы



Здесь docx вне конкуренции. Отличное отображение формул и возможность редактирования (правда с левосторонними индексами не очень — их просто нет).
Сноски



Все форматы показали себя хорошо, один только docx решил использовать числа при буквенной нумерации сносок, но ведь это не страшно, правда?

Мой вердикт




Если нужен договор, письмо и подобная бизнес-документация, используйте doc. Отлично обрабатывается как форматирование текста, так и различные вставки (кроме формул).

Нужно писать доклад, диссертацию или курсовую? Используйте docx и никаких проблем с формулами у вас не будет.


У вас красные глаза линуксоида и вы ведете курсор в сторону «Не нравится» с мыслями — «odt forever!!!»? Нет моей вины в том, что odt показал себя хуже других. Почему-то все odt файлы не хотели нормально открываться в MSO и требовали «Восстановить документ». С чем это может быть связано — не знаю, документы создавал по правилам, никаких плясок с бубном над используемым LO не устраивал. Возможно дело в версии (у меня LO 3.5)?


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Об особенностях реализации префиксного энтропийного кодирования для больших алфавитов

Думаю, всем читателям хабра хорошо известны алгоритмы энтропийного сжатия с использованием префиксных кодов (алгоритмы Шеннона-Фано, Хаффмана и др.). Особенностью этих алгоритмов является тот факт, что длина кода определённого символа зависит от частоты этого символа в закодированном сообщении. Соответственно при декодировании сообщения необходимо иметь таблицу частот. Данная статья посвящена рассмотрению малоизученной, но важной задачи – передаче частот исходного алфавита.

В начале давайте рассмотрим основную идею, лежащую в основе энтропийного префиксного кодирования. Пусть у нас есть сообщение, состоящее из букв русского алфавита, например, «КУКУШКАКУКУШОНКУКУПИЛАКАПЮШОН». В этом сообщении встречается всего десять различных символов {К, У, Ш, А, О, Н, П, И, Л, Ю}, а значит, каждый символ может быть закодирован с использованием четырёх бит.



То есть всё сообщение при таком наивном блочном кодировании будет занимать 116 бит.

Но символам можно поставить в соответствие другие коды, например:



При использовании кодов из Табл. 2 длина сообщения составит уже 90 бит, а выигрыш более 22%. Внимательный читатель заметит, что коды в Табл. 1 имеют постоянную длину, а значит могут быть легко декодированы. В Табл. 2 коды имеют переменную длину, но они обладают другим важным свойством – префиксностью. Свойство префиксности означает, что ни один код не является началом никакого другого кода. Для любого префиксного кода может быть построено соответствующее дерево, с помощью которого можно однозначно выполнить декодирование сообщения:



Если договориться, что считанный из закодированного сообщения нулевой бит соответствует движению по дереву влево, а единичный бит – движению вправо, процесс декодирования становится очевидным.

Тут же возникает вопрос, существует ли алгоритм, позволяющий построить кодовое дерево с минимальной избыточностью. Хаффман в своей работе не просто доказал, что такой алгоритм существует, но и предложил его. С тех пор алгоритм построения кодового дерева с минимальной избыточностью носит его имя. Основные шаги алгоритма Хаффмана приведены ниже:


  1. Все символы алфавита представляются в виде свободных узлов, при этом вес узла пропорционален частоте символа в сообщении;

  2. Из множества свободных узлов выбираются два узла с минимальным весом и создаётся новый (родительский) узел с весом, равным сумме весов выбранных узлов;

  3. Выбранные узлы удаляются из списка свободных, а созданный на их основе родительский узел добавляется в этот список;

  4. Шаги 2-3 повторяются до тех пор, пока в списке свободных больше одного узла;

  5. На основе построенного дерева каждому символу алфавита присваивается префиксный код.




Для нашего сообщение дерево Хаффмана будет выглядеть следующим образом:



Закодированное с помощью алгоритма Хаффмана сообщение будет занимать всего 87 бит (выигрыш 25% по сравнению с блочным кодом).

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

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

Если использовать традиционный подход, когда передаётся таблица элемент – соответствующий код, накладные расходы становятся настолько большими, что об эффективном сжатии можно забыть. Передача вида элемент – частота тоже не лишена недостатков:


  1. На плечи декодера ложится вычислительно сложная задача построения кодового дерева;

  2. Разброс частот составляет несколько порядков, и стандартная вещественная арифметика не всегда позволяет точно его отобразить.




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

Договоримся о порядке обхода построенного кодового дерева, например, будем использовать обход в ширину. Если в процессе обхода встречается делящий узел дерева, то передаётся бит 0, если же в процессе обхода был обнаружен лист, то передаётся бит 1 и k бит, кодирующих соответствующий элемент базы. В итоге на каждый элемент базы передаётся всего 2 дополнительных бита.

Указанное представление обратимо: то есть для каждой строки, построенной описанным способом, можно построить исходное кодовое дерево. Помимо очевидной экономии памяти предложенный способ передачи избавляет от необходимости строить кодовое дерево при декодировании тем самым существенно повышая скорость декодирования. На рисунке показано представление двоичного дерева в виде битовой строки с помощью описанного метода:



При описанном способе кодирования объём передачи значительно сокращается. На рисунке показаны объёмы передач при использовании описанных способов передачи базы:



Но даже этот метод можно существенно улучшить. При кодировании и декодировании нам абсолютно не важно относительное (в пределах уровня) расположение узлов, поэтому можно выполнять процедуру перетасовки узлов, заключающуюся в перемещении всех листьев в левую часть дерева, а делящих узлов в правую. То есть дерево:



Преобразуется в дерево



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

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

P.S. Даже в случае полностью построенного дерева Хаффмана, задача получения кода элемента из элементарной в случае небольших массивов превращается в практически неосуществимую, что в конечном итоге привело к возникновению принципиально нового вида бинарных деревьев. Если кому-то это будет интересно, я с удовольствием напишу ещё один топик.

P.P.S. О предложенном методе сжатия видео я тоже обязательно расскажу, но чуть позже.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Использование DSP звуковой платы SB Live! на пользу радиолюбителей (KX Driver's) — Часть [1/2]



Эксперименты по обработке звука аппаратными средствами SB Live и их возможное применение для работы в эфире. Заметка включает в себя инструкцию по применению альтернативных драйверов KX-Project, примеры применения и выводы по возможности реального применения. Период написания статьи 2006-2007 год, размещена была на страничке ныне уже не существующей коллективной радиостанции (RK3MXH). Авторство мое.

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


Под катом очень много текста и рисунков.


Содержание

Введение

1.1.Kx-project — альтернативные драйверы

1.2.Наиболее поравившиеся возможости и чего удалось достичь

2.Установка

3.Первые проблемы после установки и их решение

3.1.Куда пропал звук?

3.2.Пропал MIDI-звук

3.3.Странная работа работа программ, работающих со линейными/микрофонными входами(звукозапись, программные DSP)

4.Управление и настройка

4.1.КХ микшер — Мастер

4.2.КХ микшер — Входы и выходы

4.3.КХ микшер — Запись

4.4.КХ микшер — AC97

5.Более подробные инструкции

6.Описание объектов DSP

7.Примеры использования

7.1.Простые схемы соединений

7.2.Запись сигнала

7.3.Работа со SpectraLab

7.4.Работа с программными DSP

8.Примеры использования в радиолюбительских целях

8.1.CW — фильтр

8.2.SSB — фильтр

8.3.Notch — фильтр

8.4.Обработка сигнала с микрофона

8.4.1.Эквалайзер

8.4.2.Реверберация

8.4.3.Прочее

Продолжение


Введение




Многие радиолюбители используют компьютеры в своих шеках. В основном, конечно, для ведения аппаратного журнала. Но с ростом производительности персональных компьютеров сфера их применения стала расширяться. Радиолюбители стали использовать ПК для обработки принятого сигнала и формировании сигнала для передачи(цифровые виды связи). Так же появились программы-фильтры(DSP-фильтры), «эмулирующие» работу настоящих фильтров, позволяющие оперативно менять полосу пропускания, подавлять шум и т.д. Все эти программы для обработки сигнала используют вычислительную мощность центрального процессора ПК, что требует от него определенной производительности. Звуковая плата используется только как ЦАП/АЦП. Никакими аппаратными возможностями звуковых карт обычно не пользуются.

Серия звуковых карт компании Creative Labs всегда радовала своим качеством. Начиная с модели SB Live и выше — карточки оснащены специальными сигнальными процессорами (DSP) EMU10K1 (различные модификации SB Live, Audigy) и более совершенными EMU10K2 (Audigy2). Драйверы стандартной поставки к этим картам поражали воображение по количеству настроек звука(эквалайзер, реверберация и т.д.), которые реализовались аппаратно самой картой. Аппаратная реализация звуковых эффектов позволяла достигать отличного результата при минимальных нагрузках на систему (до сих пор помню впечатления от игры в Quake 2 на компьютере Pentium-166 с картой SB Live и 3D звуком). С тех пор я окончательно «запал» на SB Live! и использую до сих пор(к сожалению, уже не так).


Получив максимум возможностей, сервиса и удовольствия от прослушивания музыки с помощью этой платы, я стал задумываться об использовании аппаратных возможностей SB Live! для обработки звука при работе в радиоэфире. Оказалось, что в наборе фильтров и эквалайзеров есть фильтры Notch(для подавления определенной частоты) и BandPass(для выделения опрделенной частоты), фильтр LowPass. Фильтр HighPass(пропускает только частоты выше определенной), а фильтр LowPass(только ниже определенной частоты). Фильтры LowPass, HighPass и Notch могут быть использованы при работе с SSB, а BandPass для приема телеграфа. Есть так же мноество других фильтров, которые можно использовать как для обработки передаваемого сигнала, так и для формирования своего уникального сигнала на передачу.


Объем изложенного материала оказался достаточно большим, так как я попытался описать все максимально понятно и с большим количеством примеров. Я вообще считаю, что чем больше примеров, тем проще разобратьтся. Так же одной из причин явилось то, что уже трое знакомых мне людей, попробовав KX-драйверы, отказались от их использования(для кого-то слишком много возможностей, кто-то не разобрался с воспроизведением MIDI и записью). Поэтому сначала будет рассмотрена установка KX-драйверов; затем будут описаны первые возможные трудности и проблемы, с которыми может столкнуться пользователь и их решение; после этого будут рассмотрены элементы управления и настройка; далее будет рассмотрено несколько примеров настройки DSP для прослушивания звука; запись сигнала; работа со Spectra Lab и программным DSP; потом пойдут примеры использования в радиолюбительских целях; затем будут предоставлены записи с эфира с обработкой DSP звуковой платы. В предпоследней части я рассмотрю проблемы и ограничения при использовании платы. В конце изложения попробую сделать выводы о полезности использования звуковой платы SB Live! в радиолюбительских целях.


Надеюсь, что после прочтения данной статьи появится больше как пользователей звуковых карт с чипами EMU10k1/k2 так и пользователей KX-драйверов, а информация в статье научит основным принципам их использования. Если после прочтения все-таки останутся какие либо вопросы, то мне будет интересно попытаться решить их вместе с вами.


Хотя данные карты уже уходят в историю, но они бывают доступны на вторичном рынке, у кого-то лежат на полке. Карта могут оказаться приятным сюрпризом для музыканта. Хорошо работает с ASIO, причем одновременно со стандартным выводом звука Windows (чего нет на моей нынешней USB звуковой плате), обладает низкими задержками.


1.1.Kx-project — альтернативные драйверы

Следующим сюрпризом со стороны карт этой серии стали альтернативные драйверы, написанные группой разработчиков во главе с Евгением Гавриловым. Они позволили использовать скрытые возможности процессора звуковой платы SB Live!.. Драйвер соответствует спецификации WDM (Windows Driver Model) и может работать в следующих операционных системах: Windows XP, Windows 2000, Windows 98 (только Second Edition) и Windows Me.


При установке драйвера становятся доступными следующие функции:

— запись и воспроизведение звука в MME-программах Windows;

— запись и воспроизведение звука в ASIO-программах (Steinberg Cubase и Nuendo, Logic Audio);

— использование внутреннего процессора для обработки эффектами как отдельных треков многодорожечного проекта, так и всего аудио- и MIDI-потока, поступающего на выход звуковой платы;

— 16 независимых шин, используемых при внутренней коммутации сигналов и эффектов; — от четырех до восьми (в зависимости от применяемой звуковой платы) независимых аналоговых выходов;

— MIDI-синтезатор, «понимающий» формат SoundFonts;

— DirectSound 2D;

— DirectSound 3D (программная имитация, работает только в режиме с двумя громкоговорителями);

— полное управление вводом-выводом AC97;

— программное AC-3 декодирование;

— изменение микрокода DSP (для инженеров и разработчиков);

— изменение внешнего вида интерфейса при помощи «скинов».


Кроме того, все внутренние соединения (блоки эффектов, маршруты прохождения сигналов от входа платы до любого из ее выходов и шин) можно программировать при помощи очень простого и наглядного интерфейса.[1]


1.2.Наиболее поравившиеся возможости и чего удалось достичь.

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


Вот несколько примеров:


1.Можно запустить две программы воспроизведения звука(например wimamp). Один настроить на первую виртуальную карту, второй — на вторую. Далее сигналы отправить: один на фронтальный выход, второй сигнал на тыловики. И если подключить к зелёному разъему на карте одни наушники, а к чёрному другие, то два человека могут не мешая друг другу слушать разную музыку.


2.Если требуется время от времени воспроизводить звук то на наушники то на колонки, то постоянно приходится «перетыкать» разъемы(или использовать какой либо внешний разветвитель). В случае с SB Live можно подключить колонки к одному стереовыходу, а наушники к другому и «расщепить» сигнал на два выхода. Плюс к этому сигнал для колонок и для наушников может быть по-разному обработан(т.к. АЧХ разная, а в наушниках хотелось бы еще слышать, например, эхо).


3.Сигнал со входа карты(mic/line/cd) может быть в реальном времени обработан и подан на выход. Например сигнал с магнитофона (обработкой эквалайзером), с микрофона (эквалайзер, лимитеры, компрессоры, эхо), с электрогитары(эквалайзеры, лимитеры, компрессоры, дисторшны, флэнжеры, эхо), с ТРАНСИВЕРА!(эквалайзеры, notch и CW фильтры).


2.Установка


Для установки драйверов их необходимо «скачать» с сайта разработчиков www.kxproject.com. Там же есть инструкции по использованию, в том числе и на русском языке.


В целом установка драйвера не должна вызвать сложностей и проблем.


Запускаем exe файл с установщиком и следуем инструкциям


image


image


image


image


image


image


image


image


image


image


image


image


image


image


image


image


image


Установка закончена. Для проверки можно зайти в диспетчер устройств.


image


image


image


В панели задач добавляется пункт для запуска микшера.


image


После перезапуска компьютера или запуска Kx mixer в системном трее(возле часов) появится значек KX.


image


Если дважды щелкнуть мышью по значку — откроется основное окно системного микшера с закладками и кнопками для управления картой.


image


Нажатие правой кнопки на значке в трее вызовет контекстное меню с дополнительными настройками.


image


Установка закончена. Можем поздравить себя с началом долгого пути в изучении управления сложного продукта под названием KX Project.


3.Первые проблемы после установки и их решение


Дополнительные возможности управления картой оборачиваются и определенными сложностями. Большое количество настроек пугает. Из-за этого некоторые пользователи не до конца разобравшись в возможностях, отказываются от Kx-драйверов в пользу стандартных.


3.1.Куда пропал звук?

Сразу же после установки оказывается так, что звук перестает воспроизводиться. Например, WinAmp играет, а звука нет. Это связано с тем, что по умолчанию передние и задние колонки поменяны местами. Это связано с тем, что для выхода на тыловые колонки карта имеет более качественный ЦАП. Для того, чтобы звук «появился» — нужно или переподключить колонки(наушники) из зеленого разьема в черный(тыл). Либо в настройках снять галочку «Поменять местами Тыл и Фронт».


image


3.2.Пропал MIDI-звук

MIDI-синтез не работает сразу после установки потому, что по умолчанию не загружен никакой банк инструментов. Профессиональные специалисты по звукозаписи имеют различные банки с инструментами и подгружают их по необходимости. Но если под руками нет ничего подходящего или вы просто не знаете, что такое банк инструментов, то есть один выход. В системе Windows в папке \system32\drivers есть файл 2gmgsmt.sf2, который является самым простейшим банком с инструментами. Его и можно использовать. Для этого нужно открыть закладку Kx SoundFont, нажать + «Загрузить SoundFont»


image


и выбрать файл, например c:\windows\system32\drivers\2gmgsmt.sf2


image


нажать на галочку


image


image


Банк успешно загружен. Теперь можно слушать караокэ, рингтоны и прочее, что использует MIDI-звук.


3.3.Странная работа работа программ, работающих со линейными/микрофонными входами(звукозапись, программные DSP)

Обычно выбор источника сигнала для записи происходит на системном микшере через закладку «запись»(Системный мишер->Параметры->Свойства). После же установки Kx-драйверов, оказывается, что здесь применяется другой подход. Более того — может оказаться так, что в наушниках слышно сигнал с входа, а запись его не производится. Еще более странно работают программы с обработкой звука со входов в реальном времени, ктоторые получают сигнал, обрабатывают его и выводят на динамики. Они либо вообще не получают сигнала, либо, когда в процессе экспериментов с настройками платы сигнал все-таки удается подать на запись, начинают захлебываться в эхе своего собственного сигнала. Это связано с особенностями записи звука в Kx-системе. В качестве лирического отступления стоит заметить, что система Kx по управлению картой предусмотрена для профессионалов в области звукозаписи(для которых все эти нюансы понятны, в отличии от меня) и поэтому используются соответствующие приемы управления.


4.Управление и настройка


Далее будут рассмотрены приемы работы с элементами управления. Системный микшер содержит только основные элементы управления. Элементы управления системы KX рассматриваются при настройках по умолчанию. Элемент KX Рутер в данной статье не рассматривается, из за не достаточного iq автора этой статьи. Элемент KX Редактор позволяет редактировать непосредственно код цифровых фильтров. Те кто зают как это делать могут данную статью не читать вообще, т.к. ничего нового для себя не найдут. Элемент KX Автоматизация, насколько удалось понять, используется для управления параметрами фильтров через MIDI-устройства. Более подробно не изучено по той же причине, что и KX Рутер. KX Пульт не реализован в драйверах(пока). KX SoundFont позволяет загружать MIDI-банк(и), рассматривалось выше.


4.1.КХ микшер — Мастер

Двойное нажатие по значку KX в трее или выбор по правой кнопке мыши из контекстного меню пункта «KX микшер» откроет окно управления микшером. По умолчанию открывается закладка «Мастер», в которой происходит управление общим уровнем выхода и отдельно уровнями PCM (выходы всех аудиопрограмм) и MIDI.

Кнопочки, расположенные на апплете вместе с фейдерами, позволяют включать и отключать цифровой и аналоговый выходы платы и, что интересно, менять местами фронтальные и тыловые каналы мониторинга. По умолчанию, кстати, после установки драйвера основными каналами мониторинга становятся именно тыловые каналы, так что не забудьте переключить миниджек, которым подключена ваша мониторная система, из фронтального выхода звуковой платы в тыловой. Сделано это для того, чтобы использовать для мониторинга более высококачественный небуферизованный выход тыловых каналов. Впрочем, если вас это не устраивает, всегда можно снять «галку» под надписью «Поменять местами фронт и тыл», стоящую там по умолчанию, и мониторить по-старому.[1]


image


Ряды кнопок слева и снизу отображаются всегда не заисимо от выбранной закладки:

Слева, свеху-вниз расположены кнопки: «Мастер» с основными настройками; «Входы и выходы», «Запись», «AC97 кодек», «Эффекты», «SoundfFont», «Анализатор».


Снизу, слева-направо расположены кнопки: «KX DSP», «KX Router», «KX Автоматизация», «Помощь», «Провера колонок».


4.2.КХ микшер — Входы и выходы

На закладке «Входы и выходы» расположены регуляторы уровней мониторинга отдельно фронтального и тылового каналов, уровня цифрового SPDIF-выхода и выхода для наушников (в качестве которого может использоваться выход субвуфера и центрального канала — если они есть, конечно).

Перечисленные органы управления доступны при использовании плат SB Live! и Value, с другими платами картина может сильно отличаться — появляются дополнительные цифровые и аналоговые выходы. Замечу, что положение регуляторов, расположенных на этой закладке, не влияет на уровень записываемого сигнала, а лишь регулирует его громкость в мониторах в процессе записи и, естественно, воспроизведения.[1]


image


4.3.КХ микшер — Запись

Органы управления, расположенные на закладке «Запись», позволяют установить желаемый уровень сигнала для записи с каждого из имеющихся входов. Уровень сигнала, приходящего с линейного и микрофонного входов, устанавливается регулятором АС97 (несложно догадаться, что за этим фейдером скрываются еще несколько входов, о них — чуть позже). Там же находятся два фейдера, позволяющие регулировать отдельно уровень записи эффекта (по умолчанию — ревербератора и хоруса), если вдруг возникнет необходимость записать аудио- или MIDI-сигнал с выхода платы, обработав его при этом имеющимися эффектами.[1]


image


4.4.КХ микшер — AC97

Страничка «AC97-кодек» (Audio Codec 97) управляет выходами и входами AC97-кодека.


image


Выходы:

«TAD Out» — выход на внешнее телефонное устройство (моно). Представляет собой четырехконтактный разъем, расположенный непосредственно на плате и обозначенный «TAD».

«PCSpkr» — моновыход на PC-спикер. Расположен там же на плате.


Входы:

«TAD In» — аналогично TAD Out, только наоборот: вход с внешнего устройства.

«Аналоговый CD-вход» — вход для подключения аналогового выхода CD-ROM. Не путайте его с электрическим входом для записи с цифрового выхода CD-ROM, регулятор которого расположен на вышеупомянутой закладке «Запись».

«Микрофон» — моновход для подключения конденсаторного микрофона.

«Видео вход» — стереофонический аудиовход для записи с внешнего источника видео. В большинстве КХ-совместимых звуковых плат отсутствует.

«AUX» — дополнительный вход, расположенный непосредственно на плате и обозначенный «AUX_IN».

«Line In» — линейный вход; основной вход, используемый для записи. Трехконтактный миниджек, расположен на задней стороне платы.


Дополнительные органы управления:

«Reset» — сброс всех настроек микшера к их исходному состоянию.

«Mic Boost» — увеличение сигнала с микрофонного входа на 20дБ.

«3DSE» — условно-полезная функция управления режимами 3-D звука. Доступны следующие значения: «Выкл.», «Мало», «Средне», «Много».

«Источник АС97» — источник записи. Из всего набора входов одновременно запись может быть произведена только с одного из них — того, который будет выбран из этого выпадающего меню. Исключение составляет случай, когда выбирается режим «СтереоМикс» (или «МоноМикс»). Тогда на запись идет сумма со всех входов плюс выходной РСМ-сигнал — системный звуковой выходной сигнал. Подробная блок-схема звуковой платы и пути прохождения сигналов представлены на следующем рисунке. Соединения, образующиеся при включении режима «СтереоМикс», обозначены пунктирной линией.[1]


5.Более подробные инструкции


В процессе написания, кстати, еще раз убедился в двух пословицах/поговорках: «не стоит изобретать велосипед» и «если ничего не помогает — пора почитать инструкцию». Тем более, что наконец-то удалось получить официальную инструкцию на русском языке.


imagekxhelp_ru.chm


6.Описание объектов DSP


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


Итак. Рассмотрим стандартную конфигурацию соединений драйвера.


image


Основные элементы схемы:


1.Объекты из которых исходят входные сигналы(физические входы, виртуальные потоки сгенерированные компьютером);

2.Router;

3.Объект в которые выходит обработанный сигнал(физические выходы, ASIO);

4.Объекты обработки сигнала(эффекты);


1.Входные сигналы.


— внутренние сигналы, генерируемые операционной системой: волновой (Wave) сигнал — звук, воспроизводимый приложениями такими как WinAmp, SoundForge и прочие; выходы MIDI синтезатора при воспроизведении mid файлов или при работе других программ, которые получают звук, используя синтезатор звуковой платы(CakeWalk).

— Внешние сигналы, поступающие на физические входы звуковой платы: линейный вход, микрофонный вход, вход с CD-ROM'а.


Внутренние входные сигналы на схеме внутренних соединений выходят из объекта FXBus









image
FXBus — виртуальные 'потоки', идущие от звуковой платы к окну DSP. Весь звук, который генерируется на компьютере музыкантами и программами-секвенсорами, проходит через один или несколько из них (обычно в стерео парах).

Настройки по умолчанию:


Волновой (Wave) выход левый и правый — в FXBus 0 и FXBus 1. Выход MIDI синтезатора левый и правый — в FXBus 02 и FXBus 03. Surround (AC3) и DirectSound 3-D — расположены от FXBus 04 до 09.[2]


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


image


По умолчанию обычно выбирается вывод на «Первичный звуковой драйвер» или "...0/1". В этом случае аудиосигнал будет сниматься со входов 0 и 1 объекта FXBus. Но есть возможность перенаправить вывод на другие «карты»: "...4/5", "...6/7" и "...8/9". В этом случае сигнал будет появляться на других входах. Это позволяет работать одновременно нескольким программам вывода звука не смешивая сигнал и обрабатывая его раздельно. Разные сигналы могут выводится на разные физические выходы(например два независимых WinAmp'а один из которых играет в наушниках, а другой в колонках) или определенным образом взаимодействовать друг с другом(смешиваться и пр.).



Внешние входные сигналы на схеме внутренних соединений выходят из объекта Prolog









image
Входы звуковой платы располагаются в объекте пролог. Другими словами, выходы на прологе представляют собой физические входы на вашей звуковой плате (на фронтальной части платы, дочерних платах или внешних устройствах, связанных с платой). Эти разъемы — стерео пары и соответствуют нижней строке фэйдеров, расположенных на вкладке «входы и выходы» окна kX микшера.

Обратите внимание, что эти фэйдеры не затрагивают параметров записи, но в действительности затрагивают уровни ASIO.


На платах 10k1 пролог представляет следующие входные сигналы (7 стерео пар):


In0/1: AC97 — левый/правый

In2/3: CD Цифровой — левый/правый

In4/5: I2S — левый/правый

In6/7: Coaxial / Optical — левый/правый (LiveDrive)

In8/9: Line 2/mic 2 — левый/правый (LiveDrive)

In10/11: Coaxial / Optical — левый/правый (LiveDrive/дочерние платы)

In12/13: AUX 2 — левый/правый (LiveDrive)

[2]



2.Router(машутизатор сигналов)


Routing









image
Объект маршрутизации (routing) производит микширование всех поступающих сигналов и распределение посылов на правильные выходы (эффекты, запись и т.д). Routing микширует входы пролога с сигналами FXBus и направляет их на различные выходы, в зависимости от ваших параметров настройки микшера, включая фронт, тыл, центр, сабвуфер, наушники и, не в последнюю очередь, настроек записи (но не ASIO записи).[2]

Другими словами этот объект осуществляет все манипуляции с полученным звуком, управляя его перенаправлением на физические выходы, на запись или на ASIO. Работая с фейдерами на закладках KX Микшера, мы влияем именно на этот объект. В принципе можно непосредственно соединить выходы объектов входных сигналов со входами объекта физических выходов карты, не используя объекта Routing, и получить звук на выходе. Но в этом случае окажутся неработоспособными системный микшер и KX Микшер.



3.Объект в которые выходит обработанный сигнал(физические выходы, ASIO);









image
Эпилог представляет собой физические выходы вашей звуковой платы, включая входы на запись и 16 входов на ASIO запись.

Обычно, соединены все выходы, но в некоторых случаях (например, установка двух колонок) вам необходима только одна пара кабелей, которая соединяется с выходами на колонки.


Соединения на запись сделаны согласно параметрам настроек вкладки запись окна kX микшера. Обратите внимание, что эти параметры настройки затрагивают только фактическую запись, а не то, что вы слышите. Также, это не затрагивает ASIO запись.


Последние 16 каналов — входы на ASIO запись. Они связаны в стерео пары (четный/нечетный равные левый/правый), когда ASIO запись установлена в режим стерео записи.


Вы можете подключить к этим входам любой выход любого объекта.[2]


Out0/1: Аналоговый фронтальный выход левый/правый;

Out2/3: Основной SPDIF выход левый/правый;

Out4/5:SPDIF1 выход левый/правый;

Out6/7:SPDIF2 выход левый/правый;

Out8/9: Аналоговый тыловой выход левый/правый;

Если в настройках поставлена галочка «Поменять местами Тыл и Фронт» то у названия этих входов (0, 1, 8 и 9 будет в квадратных скобках подписано [swapped])

Out17: Аналоговый центр;

Out18: Аналоговый subwoofer;

Asio0..Asio15: входы на ASIO запись;



4.Объекты обработки сигнала(эффекты)


С помощью этих элементов мы сможем поводить различные манипуляции над звуком.








































































































































































Изображение объектаОкно управления объектом

(клик для увеличения)
Назначение

Описание
Основные
image Микшер.Стерео микшер на 5 входов с одним выходом
image Микшер.Стерео микшер на 5 входов с двумя выходами.
image Микшер.Стерео микшер 2 входа с одним выходом.
Микшер.Стерео микшер 2 входа с одним выходом(уровень сигнала в dB).
image Кроссфейдер.Позволяет произвести плавный переход от одного сигнала к другому(почувствуй себя диджеем). Gain регулирует усиление сигнала.
image Стерео->Моно.Мономикс для преобразования стерео сигнала в моно.
image

image


Баланс.Объект для регулировки баланса(x2 звучит погромче).
image Громкость(стерео).Стерео регулятор уровня сигнала.
image

image


Усиление сигнала(dB).Регулятор усиления сигнала в dB. GainHQ позволяет раздельно регулировать каждый канал.
image Громкость(моно).Моно регулятор уровня сигнала.
image Громкость(моно+).Моно регулятор уровня сигнала+DC(видимо постоянный ток).
image Индикатор уровняОтображает уровень сигнала, поступающего на вход. Может отображаться как вертикально так и горизонтально. Очень полезный объект. Позволяет контролировать уровень сигнала в частях схемы, которые не могут быть проконтролированы на слух. Позволяет придерживаться уровня 0 dB во всех звеньях цепи.
image -Поворот фазыРазворачивает фазу сигнала на 180 градусов(определил опытным путем: при сложении исходного сигнала с сигналом, прошедшим через этот объект — получается тишина).
image -СумматорСкладывает три сигнала.
image СумматорСкладывает стерео и моно сигналы, имеется возможность регулировки уровня сигнала.
image -ДелительДелит сигнал на 4.
image -УмножительУмножает сигнал на 4.
image -XORНазначение не удалось определить.
Фильтры и эквалайзеры
EQ Pandpass(ФСЧ).Фильтр, попускающий только выбранную частоту с указанной добротностью(он же CW фильтр).
EQ Notch.Фильтр, выезающий определенную частоту с указанной добротностью(он же Notch филтр).
EQ Highpass(ФВЧ).Фильт, пропускающий только выше определенной частоты с указанной добротностью.
EQ Lowpass(ФНЧ).Фильт, пропускающий только ниже определенной частоты с указанной добротностью.
Так же есть фильтр ВЧ и НЧ, 10-ти полосный эквалайзер. Есть так же дополнительные фильтры ufxsetup36. Очень замечательный набор из 10-ти полосного эквалайзера, параметрического и прочих вышеуказанных фильтров с удобным и понятным интерфейсом.
Эквалайзер.10-ти полосный графический стерео эквалайзер.






Эквалайзер(моно/стерео).Параметрический стерео эквалайзер. Тип переключается:



Эквалайзер(моно/стерео).Параметрический 5-ти полосный стерео эквалайзер. Типы переключаются.(просто сказка!)

Здесь были показаны только стандартные и самые интересные, на мой взгляд, компоненты. С остальными, думаю, будет интересно разобраться самостоятельно: APS Pitch — сдвиг частоты, компрессоры, ревербераторы, генераторы сигнала и шума, Decimator для преобразования битности и дискретизации звука(1-32 бита, 1-48000 Герц), и прочее.


7.Примеры использования




Далее будут приведены сначала простейшие схемы, а затем примеры использования KX драйверов для различные применений.
7.1.Простые схемы соединений



Один к одному. Соединяем выходы программного звука Windows с выхода объекта FXBus с физическим выходом карты. В результате имеем звук на фронтальных колонках. Это минимальная работающая схема.


Соединяем выходы программного звука Windows с выхода объекта FXBus с физическими выходами карты. В результате имеем звук на фронтальных и тыловых колонках. Уровень сигнала можем посмотреть с помощью объета Peak.


Соединяем выходы программного звука Windows с выхода объекта FXBus с физическими выходами карты. В результате имеем звук на фронтальных и тыловых колонках. Сигнал на фронталные колонки проходит через 10-ти полосный графический эквалайзер, а сигнал на тыловые колонки — через регулятор тембра. Так же добавлены индикаторы уровня сигнала. На картинке изображены индикаторы уровня и элементы управления эквалайзером и тембром.


Соединяем выходы программного звука Windows с выхода объекта FXBus с физическими выходами карты. В результате имеем звук на фронтальных и тыловых колонках. Сигнал на фронталные колонки проходит через 10-ти полосный графический эквалайзер, причем каджый канал может быть настроен отдельно. Сигнал на тыловые колонки — через регулятор тембра. Так же добавлены индикаторы уровня сигнала. На картинке изображены индикатор уровня и элементы управления эквалайзером и тембром.


Внесение изменений в стандартную схему для вывода звука на тыловые и фронтальные колонки. Красными линиями указаны соединения, которые нужно создать — линии на физические выходы карты Analog Rear Left/Right. Перечеркнутые линии — линии которые пропадут после соединения.


При попытке добавить 10-ти полосный эквалайзер к стандарной схеме будет выведена ошибка о недостатке ресурсов и вследствие этого фильтр работать не будет. Для того, чтобы высвободить немного ресурсов можно удалить какие либо из неиспользуемых объектов, например Stereo Chorus и Reverb Lite. После их удаления можно будет построить схему, в которой выход на тыловые колонки проходит через 10-ти полосный эквалайзер, а на фронтальные — через регулятор тембра.


Добавим немного обема в сигнал при помощи компонента Reverb R.


Основной принцип, думаю, ясен. Схемы с использованием остальных объектов я оставляю на самостоятельное изучение :)


7.2.Запись сигнала

Для того, чтобы записать сигнал нужно сначала выбрать источник(на закладке «Запись»): физический или программный:



В случае если запись будет вестись с физического входа, то на закладке «AC97-кодек» выбрать источник:



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


Если есть необходимость производить мониторинг записываемого сигнала через колонки, то у соответствующих источников нужно выбрать соответсвующий уровень на закладке «Входы и выходы»:



Внимание! Если включить мониторинг сингала с AC97, а в качестве истотчника сигнала будет выбран моно- или стереомикс, то воспроизводимый сигнал вновь и вновь будет попадать на «вход» AC97 и воспроизводиться снова. Тем самым будет образовываться «кольцо». Если Уровень усиления будет меньше 0 db, то будет наблюдаться эхо, а если больше, то будет происходить самовозбуждение и сигнал через определенное время достигнет максимума. Будет слышен неприятный громкий звук.


Дальнейшая работа в программах звукозаписи не отличается от стандартных драйверов.


7.3.Работа со SpectraLab



В стандартной конфигурации звук, воспроизводимый программами windows, будет анализироваться программой Spectralab без дополнительных настроек kx-драйверов. Но есть два варианта работы.

1.Анализ сигнала с программных источников. Если зайти в kx-mixer на закладку запись, то мы увидим положения фейдеров «Мастер уровня записи», «Уровень записи Wave» и т.д. в ненулевом положении. Фейдеры управления физическими входами стоят в положении inf(отключены). В этом случае на вход звукозаписывающих программ пойдет сигнал Wave(генерируемый программами), а так же сигналы с других источников(если они есть).



Таким образом сигнал, выводимый программой winamp, будет воспроизводиться через мониторные системы и, попадая на канал записи, будет анализироваться программой SpectraLab.


На рисунке кружочком обведены линии, по которым сигнал попадает на входы RecL/RecR.



2.Анализ сигнала с физических входов. Для того, чтобы проанализировать сигнал с физического входа(например линейного), необходимо подать на запись сигнал с соответствующего входа. Для этого сначала на закладке «AC97-кодек» выбрать источник сигнала(например «Лин. Вход»), фейдером «Gain» поставить уровень усиления сигнала.



Затем на закладке «Запись» установить «Уровень записи с AC97-кодека».



После этого программа SpectraLab начнет анализировать входящий сигнал. Если так же есть необходимость в прослушивании входного сигнала, то на закладке «Входы и выходы» нужно установить необходимый уровень фейдером «Вход AC97».



Так же при помощи сигнала с AC97 можно проанализировать и звук с программных источников, если в качестве источника выбрать моно- или стереомикс.


7.4.Работа с программными DSP



Работа с программными DSP будет рассмотрена на примере программы DSP Filter Ver1.11 © JE3HHT 2000.

Программные DSP берут сигнал с источника, который выбран для записи, обрабатывает и программно воспроизводит. Для того, чтобы осуществить это в KX-драйверах необходимо проделать следующее:



  • на закладке «AC97-кодеке» выбрать источник «Лин.Вход.» и уровень сигнала(Gain).

  • на закладке «Запись» выбрать в качестве источника сигнала для записи «AC97» и подобрать необходимый уровень. ОБЯЗАТЕЛЬНО установить в положение «inf» фейдер «Уровень записи WAVE», чтобы обработанный программным DSP сигнал снова не попал на его вход(образуя кольцо).

  • на закладке «Входы и выходы» установить в положение «inf» фейдер «Вход AC97», чтобы не слышать исходный необработанный сигнал поверх обработанного программным DSP.




Так как обработка идет программным путем, то при помощи программы SpectraLab нет возможности просмотреть результаты работы программного DSP. Но в этом нет ничего стращного, т.к. DSP Filter имеет собственный анализатор спектра.


8.Примеры использования в радиолюбительских целях




На окне KX DSP мы видим определенную схему, с помощью которой соединяются входы и выходы. В «середине» расположены объекты обработки сигналов. В приведенных ниже примерах будет обрабатываться сигнал с линейного входа и подаваться на выход. Отличаться схемы будут только цепочками обработки звука. Основная часть будет всегда одна и та же. Поэтому в примерах схема целиком приводиться не будет.

Схему обработки сигнала с физических входов можно выполнить двумя способами:


1.Внося изменения в схему по умолчанию. В этом случае схему нужно будет скорректировать следующим образом: объект(ы) обработки сигнала включается в разрыв линий, идущих с объекта prolog(AC97 Left/Right) на объект xrouting; а чтобы результат обработки сигнала можно было увидеть в программе SpectraLab — нужно сигнал с выхода объекта(ов) обработки послать на вход записи epilog(RecL/RecR).



2.Создавая минимально необходимую схему. В этом случае на схеме DSP будет присутствовать только объект получения сигнала с физического входа, объект обработки сигнала, и объект вывода сигнала на физические выходы(и на анализ). Это позволяет сэкономить небезграничные ресурсы при схемах обработки, требующих больших объемов в памяти DSP.


Соединения производятся следующим образом: сигнал с объекта prolog(AC97 Left/Right) подается на объект(ы) обработки сигнала, а дальше на объект epilog(Analog Front Left/Right, Analog Rear Left/Right и RecL/RecR)



Регулировки уровня и необходимые для работы положения фейдеров на закладках:



  • AC7-Кодек — выбираем неободимый вход и уровень усиления по нему

  • Входы и Выходы — фейдером «Вход AC97» регулируем уровень обработанного сигнала. Причем при данных соединениях данный фейдер влияет как на уровень сигнала, который мы услышим через мониторные системы, так и на уровень сигнала, который пойдет на SpectraLab для анализа.

  • Запись — фейдером «Мастер уровня записи» можем менять уровень сигнала, идущего на SpetraLab для анализа. Фейдер «Уровень записи AC97-кодека» должен стоять в положении «inf» (!!!), иначе на анализ пойдет не обработанный сигнал.




Почему происходит именно так, а не иначе, я понять увы не в силах…
8.1.CW — фильтр



Простейший CW — фильтр реализуется с помощью объекта EQ Bandpass:


Выбираем частоту и добротность фильтра:



Результат фильтрации:



Чтобы увеличить добротность фильтра — можно сделать цепочку из нескольких объектов. Но если потребуется поменять частоту фильтра, то необходимо будет поменять параметры каждого объекта. Так же, в связи с тем, что обрабатываемый сигнал как правило моно, можно использовать оба канала объекта. Для этого сигнал подводится к левому входу объекта, с левого выхода обработанный сигнал подается на правый вход того же объекта и результат снимается уже с правого выхода:



Результат фильтрации:



Работать с таким фильтром в эфире достаточно сложно, поэтому необходимо предусмотреть его отключение на время поиска станции. Для этого можно применить один фильтр(как в первом варианте) для поиска и другой для работы. Для плавного переключения между ними можно использовать кроссфейдер:



Результат фильтрации:



8.2.SSB — фильтр



Простейший SSB — фильтр реализуется с помощью двух объектов: ВНЧ и ФВЧ(EQ Lopass и EQ Highpass)


Выбираем верхнюю, нижнюю частоту и добротность фильтра:



Результат фильтрации:



Если же схему немного усложнить и изменить параметры:



, то можно получить уже следующий результат:



8.3.Notch — фильтр



Notch — фильтр (используется для вырезания частот из сигнала) реализуется с помощью объектов EQ Notch, включенных последовательно:


Каждый фильтр работает на определенную частоту и моет быть выключен кнопкой «Байпас».



Сложность составляет оперативная и точная установка на нужную частоту: при управлении фейдером при помощи мыши точность установки много больше 1 Гц, а управление стрелками на клавиатуре очень медленное.


8.4.Обработка сигнала с микрофона



DSP процессор может быть использован не только для обработки принимаемого сигнала, но и для корректировки передаваемого в эфир. Так как KX-драйверы ориентированы именно на звукозапись и обработку звука, то выбор здесь очень большой: эквалайзеры, реверберация, компрессия и т.д.
8.4.1.Эквалайзер



Сигнал может быть обработан регулятором тембра или эквалайзером. Но регулятор тембра позволяет регулировать только НЧ и ВЧ. Графический эквалайзер имеет 10 полос: 31 Гц, 62 Гц, 125 Гц, 250 Гц, 500 Гц, 1 КГц, 2КГц, 4 КГц, 8 КГц, 16 КГц.


Как видно не все полосы могут быть использованы при работе SSB с полосой до 3 КГц. В таком случае на много удобнее использовать параметрический эквалайзер, в котором частоты можно выбирать произвольно.



Например RW3PS приводит следующую таблицу с параметрами[3] параметрического эквалайзера для обработки сигнала с микрофона:











































































































FiltrModFreqFineBandwidthGain
1PA63+570+14
2PA100060-3
3PA125+360+3
4PA160-3120-25
5PA200+360-3
6PA320+140+1
7PA400+660-15
8PA800+140-1
9PA1 K+15-5
10PA1.6 K-35-6
11PA2 K+145-3
12PA3.2 K05+1



Попробуем выполнить нечто подобное. Как видно, используется 12 полос. Можно взять либо 2 по 5 полос и 2 по одной полосе или 3 по 5 полос:


Заносим значения:



Останется только разобраться что такое Fine и правильно подобрать Bandwidth… :)


8.4.2.Реверберация



Добавить объем в сигнал позволят объекты реверберации.Параметры на вкус.

Объект Reverb Lite


Более «навороченный ревербератор» Reverb R из дополнительного набора имеет следующий вид:



Кроме ревербераторов можно поэкспериментировать с Delay A и Delay B.


8.4.3.Прочее



Интересный эффект получается от объекта Chorus(и Stereo Chorus). При помощи объекта APS Pitch пожно повысить или понизить голос на определенное количество полутонов. Noise Gate позволит реализовать подобие шумодава. Можно попытатьтся разобраться с широким выборов компрессоров: Dynamics Processor, APS Compressor, APS Expander.


И многое, многое другое.






Вообще, на мой взгляд, программной альтернативы по обработке звука с микрофона у KX-драйверов нет(со временем, мое мнение изменилось и я нашел программу AudioMulch и VST фильтры). Некоторое время назад я использовал трансивер UA1FA с микрофоном МД-60. Качество сигнала, по словам корреспондентов, было достаточно высокое. Но всем казалось странным то, что при мощности 100 Ватт меня так плохо слышно. Высказывались предположения о том, что в трансивере недостаточное усиление по микрофону. И действительно — регулировки усиления по микрофону в этом варианте трансивера нет. Чтобы проверить это утверждение я подключил на вход микрофона трансивера — линейный выход с компьютера(опытным путем подобрав уровень). В качестве микрофона использовалаcь гарнитура Dialog. Для обработки использовалась схема:


Элементы GainHQ и Peak использовались для того, чтобы после каждого фильтра уровень сигнала находился в районе 0 dB. Обект Noise Gate 2T использовался для подавления шумов в помещении, фильтры High и Lowpass для сужения полосы, десятиполосный эквалайзер для корректировки АЧХ и компрессор за компанию. В получившемся сигнале не было ярко выраженной ВЧ части(что нужно в контестах). Связь состоялась 23.09.06 1841 с UA1WU. Оператору было предложено сравнить качество и уровень сигнала с обычной конфигурацией. На мой скромный вопрос «есть ли какие либо изменения в сигнале?» Владимир ответил «КОНЕЧНО!!! уровень поднялся на 2 балла, сигнал получился насыщенным и объемным». Дальнейшее увеличение уровня сигнала приводило к перегрузке и искажениям в сигнале(связи c UA3QPF, RX3QK, RK3QZ 24.09.06 1820-1823).


Продолжение




Вся статья в один пост не помещается. Продолжение следует…

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.