Меня это задолбало - управлять громкостью, если источников звука больше одного, особенно больно, когда надо сделать тише/громче быстро, за пару секунд. Если играете в динамичные игры с дискордом, да ещё и музыку фоном включаете, думаю вы прекрасно знаете эти неудобства. И вот, в один прекрасный день я наткнулся на Deej...

Собственно результат
Собственно результат

А в чем собственно проблема?

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

  • Alt tab из текущего приложения, если курсор захвачен

  • ПКМ по значку громкости

  • Выбрать пункт выпадающего меню для открытия микшера

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

  • Найти нужное приложения пролистав горизонтальный список, или расширив окно

  • Ура! Наконец то можно поменять громкость

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

Способы поменять громкость
Способы поменять громкость

Deej

На просторах гитхаба есть один хороший проект - deej, он идеально решает поставленную задачу, собирается легко из ардуйни и картона, но это не спортивно, список приложений намертво прикручен к ползунам, хочешь больше приложения - либо накидывай больше слайдеров, либо биндь несколько приложений на один потенциометр и запоминай, где есть что. Да и выглядят типовые конструкции не очень - где любимая ЛГБТ RGB подсветка?

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

В общем было разработано следующее ТЗ:

  • Внешний вид - как у заводского устройства, никакой изоленты и 3д печати там, где это будет бросаться в глаза

  • Индикация приложения, которое регулируется, что бы не забивать память, куда же я там приложение забиндил

  • Наличие подсветки - не видел ни в одном из существующих микшеров. Что у DIY, что у профессиональных подсветки слайдеров нет. С моей точки зрения это должно выглядеть круто + технический челенж

  • Минимальные размеры, но не в ущерб удобству

  • По возможности минимальный бюджет

  • Задача со звездочкой - bluetooth. До сих пор не знаю, зачем, но звучит круто

Концепт

Изначально я хотел свести использование 3д печати к минимуму, и сделать всю конструкцию на печатных платах, но это никак не сочиталось с минимальным бюджетом, поэтому количество ПП было сведено к минимально необходимой двойке

Один из первых концептов, позднее от печатной платы для дисплеев отказался
Один из первых концептов, позднее от печатной платы для дисплеев отказался

В качестве платформы рассмативались контроллеры от nordic, espressif и rp2040 от raspberry, хотелось пощупать nRF, но экономически они дороже и достать чуть сложнее, rp2040 не имеет блюпупа, поэтому выбор пал на ESP32-C3, а точнее на модуль на его основе ESP32 C3 SUPER MINI.

Да как тебя впихнуть???

Оказалось, что вписаться в 100х100мм печатной платы (как правило ПП стоят дороже при выходе за эти пределы), запихав при этом туда пять слайдеров и кучу адресной ленты между ними не такая простая задача, как казалось на первый взгляд. Как ЭТО собирать я не представлял, но вроде должно впихнуться. Ах да, спереди есть выемка, туда же можно запихать аккумулятор для автономки по bluetooth!

100 адресных светодиодов аккуратно расположились между потенциометрами
100 адресных светодиодов аккуратно расположились между потенциометрами

5 дисплеев? На один контроллер I2C?

Перерыв половину алиэкспресса были найдены десятки дисплеев, но все не то, либо маленькие, либо большие, либо I2C only, либо надо городить внешний DC-DC для повышения напряжения. В итоге идеальный дисплей был найден, но вот незадача - он поддерживает только I2C, а бит выбора адреса всего один, то есть 3 устройства с одинаковым адресом будут в любом случае.

Что сделал бы нормальный человек в этом случае? Прочитать документацию на микроконтроллер? Воткнуть мультиплексер? Слишком скучно, надо велосипед, да ещё и с квадратными колесами. В итоге был рожден I2C с CS. Спойлер - он даже заработал, но нашлось решение поприличнее - ESP32C3 имеет pinmux, и можно тупо переназначать выводы для I2C в процессе работы

Принципиальная схема
Схема верхней платы
Схема верхней платы
Дисплей
Дисплей
Нижняя плата. Из-за нехватки пинов аналоговые входы работают и на потенциометры, и на кнопки
Нижняя плата. Из-за нехватки пинов аналоговые входы работают и на потенциометры, и на кнопки

В остальном, что схема, что топология примитивны, BOM минимальный, аккумулятор можно выкинуть, тогда схема становится вообще элементарной. Хотя и в такой простоте получилось наделать ошибок...

Топология
Верхняя плата
Верхняя плата
Нижняя плата. Не спрашивайте, голоса сказали делать ЛУТом
Нижняя плата. Не спрашивайте, голоса сказали делать ЛУТом

Сборка

Я же сказал, что не оценивал трудоемкость сборки? За компактность надо платить, а компонентов заказано на 4 изделия...

Много фоток процесса сборки
Слава разработчикам МГТФ!
Слава разработчикам МГТФ!
Ленты на 3 светодиодных блока
Ленты на 3 светодиодных блока
Собственно сам блок - светодиодная лента, приклеенная к брекетам
Собственно сам блок - светодиодная лента, приклеенная к брекетам
Брекет, установленный на верхнюю ПП, тут должна быть операция приклейки рассеивателей
Брекет, установленный на верхнюю ПП, тут должна быть операция приклейки рассеивателей
Нижняя печатная плата + корпус
Нижняя печатная плата + корпус
Соединение 2х частей. Аккумулятор от вейпа, хоть какая то польза от них
Соединение 2х частей. Аккумулятор от вейпа, хоть какая то польза от них

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

С отражателями вышло весело - изначально рассчитывали, что рассеиватели из PETG будут недостаточно прозрачными и надо делать их специальным образом, что бы добиться полной прозрачности. После десятков образцов пришли к тому, что светодиодная лента наоборот, слишком яркая и можно просто печатать прозрачным PETG без доп настроек. Почему нельзя было просто сразу приложить к ленте? Рассеиватели разрабатывались, когда компоненты ещё на почту не пришли.

Слева - затененный рассеиватель с промежуточным слоем белого пластика (оказалось, что беллый пластик на просвет вовсе не белый), центр - стоковые параметры, справа - "стеклянная" печать PETG
Слева - затененный рассеиватель с промежуточным слоем белого пластика (оказалось, что беллый пластик на просвет вовсе не белый), центр - стоковые параметры, справа - "стеклянная" печать PETG
С рассеивателями и без них
С рассеивателями и без них

Установка рассеивателей - тот ещё квест, это практически единственный компонент, который держится на клею

Прошивка

Так как проект хоббийный, я решил поэксперементировать и попробовать все же перелезть с чистого С на С++, собственно по этой причине прошивка представляет собой невнятный кусок говнокода, который в процессе разработки оброс extern'ами, и прочей ересью, если вы хоть раз начинали новый проект на новом стеке, я думаю прекрасно понимаете о чем речь...

Из интересного - в предыдущем пункте я писал, что светодиоды оказались слишком яркими, и оптимальная яркость - 5. Нет, не 5%, хуже, 5 уровней яркости из 256, в пространстве RGB это всего 125 цветов, что мало для плавных анимаций. Выход? Есть

Можно использовать ШИМ. Не совсем ШИМ конечно, но что-то очень похожее. Да, звучит как бред, шимировать адрессные светодиоды, но это работает. Всего светодиодов последовательно 101, надо передавать 24бит на один диод, соответственно надо передать 2424 бита данных, при частоте передачи 800кГц это значит, что можно обновлять все светодиоды 330 раз в секунду. Соответственно если передавать подряд 2 яркости попеременно, можно получить промежуточные значения, на глаз мерцание не заметно, зато дополнительный бит для каждого цвета дает увеличение цветового пространства в 8 раз! С палитрой из 1000 цветов анимации получаются гораздо плавнее.

Bluetooth все же после долгих попыток удалось завести - сначала я не понимал, почему в ESP32C3 нет bluetooth, хотя в примерах он должен быть... Да, я снова забил на документацию, и пропустил абзац, что в C3 нет bluetooth, есть только BLE. Ну чтож, привет новый стек. Вроде бы все отлично? Но почему то даже примеры из ESP-IDF не работали, спасибо китайцам за бракованный чип, в котором не работал радиомодуль, а через несколько недель он вообще откинулся, подкинув квест - разбирать и перепаивать на новый модуль. Так или иначе, BLE был побежден.

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

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

Процесс калибровки. У среднего слайдера есть доп подтяжка пина к питанию, так как это вывод BOOT у ESP32, и разведена она на китайском модуле, но работе это никак не мешает
Процесс калибровки. У среднего слайдера есть доп подтяжка пина к питанию, так как это вывод BOOT у ESP32, и разведена она на китайском модуле, но работе это никак не мешает

Осталось дело за малым - написать софт для ПК

ПКшный софт

Тут мои полномочия все, писать под python что-то сложнее скриптов с помощью ChatGPT я не уметь. Благо работал над этим проектом не один, и софт под ПК писал не я. Понятия не имею, как оно работает внутри, но работает хорошо. Все что требуется от пользователя - нарисовать иконки для своих приложений и запустить EXE.

Набор иконок, приоритет и приложение указыватеся через __Приоритет__НазваниеПроцесса
Набор иконок, приоритет и приложение указыватеся через __Приоритет__НазваниеПроцесса
Прога в трее, не закончена, но основную задачу выполняет
Прога в трее, не закончена, но основную задачу выполняет

Протокол обмена сделан таким образом, что он полностью совместим с deej, правда вывод иконок работать не будет

BOM

Не уверен, что я учел все компоненты, ибо часть брал из своих запасов, но это копеечная мелочевка. Итоговая стоимость получилась ~3000Р на один экземпляр в рассчете на изготовление 4шт. Так что и этот пункт ТЗ удалось выполнить. Естественно, не включая стоимость 3д печати и времени потраченного на сборку.

Желтым отмечены компоненты на блок кнопок (пауза, следующий/предыдущий трек), в корпусе расположены магниты и контактные площадки для этого блока, но его делать лень. По задумке он должен прикрепляться слева и держаться на магнитах.

Таблица закупок
Таблица закупок

Режимы работы

По функционалу режимов работы всего 2 - BLE и проводной. BLE включен всегда, никой процедуры подключения не требует, и если на ПКшном клиенте включен режим блютуза, соединение произойдет автоматически. То же самое по проводу, USB-CDC драйверов не требует.

Так как ничего, кроме подсветки настраивать собственно нечего, все настройки микшера относятся именно к ней. Настроить можно практически любой переодичный/статичный эффект

Пример настройки
Пример настройки

К сожалению, не все идеи работают одинаково хорошо, на то, что бы визуализировать громкость процесса так, же как это делает стандартный микшер винды было протрачено очень много времени, но результат получился так себе, зато я точно понял, что не хочу писать под WinAPI

Отображение громкости каждого отдельного процесса + режим статического цвета
Отображение громкости каждого отдельного процесса + режим статического цвета

Финал

Осторожно, ЗВУК! Собственно, демонстрация работы в реальности, примерно в таком сценарии оно используется уже больше месяца и все прекрасно работает

Ссылки на репозитории

Основной репозиторий (Прошивка/железо/3Д модели)

Приложение для ПК

Пока планов на написание документации по сборке нет, так как не уверен, что это хоть кому то надо, если будет интерес, запилю.

Комментарии (74)


  1. jonic
    03.07.2024 21:01
    +4

    О, молодец, код потом причешешь :) ну или кто то причешет. Придумал/сдалал/резултат. Не зря зашел почитать.


  1. soymiguel
    03.07.2024 21:01
    +27

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


  1. Heggi
    03.07.2024 21:01

    Отлично. Даже захотелось повторить. Но софт на питоне под винду... пугает...


    1. AiR_WiZArD Автор
      03.07.2024 21:01
      +4

      Но софт на питоне под винду... пугает...

      Меня тоже


      1. jonic
        03.07.2024 21:01

        Это можно и переделать, было бы желание


  1. voldemar_d
    03.07.2024 21:01

    спасибо ChatGPT, без него на математику ушло бы явно больше времени, чем 3 минуты

    А что там за математика? Таблица значений, между которыми делается интерполяция?

    Ещё непонятно, почему маленькие дисплеи мерцают. На них изображение постоянно стирается и обновляется?

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

    зато я точно понял, что не хочу писать под WinAPI

    А что здесь делается через WinAPI?


    1. Radisto
      03.07.2024 21:01

      А что здесь делается через WinAPI?

      Как я понимаю, микширование. Судя по всему, эти аппаратные микшеры - не аппаратные микшеры, а пульт от программного, который реализуется стандартными функциями


      1. voldemar_d
        03.07.2024 21:01

        Если я правильно понимаю, положение бегунков должно передаваться в системный микшер Windows. Но как это можно сделать, не пользуясь Windows API?


        1. nafikovr
          03.07.2024 21:01

          так он и используется через pywin32. я думаю автор просто в очередной раз намекнул на ректальные подходы в winapi вызывающие конкретное желание больше туда не лезть


          1. voldemar_d
            03.07.2024 21:01
            +3

            Что в них "ректального"? Я понимаю, что питон проще, чем C++, но внутри он тот же WinAPI вызывает. Этак можно и ассемблер назвать "ректальным", просто потому, что он сложнее питона.


            1. nafikovr
              03.07.2024 21:01
              +1

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


              1. voldemar_d
                03.07.2024 21:01
                +2

                Есть API, есть документация к нему. Дальше - либо пользуетесь, либо нет, если есть возможность и нет желания.


                1. vvzvlad
                  03.07.2024 21:01
                  +1

                  Это не отменяет некоторых... копроректальных подходов, которые можно было явно сделать лучше.


                1. NutsUnderline
                  03.07.2024 21:01
                  +1

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


                  1. voldemar_d
                    03.07.2024 21:01

                    Ну это даже по внешнему виду микшера понятно. Хотя бы обратную совместимость сохраняют?


                  1. voldemar_d
                    03.07.2024 21:01

                    del


                  1. nafikovr
                    03.07.2024 21:01

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

                    Совместимость это конечно хорошо, но не с софтом 90 года же...


          1. kenomimi
            03.07.2024 21:01

            Как минимум xxxA / xxxW - бесит люто. Можно использовать скрывающие это макросы, конечно, но до первой либы, которая поддерживает только один тип стрингов.

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


            1. voldemar_d
              03.07.2024 21:01
              +1

              Как минимум xxxA / xxxW - бесит люто

              А что именно бесит? Названия функций с буквой A или W в конце? В юникодном приложении обычно уже никаких A/W указывать не нужно.

              но до первой либы, которая поддерживает только один тип стрингов

              Не помню, когда в последний раз встречал такую либу.


            1. little-brother
              03.07.2024 21:01
              +5

              xxxA версии нужны только для поддержки старого кода времен Windows95/98. Имхо сейчас имеет смысл сразу определять макрос UNICODE, и использовать xxx-имена, без W. C-либы с char по сути работают с UTF8, в то время как Windows работает с UTF16, что просто надо держать в уме и выполнять перекодирование, когда это требуется.

              Лично у меня WinAPI вызывает скорее восхищение, учитывая, что этому API более 30 лет, и ему пришлось столкнуться с тем, на что он не был рассчитан, напр. hiDPI и темами оформления, при помощи костылей это всё равно было решено. Самый большой плюс - код на нем просто работает, как на Win95, так и на Win11. На том же Android каждые пару лет старые методы объявляются deprecated и пишется замена.


              1. jonic
                03.07.2024 21:01

                Видимо именно по этому была целая гора попыток сделать нормальный ui, а не вот это похожее на win95? А то ведь если createWindow то только win95 или около того и получится, не?)


    1. AiR_WiZArD Автор
      03.07.2024 21:01
      +1

      А что там за математика? Таблица значений, между которыми делается интерполяция?

      Чуть более сложно, но все равно проще, чем то, что удалось найти за пару минут с гуглом.

      Ещё непонятно, почему маленькие дисплеи мерцают. На них изображение постоянно стирается и обновляется?

      Это особенность подобных монохромных OLED дисплеев, они на камеру мерцают, глазами не видно

      А что здесь делается через WinAPI?

      Захват звука с конкретного процесса, а не всего аудиоустройства целиком. Там API добавили только в win11, в современных win10 тоже работает, но что бы понять, что именно нужно использовать, надо пройти долгий путь. А так да, пример лежит на сайте microsoft.


      1. voldemar_d
        03.07.2024 21:01

        Захват звука с конкретного процесса, а не всего аудиоустройства целиком.

        Что-то я сомневаюсь, что на питоне это можно как-то проще сделать (если вообще возможно).


        1. jonic
          03.07.2024 21:01

          Да куда уж там, COM объекты это боль как не крути)


          1. voldemar_d
            03.07.2024 21:01

            А что такого сложного в COM-объектах?


            1. jonic
              03.07.2024 21:01

              Чтож, 20 лет назад когда мне было 13 лет мне они казались куда стремнее. Посмотрел сейчас - действительно не так уж ужасно.


  1. DenSigma
    03.07.2024 21:01
    +10

    Чувак! В продакшн! Быстро, решительно! Я бы купил.


    1. AiR_WiZArD Автор
      03.07.2024 21:01
      +2

      Я без понятия как это можно сделать, когда даже на kickstarter просто так выйти не получится, так что opensouce. Исходники со временем отрефакторю, инструкцию сделаю


      1. Komrus
        03.07.2024 21:01

        А на отечественный краундфандинговый planeta.ru - нет ли возможности выйти?

        Ибо тоже подумал, что детям такие вещи в подарок забавно было купить...

        PS. Возможно даже в виде kit'а для самостоятельной сборки...


      1. Spyman
        03.07.2024 21:01

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


      1. nafikovr
        03.07.2024 21:01

        организовать групбай, как с клавиатурами


  1. Zara6502
    03.07.2024 21:01

    Alt tab из текущего приложения

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

    • Найти нужное приложения пролистав горизонтальный список, или расширив окно

    ни разу не видел там больше трех ползунков XD а у вас на картинке прям целая портянка.

    ИМХО, но вы сначала создали проблему, а потом её героически решили.


    1. nafikovr
      03.07.2024 21:01
      +3

      Там всегда 2 системных ползунка + один на каждое приложение с выводом звука. пример скорее всего утрированный но 5-6 набираются легко.

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


      1. Zara6502
        03.07.2024 21:01
        +1

        пример скорее всего утрированный но 5-6 набираются легко.

        у меня открыт ТГ, вацап, браузер яндекса и edge, но в панельке наблюдается только яндекс.

        и я просто не могу представить сценарий, когда бы мне пригодилось регулировать громкость этими ползунками. За всё время начиная с вин8 я этого не делал ни разу.

        на клавиатуре кнопочки +- для громкости, остальное один раз выставил и пользуюсь, на худой конец в игре что-то нужно сделать - там есть своя настройка звука. Просто я не могу себе представить сценарий автора, где игра, собеседники в дискорде, какого-то лешего еще и отдельно музыка и вдруг, зачем-то во время катки мне потребовалось эксклюзивно поменять на 3,5% громкость музыки. Я бы лучше вас из пати выкинул чтобы вы не слили игру )


        1. nafikovr
          03.07.2024 21:01

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

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


          1. Zara6502
            03.07.2024 21:01
            +2

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

            по мне так невозможный сценарий


            1. nafikovr
              03.07.2024 21:01

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


              1. Zara6502
                03.07.2024 21:01
                +1

                музыка играет фоном всегда

                вы думаете если перегружать мозг то вам станет лучше? а уши у вас из титана?

                вслушиваясь что они там за кадром и ветром говорит

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


                1. nafikovr
                  03.07.2024 21:01
                  +2

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


  1. Limansky
    03.07.2024 21:01

    Код можно и нужно рефакторить, что будет в процессе, а вообще проект внешне продуман и красив, но тоже можно причесать немного шероховатости )).


  1. Treviz
    03.07.2024 21:01
    +2

    Неплохо! Так можно и до проф. контроллеров дойти. Только за гораздо меньшие деньги.

    Не хватает:

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

    MIDI интерфейса в драйвере - совместимость с кучей аудио-видео софта.

    Насчёт подсветок в проф. пультах. Она там не нужна потому как и так всё подсвечено индикацией + лампа горит ту же партитуру читать.


    1. nafikovr
      03.07.2024 21:01
      +2

      Я тоже подумал что наверно стоило бы имитировать MIDI + костыль в виде бриджа MIDI<->WinAPI. Это позволило бы использовать MIDI пульты и использовать девайс в софте поддерживающем MIDI ввод


    1. voldemar_d
      03.07.2024 21:01
      +1

      MIDI интерфейса в драйвере - совместимость с кучей аудио-видео софта.

      Громкость на дорожках в DAW крутить?


      1. Treviz
        03.07.2024 21:01
        +1

        В простейшем случае да. Любые огибающие, хоть зум на видео.


  1. N-Cube
    03.07.2024 21:01

    rp2040 не имеет блюпупа

    И вайфай и блютуф есть же: https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html И можно 8 светодиодных лент подключить без проблем, используя аппаратные пины (не нужен светодиодам полноценный I2C).


    1. AiR_WiZArD Автор
      03.07.2024 21:01
      +1

      Там это реализовано отдельным модулем, распаянным на плате, мини модулей с wifi/bt я не нашел, а это +3мм к толщине. Светодиодных лент можно сколько угодно подключать последовательно, это не проблема. У rp2040 всего 4 канала АЦП. Как бы мне этот контроллер относительно esp32 не нравился, он никак не подходит


  1. deelayka
    03.07.2024 21:01

    1. voldemar_d
      03.07.2024 21:01

      Хорошая штука, но с крутилками, а не бегунками.


      1. nafikovr
        03.07.2024 21:01
        +1

        MIDI контроллеры разные бывают. можно взять какой нибудь nakeboard mc-8


        1. voldemar_d
          03.07.2024 21:01

          Можно, но он не такой красивый, как у автора статьи :-) понятно, что готового полно есть, здесь цель была другой.


          1. nafikovr
            03.07.2024 21:01

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


            1. voldemar_d
              03.07.2024 21:01

              Как имеющийся девайс связать с другим USB MIDI девайсом? Есть какие-то библиотеки для Arduino Mega?


              1. nafikovr
                03.07.2024 21:01

                не понял вопроса.


                1. voldemar_d
                  03.07.2024 21:01

                  А я не понял вот этот момент:

                  использовать часть контролов в одном программе, часть в другой

                  Бегунки использовать на одном девайсе, а индикаторы на другом?


                  1. nafikovr
                    03.07.2024 21:01

                    нет. имел в виду что если на столе, например, у музыканта лежит MIDI клавиатура с крутилками/слайдерами или у видеомонтажера применяет MIDI контроллер для работы, то часть контролов этого имеющегося девайса можно использовать для вышеупомянутого MIDI Mixer, при этом остальные будут использоваться по прямому назначению


            1. voldemar_d
              03.07.2024 21:01

              Этот готовый девайс позволяет крутить громкости системного микшера, как у автора реализовано, т.е. ещё и отдельно по приложениям?


    1. AiR_WiZArD Автор
      03.07.2024 21:01

      Спасибо, интересный софт. Печально, что это freemium, особенно подписочный, самый меркий подход к монетизации

      Hidden text


  1. not-allowed-here
    03.07.2024 21:01
    +1

    псевдо Хардовое решение конечно тоже круто, но я решил вот так - красяво, но сложна:

    1. EQ APO (нормализация для каждого источника, лимитеры + фильтры и прочие фишки типа раздачи стерео на 8 каналов)

    2. VBAudio HiFi Cable (ввод звука с windows в ASIO)

    3. Potato(микшер, но на самом деле он не нужен счас EQ APO великолепно справляется и сам) иногда вмеcто него Lighthost для VST плагинов - ну это больше для экспериментов

    4. Auto Hot Key (ЛКМ+ПКМ и колесиком крутим общую громкость)

      Из минусов только небольшой input lag (решилось заданием affinity для каждой из критичных к задержеке софтинок и приоритезацией до RealTime)


  1. SabMakc
    03.07.2024 21:01

    Лично у меня все витает идея: софт, который планшет/смартфон превращает в разные микшеры или клавиатуру с горячими клавишами.
    Да, это менее удобно, чем аппаратные ползунки - вслепую не передвинешь.

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

    И с отзывчивостью могут быть нюансы - виртуальные контроллеры имеют более высокую задержку.

    P.S. может кто готовое что встречал? Максимум что встречал - эмуляцию клавиатуры / мыши со смартфона с возможностью задать свою "кастомную" клавиатуру.


    1. Fqyeh29
      03.07.2024 21:01
      +1

      1. SabMakc
        03.07.2024 21:01

        Спасибо )
        Рад что такое есть. Несколько огорчает, что Windows-only (но другие платформы ожидаются в этом году, так что можно просто подождать).


    1. V-LA
      03.07.2024 21:01
      +1

      Вот что я в работе использую:

      https://hexler.net/touchosc

      Прекрасная штукенция, можно нарисовать свой интерфейс из кнопок/крутилок/фейдеров/ и тд и отдавать все нажатия и передвижения по MIDI или OSC

      У себя в студии использую одновременно и как контроллер при записи midi (задержка не мешает) и при управлении основного компьютера.


      1. SabMakc
        03.07.2024 21:01

        Спасибо )
        Интересная штука, кросс-платформенность на месте, неплохой, навскидку, интерфейс.
        Правда не open-source и нужна лицензия (насколько я могу судить, лицензия национальна для декстоп-клиентов).


    1. Seliv
      03.07.2024 21:01

      Очень странно, если идея давно витает, а загуглить времени не нашлось. Таких решений десятки. Даже с обратной связью, статус/значения кнопок/ползунков передается во все стороны. Пожалуй, самые-самые это Touch-portal и Matric. Ну и поделки попроще в ассортименте, типа Macro Deck, Deckboard, много их.


  1. ZahDimar
    03.07.2024 21:01
    +2

    Для более быстрого доступа к микшеру в винде можно воспользоваться игровым оверлеем (win+g). Первый запуск может быть долгим, но потом быстро открывается. Его можно открыть не только в играх, так же есть возможность настроить что где лежит на самом оверлее, в том числе там есть микшер для всех приложений


  1. posledny
    03.07.2024 21:01

    напомнило https://www.modue.com/


  1. ArtemIlichev
    03.07.2024 21:01

    Подскажите, пожалуйста, а у вас можно будет приобрести такое же устройство?)


    1. AiR_WiZArD Автор
      03.07.2024 21:01

      Нет, и не планируется. Максимум что могу сделать - написать инструкции и все отрефакторить