Я с Евгением и списался, он мне написал возможную причину шумов и дал ссылку на драйвера эти. Насчет того, что графики нет я не в курсе.
Вставлю самое неинтересное из переписки:
-------------------------------------------------------------------------------------------------------------------------------
1. почему в KX при добавлении задержки(или микрозадержки) появляется столько шумов. Это связано с спецификой e-mu шного чипа или можно их переписать чтоб такого не было, поглядите пожалуйста ссылку https://forum.vegalab.ru/showthread.php?t=75379&page=3 пост номер47. Просто добавил задержку, и сразу такие шумы, при добавлении эквалайзеров и фильтров такого нет.
хмм.. интересный вопрос
сам дсп-код для ‘the delay’ определённо не может добавлять шумов
а на слух никаких тресков не появляется? (тогда это проблема PCI-шины) - для задержки используется TRAM-память, которая на самом деле системная память компьютера
2. вообще вроде странно что сигнал такой приходи, это измерения внутри самого DSP с ASIO на ASIO программно, АЦП и ЦАП не участвуют в обработке сигнала. Не пойму почему так.
либо проблема с передачей данных между памятью чипа и памятью ПК
либо ресэмплинг (SRC)
3. возможно-ли как-то сделать, чтоб частота дискритизации автоматом менялась у карты в зависимости от того что гонит плеер. Включили трек 24/96, карта включилась в 96000 и т.д.
карта с кХ-драйверами поддерживает только 48кГц, остальное всё аппаратно ресэмплится в 48кГц
особенного смысла использовать этот аппаратный ресэмплер нет - он не особенно качественный, современные программные SRC лучше
судя по тому, что в посте на форуме, на который Вы присылали ссылку, упоминается "kxctrl.exe -cs 44100", то там ДСП переключается в 44кГц режим
вероятнее всего, внутренняя работа с TRAM-памятью в чипе в этом режиме работает некорректно, поэтому и возникает двойной аппаратный ресэмплинг (44->48->44)
попробуйте без этой команды или в режиме 48000
в любом случае, а ASIO-драйвере и в ASIO-приложении выбирайте только ту частоту, которая фактически используется
4. Если мне нужно выводить просто звук с карты максимального качества, именно в плане качества звука штатные драйвера и KX обсолютно одинаковы, или есть разница?
Карта у меня e-mu 1820m. 10-2К чип вроде на ней.
Спасибо Вам заранее за подсказки есть найдется что подсказать…
1820m поддерживает “хитрые” режимы работы (как и вся линейка Е-му), когда звук вместо 16-бит+48кГц можно отправить данные вплоть до 32бит/192кГц, “разобрав” их на несколько каналов, а потом опять “собрав” - но эти режимы идут в обход имеющегося ДСП, т.к. большинство эффектов в поставке кХ работают только в режиме 32бит/48кГц)
насколько я помню, кХ-драйвера эти хитрые режимы не особенно поддерживают (я этот код так и не дописал до конца), максимум что можно сделать - это 24-бит 48/44.1кГц
соответственно, если у Вас много контента в формате 24/96 и выше, то кХ-драйвера не особенно пригодятся
я сделал другой вариант драйвера, уже исключительно для E-mu карточек (https://github.com/kxproject/kx-1010-driver) - там все хитрые режимы работают
но этот драйвер существует только в виде исходников, его надо самостоятельно компилировать
поэтому, если проигрывать hi-res audio, то лучше использовать “штатные” драйвера
------------------------------------------------------------------------------------------------
Если музыка в 16/44, то тогда кХ-драйвер вполне подойдёт. Главное лишь убедиться, что всё в DSP настроено правильно.
Да, и штатные драйвера, и кХ-драйвер могут играть звук на 16/44100 без преобразований.
По поводу TheDelay, думаю, что лучший способ убедиться - это попробовать прогнать 16/48 на 48кГц, а потом 16/44 на 44.1кГц (предварительно вручную выполнив ту команду kxctrl с соответствующей частотой). Я сам этот момент никогда не изучал, но, возможно, задержка (theDelay) и любые эффекты, использующие TRAM, проходят через аппаратный неотключаемый SRC.
Если при включенном TheDelay в 16/44 есть искажения, а на 16/48 их нет, то это подтверждает гипотезу. Соответственно, на 16/44 без theDelay искажений быть не должно.
Если гипотеза подтвердится, то тогда нужно использовать программные задержки. Аналогично, если в ДСП используются фильтры, которые используют external TRAM (xTRAM), то лучше их заменить программными.
Второй вариант - поставить в плейере высококачественный программный SRC до 48кГц и использовать звуковую карточку уже в её “родном” формате (48кГц).
Что там происходит с задержками в драйвере е-Му, к сожалению, я не знаю. Подозреваю, что там тоже может быть скрытый SRC, но это только опытным путём можно проверить.
Драйвер 1010 надо просто скомпилировать, он вполне готов к использованию, но для запуска на 64-битном Windows его нужно дополнительно подписать цифровой подписью, либо отключить проверку цифровых подписей в Windows. Но смысл компилировать этот драйвер есть только если планируется регулярно играть 24/96. Если hi-res контента мало, то смысла компилировать этот драйвер нет никакого.
В любом случае, на сравнительно быстрых современных ПК, программный SRC с 44 до 48 обычно значительно качественнее старого аппаратного. Поэтому тут две стратегии: либо использовать кХ в 44.1 без задержек и без эффектов, задействующих xTRAM, либо апсэмплить до 48кГц программно и использовать кХ на 48кГц с аппаратными задержками и эффектами. (Это при условии, что гипотеза выше про скрытый SRC для xTRAM подтвердится, и что на родных штатных драйверах та же проблема с задержкой / SRC).
Информации по чипам нет
Давным-давно, лет 15 назад, Creative Labs выложили куций opensource драйвер для Линукса, в котором были намёки на то, как и что нужно делать, чтобы заставить плату работать. Тогда я начал писать кХ-драйвер для Windows. Потом со мной связался программист Creative и прислал небольшой PDF по старому чипу (на условиях NDA). С тех пор с ними контактировать больше не удавалось. Для линейки E-mu вообще никогда не выходили подобные документы. Но opensource-драйвер для linux начали писать в проекте Alsa, им тоже под NDA иногда отправляли какие-то документы, но в публичном доступе этих документов никогда не было: можно было только, изучая исходники alsa linux driver, пытаться понять, “что же там”, и исправлять ошибки и добавлять функции в наш кХ-драйвер. Архитектура плат очень замороченная, т.к. поддержку всего, что выше 16 бит / 48кГц (да и “чистых" 44.1кГц) в Creative сделали весьма странно, чтобы по минимуму менять архитектуру чипа, поэтому звуковые платы E-mu программируются весьма непросто. А архитектурные решения там тянутся ещё со времён SoundBlaster AWE32
Кроме проверки качества программно-аппаратного звукового тракта с помощью графиков и RMAA я обычно использовал другой способ, чтобы уж на 100% быть уверенным. Брал некий большой документ (например, несколько фотографий, что угодно подойдёт) - на несколько десятков-сотен мегабайт, и загонял их в Rar-архив. Потом этот Rar-архив преобразовывал в PCM (в любом wave-редакторе открывал файл как RAW PCM, выставлял 16 бит, 48кГц) - сохранив такой файл уже в WAV-формате, отправлял его на воспроизведение в то аудио-приложение, которое проверял на качество аудио-тракта. (Например, ASIO/foobar). В другом приложении (или в том же, если оно поддерживало запись) запускал запись звука, в DSP выставлял запись loopback. (Теоретически, можно взять SPDIF-провод и поставить на запись SPDIF loopback, так тоже работает). Записанный WAV-файл пробовал открыть WinRar При воспроизведении такого файла сначала нужно только добавить 1-2 секунды тишины (это можно сделать ещё на стадии сохранения файла). Если файл открывался и распаковывался без ошибок, значит тракт bit-accurate, все данные прошли успешно, ни бита не изменилось. При таком тесте главное не забыть отключить все аналоговые выходы, а то колонки сгорят. И в записанном файле можно вручную удалить тишину в начале.
Социальные закладки