1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Scarlett 18i20 gen3 driver (и прочие gen3)

Тема в разделе "WASM.PROJECTS", создана пользователем SadKo, 10 янв 2021 в 16:05.

  1. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.582
    Адрес:
    г. Санкт-Петербург
    В общем, после приобретения Focusrite Scarlett 18i20 gen3 уже некоторое время плотно занимаюсь написанием драйвера микшера для Scarlett 18i20.

    Изначально драйвер разрабатывал Geoffrey Bennet, и вот его github-репозиторий: https://github.com/geoffreybennett/scarlett-gen2

    Я, купив девайс, пропатчил своё штатное linux-ядро, идущее с дистрибутивом openSUSE Leap, и обнаружил драйвер полностью непригодным к gen3-устройствам. Мало того, он ещё и заставлял alsamixer впадать в «вечные циклы» (наперёд: ошибка была простая, но коварная).

    В итоге, на данный момент мы имеем драйвер, который почти полностью (а местами даже и больше) поддерживает карту на частотах дискретизации 44.1 и 48 кГц. Для этого пришлось провести достаточно основательный реверс-инжиниринг протокола взаимодействия драйвера и звуковой карты.

    В итоге, имеем следующий репозиторий: https://github.com/sadko4u/focusrite-scarlett-backports
    Здесь опубликованы патчи для RT-ядра и Default-ядра openSUSE Linux, а также патч для ванильного ядра 5.9.0 (по просьбе трудящихся).

    Также в репозитории присутствуют:
    • исходные коды драйверов для отладки (debug-drv)
    • исходные коды драйверов для публикации (prod-drv)
    • сопутствующая информация по реверс-инжинирингу (reverse-eng):
      • описание конфигурационного пространства звуковой карты;
      • PCAP-дампы обмена данных по USB-шине для разных устройств;
      • утилита для автоматической дешифровки PCAP-дампов и упрощения процесса реверс-инжиниринга.
    В итоге, сейчас имеем:
    • Возможность воспроизводить и захватывать звук на устройствах 18i20 и 18i8 (спасибо Dirk Lattermann за соучастие).
    • Полноценно работающий роутинг с сохранением состояния в конфигурационном пространстве устройства, совместимый с оригинальным Focusrite Control (ну почти).
    • Работающий микшер (полная корректность пока не проверялась, для 18i8 заявлено, что работает не всё).
    • Работа кнопок INST/PAD/DIM/MUTE/Talkback.
    • Переключение мониторинга между режимами Off/Main/Alt monitoring control.
    • Включение/выключение кнопок фантомного питания программно (чего нет в Focusrite Control) и возможность сохранения состояния фантомного питания после выключения/включения устройства.
    • Управление мониторинг-секцией.
    • Поддержка Mute для всех физических выходов (как в FC).

    Ну и скриншот с замером roundtrip latency между 7-ым аналоговым выходом и первым аналоговым входом на моём ноутбуке ASUS TUF Gaming:

    [​IMG]

    В ближайшее время ко мне должна ещё подъехать карта Scarlett 2i2, так что для неё драйвер также будет протестирован.
     
    UbIvItS и eshmereum нравится это.
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.352
    У 2i2 тоже минимум 2 поколения было.
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.582
    Адрес:
    г. Санкт-Петербург
    Вчера подъехала Scarlett 2i2, и я уже закончил драйвер к ней.
    Красота.
    [​IMG]
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    3.856
    Эмм, не понял, у меня Scarlett Solo вроде Gen2, так я просто подключал ее к компу по USB и нормально писал и воспроизводил с нее, Linux без проблем ее определял и использовал.
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.582
    Адрес:
    г. Санкт-Петербург
    Использовать-то использовал, да вот в alsamixer ручек никаких нет.
    А тут я в alsamixer добавил возможность управлять этим устройством. Но это доступно только для gen3, где хардварные push/push кнопки были заменены на софтварные.
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    5.365
    SadKo, а как ты смотришь на перспективу создания вайна для драйверов и какие возможные решения по-твоему наиболее лучшие?