Добрый вечер!
Предисловие. Не ради какой-то конкретной цели, а скорее из желания посмотреть что это такое и как с этим быть - решил попробовать спаять цифровой микшерский пульт аля XR12 от известного производителя. В итоге процесс так и остался незавершённым, хотя каких-то огорчений я не испытываю. Всё дело в том, что в процессе реализации я потихоньку пришёл к выводу, что эта штука абсолютно неконкурентоспособна по стоимости комплектующих, а если отбросить коммерческий интерес - так же бесполезна без серьёзной системы обработки эффектами. При чём закупать готовый модуль эффектов бесполезно с точки зрения развития системы. Тут нужно обладать ресурсами, чтобы постоянно их совершенствовать.
Теперь, собственно, что было сделано:
12 входов - 6 линейных, 6 микрофонных, все балансные;
4 выхода - все балансные;
АЦП PCM1865, ЦАП AD1955;
трансформаторный блок питания;
в качестве модуля управления - BeagleBone c TI процессором, под linux.
(Миди, WiFI подразумевались позже)
Linux был выбран не случайно. Была идея, что эффекты можно будет "накрутить" в виде VST плагинов. Но скажу честно - не разбирался, дело не дошло.
Кроме этого, и что немаловажно - вебсервер и вебинтерфейс под linux работал идеально. (В прошлом был опыт работы со стеком LWIP на STM32).
Дабы не загружать систему - там стоял лишь Nginx и программа управления на Си. Никаких PHP, JAVA и прочего, а главное нормальный TCP-IP стек. И это дало результат - работал через публичный мобильный интернет (прям с мобильного раздавал инет в Москве, цеплял ноутом, а коробка с сервером стояла в Питере - никаких потерь связи).
Вебинтерфейс основан на принципе, когда не броузер шлёт запрос серверу, а сам сервер выступает инициатором связи. Это дало неплохой отклик. Я не помню сейчас конкретные цифры, но индикаторы уровня работали нормально (программа имитации сигнала отправляла случайные цифры). При чём под эту задачу я разработал протокол обмена, позволяющий синхронизировать данные даже при потере связи, а так же отсекать конкурирующие потоки с помощьб timestamp (чтобы, допустим, задержка по сети и сильно задержаный пакет не перезаписали текущее значение из-за того, что броузер бы пытался отправить посылку при неудачном соединении).
Клиентская часть написана на javascript. Дизайн и оформление делал мой друг Иван, за что, кстати, ему спасибо! Она так же осталась недоделана. Впрочем, опять же - не потому что лень, а потому что стало ясно, что это вполне реально, и разобрались КАК это сделать, но актуальность была потеряна в процессе работы))) Кстати, идея данной панели управления была в том, что под все ОС - подразумевалась броузерная программа управления. Я раньше на досуге занимался разработкой скриптов, работал совместно с друзьями по HTML, поэтому в целом было ясно, как можно докрутить панель почти до любых возможностей, опций и прочего. Там, кстати, уже была сделана авторизация, подразумевающая разграничение доступа для звукрежа, музыкантов и прочих.
Испытания так завершены и не были. Дело в том, что программа обработки звука располагается в DSP процессоре ADAU1451. Эта программа была сделана и ради теста платы загружалась с помощью обычного микроконтроллера STM32 по интерфейсу SPI. Разумеется сама плата ввода-вывода звука работала. Затем я перенёс программу и алгоритмы управления параметрами на микрокомпьютер BeagleBone, прикрутил вебинтерфейс, но до сих пор не сделал драйвер под linux для загрузки этой программы по SPI. На начальном этапе разработки под linux (это мой первый опыт) я принял решение не использовать ту кучу всего, что понапихали в эту плату производители, поставил arch linux в надежде с ним разобраться. В целом, разобрался, но вот с драйверами пока никак. Впрочем, сильно я не расстраиваюсь, по причинам, описанным выше.
Кроме всего прочего - была так же идея сделать в пульте вебинтерфейс для управления светом через Midi. Т.е. чтобы фактически можно было управлять в многопользовательском режиме (с разных ноутов, планшетов и пр. одновременно) как звуком, так и светом с одного аппарата. А поскольку свет - чисто программистская задача - накрутить можно было бы много всего - ресурсов такого микрокомпьютера хватило бы на много.
Собственно, ссылка на фотки и видео панели:
https://yadi.sk/d/UmHVt7lk3XG6cL
В общем, о самой проделанной работе не жалею - я очень многое узнал и разобрался, но пока я не смог найти ей практическое применение. С коммерческой точки зрения тем более. Вот так, спасибо за внимание!
Предисловие. Не ради какой-то конкретной цели, а скорее из желания посмотреть что это такое и как с этим быть - решил попробовать спаять цифровой микшерский пульт аля XR12 от известного производителя. В итоге процесс так и остался незавершённым, хотя каких-то огорчений я не испытываю. Всё дело в том, что в процессе реализации я потихоньку пришёл к выводу, что эта штука абсолютно неконкурентоспособна по стоимости комплектующих, а если отбросить коммерческий интерес - так же бесполезна без серьёзной системы обработки эффектами. При чём закупать готовый модуль эффектов бесполезно с точки зрения развития системы. Тут нужно обладать ресурсами, чтобы постоянно их совершенствовать.
Теперь, собственно, что было сделано:
12 входов - 6 линейных, 6 микрофонных, все балансные;
4 выхода - все балансные;
АЦП PCM1865, ЦАП AD1955;
трансформаторный блок питания;
в качестве модуля управления - BeagleBone c TI процессором, под linux.
(Миди, WiFI подразумевались позже)
Linux был выбран не случайно. Была идея, что эффекты можно будет "накрутить" в виде VST плагинов. Но скажу честно - не разбирался, дело не дошло.
Кроме этого, и что немаловажно - вебсервер и вебинтерфейс под linux работал идеально. (В прошлом был опыт работы со стеком LWIP на STM32).
Дабы не загружать систему - там стоял лишь Nginx и программа управления на Си. Никаких PHP, JAVA и прочего, а главное нормальный TCP-IP стек. И это дало результат - работал через публичный мобильный интернет (прям с мобильного раздавал инет в Москве, цеплял ноутом, а коробка с сервером стояла в Питере - никаких потерь связи).
Вебинтерфейс основан на принципе, когда не броузер шлёт запрос серверу, а сам сервер выступает инициатором связи. Это дало неплохой отклик. Я не помню сейчас конкретные цифры, но индикаторы уровня работали нормально (программа имитации сигнала отправляла случайные цифры). При чём под эту задачу я разработал протокол обмена, позволяющий синхронизировать данные даже при потере связи, а так же отсекать конкурирующие потоки с помощьб timestamp (чтобы, допустим, задержка по сети и сильно задержаный пакет не перезаписали текущее значение из-за того, что броузер бы пытался отправить посылку при неудачном соединении).
Клиентская часть написана на javascript. Дизайн и оформление делал мой друг Иван, за что, кстати, ему спасибо! Она так же осталась недоделана. Впрочем, опять же - не потому что лень, а потому что стало ясно, что это вполне реально, и разобрались КАК это сделать, но актуальность была потеряна в процессе работы))) Кстати, идея данной панели управления была в том, что под все ОС - подразумевалась броузерная программа управления. Я раньше на досуге занимался разработкой скриптов, работал совместно с друзьями по HTML, поэтому в целом было ясно, как можно докрутить панель почти до любых возможностей, опций и прочего. Там, кстати, уже была сделана авторизация, подразумевающая разграничение доступа для звукрежа, музыкантов и прочих.
Испытания так завершены и не были. Дело в том, что программа обработки звука располагается в DSP процессоре ADAU1451. Эта программа была сделана и ради теста платы загружалась с помощью обычного микроконтроллера STM32 по интерфейсу SPI. Разумеется сама плата ввода-вывода звука работала. Затем я перенёс программу и алгоритмы управления параметрами на микрокомпьютер BeagleBone, прикрутил вебинтерфейс, но до сих пор не сделал драйвер под linux для загрузки этой программы по SPI. На начальном этапе разработки под linux (это мой первый опыт) я принял решение не использовать ту кучу всего, что понапихали в эту плату производители, поставил arch linux в надежде с ним разобраться. В целом, разобрался, но вот с драйверами пока никак. Впрочем, сильно я не расстраиваюсь, по причинам, описанным выше.
Кроме всего прочего - была так же идея сделать в пульте вебинтерфейс для управления светом через Midi. Т.е. чтобы фактически можно было управлять в многопользовательском режиме (с разных ноутов, планшетов и пр. одновременно) как звуком, так и светом с одного аппарата. А поскольку свет - чисто программистская задача - накрутить можно было бы много всего - ресурсов такого микрокомпьютера хватило бы на много.
Собственно, ссылка на фотки и видео панели:
https://yadi.sk/d/UmHVt7lk3XG6cL
В общем, о самой проделанной работе не жалею - я очень многое узнал и разобрался, но пока я не смог найти ей практическое применение. С коммерческой точки зрения тем более. Вот так, спасибо за внимание!
Последнее редактирование: