ARDUINO Цветомузыка на MSGEQ7 и на фильтрах

Цветомузыка на MSGEQ7 и на фильтрах
ЦМУ на MSGEQ7. Также сюда добавляю второй проект ЦМУ на фильтрах.
ссылка на плату и схему https://oshwlab.com/technotrasher/colormusic
За год была проведена большая работа.
Итак ЦМУ на MSGEQ7.
1. Двухканальная схема. стерео.
2. Ручная регулировка шумов. предустановки шумов.
3. 7 режимов цму. в которых есть под-режимы.
4. 10 вариантов световых эффектов.
5. регулировки эффектов и режимов.
6. за "спектр" отвечают микросхемы MSGEQ7. достать рабочие сложно. (Купить более менее рабочие MSGEQ7 - по поиску на алиэкспресс "Модуль анализатора звука Aispark")
7. Аудио компрессор и система контроля клипинга взята тут - kompressor_SSM2167. прочтите обязательно, кто будет собирать.
8. описание режимов в начале скетча.
9. работа возможна с 300 светодиодами!
10. регулировка параметров с пульта и возможность сброса настроек "когда, что то нажал и все поломалось"
11. режим тишины с подсветкой (можно отключить), время срабатывания так же выставляется в скетче.
12 . Использованы статьи. тут для понимания работы MSGEQ7.
13. работа от микрофона. включается с пульта! на плате есть возможность отрегулировать чувствительность и время срабатывания микрофона.
14. режимы работы отображаются светодиодами на плате. на плате возможно механическое отсоединение сигнала с микрофона либо "байпас"
компрессора.
15. регулировка уровня входного сигнала линейным стерео потенциометром.
17. кнопки с платы убраны все, кроме переключения из ждущего режима. нужно для аварийного режима. если перестал работать пульт, а нужно включить хоть что то.
никаких энкодеров и т.д. скетч в первую очередь адаптировался под большую ленту. была битва за каждый байт и даже бит. и дорабатываться будет дальше.
18. Параметры сохраняются в память при отключении ЦМУ. в том числе режимы, шумы, настройки для режимов.
19. питание ленты обособлено от питания ардуино. вы не "сожжете" ардуино, забыв подключить внешний БП и программируя её через USB.
20.

Если вы нашли ошибку или знаете, как что то доработать - напишите об этом.

Особая благодарность Евгению (Slenk) - он находил на меня пару минут на ответ и подсказку. я же подглядывал в его скетч и брал самое лучшее.
так же благодарность - Sergo_ST без его подсказок и терпеливых ответов на мои глупые вопросы скетч был бы намного "толще и тупее". и не факт, что работал бы.


Этап второй ЦМУ на фильтрах. проект делается совместно с poty
проект сложен для сборки.
что сделано - плата. бетта версия. постоянно вносятся изменения. часть отлажена и уже работает.
модуль сбора данных. частично отлажен. работа продолжается.
ЦМУ на фильтрах можно повторять. работает! плату можно заказывать. недавно были изменены некоторые номиналы конденсаторов в фильтрах.
плата доступна тут .
скетч colorMusic_v8_filter.rar
эффектов очень много. все описано вначале скетча. могу сказать, что есть эффекты от Лумазоид ЦМУ. :)
 

Вложения

Изменено:

Комментарии

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
так. нам нужен ещё сумматор для стереосигнала. тут уже морочиться с двухканальной схемой слишком. у меня есть такой вариант.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
если бы было что то особенное я бы не спрашивал. поэтому предлагайте. а то сейчас как нагорожу два канала. мало не покажется.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,963
632
44
@technotrasher, Один канал пустить как есть, второй подмешивать через ФВЧ. Чтобы не было интерференции которая обычно бывает на низких частотах, на средних и высоких оно не так заметно.
Но вообще, правильно смикшированная музыка должна нормально играть как на стерео, так и на моно без всяких извращений.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
компараторе(ацп) выход не одной частоты, а например диапазон НЧ , скажем 63 ГЦ-200ГЦ
преобразование аналога с помощью ОУ (компараторов)
Я не понимаю вопроса, заданного в таких терминах. Причём тут вообще компараторы и АЦП?
Полосовой фильтр (не важно, цифровой или аналоговый) имеет множество характеристик, нам интересны, в общем и целом, 3: центральная частота, полоса пропускания (как раз определяет диапазон вокруг центральной частоты, который уменьшается по амплитуде не более, чем на прогнозируемую величину) и коэффициент передачи фильтра (на сколько в результате уменьшится/увеличится амплитуда сигнала). Надеюсь, из этого понятно, что можно с этим сделать. Конечно, параметров фильтра гораздо больше, чем 3, но остальные для данного применения неважны.
Берите с цифрового выхода или с оптики
Вот! Если бы мне вдруг потребовалось сделать цветомузыку, я бы остановился именно на этом варианте. Да, часть источников (например. винил) были бы не охвачены, но использовать сейчас винил для цветомузыки, учитывая его аудиофильский статус, вряд ли кому в голову придёт.
Коллеги, что ж Вы зациклились на LM324? Можно взять любые практически, в нужных корпусах.
нам нужен ещё сумматор для стереосигнала. тут уже морочиться с двухканальной схемой слишком.
Мне кажется, это чересчур. "Сумматор" из пары входных конденсаторов и пары резисторных делителей с общим сопротивлением будет работать отлично.
Но я бы всё же замахнулся на стерео вариант. Для этого на вход достаточно поставить пару JFET и управлять ими с помощью цифровых выходов. То есть, переключать вход с частотой, допустим 20Гц (всё равно изменять картинку с большей частотой бесполезно) и снимать для каждого канала отдельный набор из квантованных значений в полосах. Ничем не сложнее управления MSGEQ7.
 
  • Лойс +1
Реакции: Yawdamper

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
Коллеги, что ж Вы зациклились на LM324? Можно взять любые практически, в нужных корпусах.
Взято чисто для примера. Да их как грязи и я лично на них собирал. Вариант цветомузыки очень устроил. Бегло посмотрел урок по msge.так там же код минимум переделывать. Данные с микрухи помещаются в массив. В него же надо кидать значения с аналоговых входов к которым подключены операционники. Делов то. Другое дело классные спецэффекты.у меня в голове каша.

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

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Надо создавать обекты жизнидеятельность которых(количество,цвет,расроложение,движение,гравитация,яркость,время жизни,параметры наложения) зависят от значений на аналоговых входах.короче ооп
отлично!!! с интересом посмотрим ваш скетч!!!!

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

Мне кажется, это чересчур. "Сумматор" из пары входных конденсаторов и пары резисторных делителей с общим сопротивлением будет работать отлично.
Но я бы всё же замахнулся на стерео вариант. Для этого на вход достаточно поставить пару JFET и управлять ими с помощью цифровых выходов. То есть, переключать вход с частотой, допустим 20Гц (всё равно изменять картинку с большей частотой бесполезно) и снимать для каждого канала отдельный набор из квантованных значений в полосах. Ничем не сложнее управления MSGEQ7.
Я над этим думал. но что с сигналом сделаем JFET? а так можно. если не сложно накидайте сумматор и такой ключ. схема, кстати получается уже ого.... :)))) я оставил там компрессор с детекцией клипинга.
 

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
отлично!!! с интересом посмотрим ваш скетч!!!!
На процессинге делал без проблем. Но комп использовать это перебор. Хотя на елку во дворе буду связку jinx и ардуино пробовать. Как динамически создавать обьекты в ардуинке еще не разбирался.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
На процессинге делал без проблем. Но комп использовать это перебор. Хотя на елку во дворе буду связку jinx и ардуино пробовать. Как динамически создавать обьекты в ардуинке еще не разбирался.
огромное спасибо. для данного проекта есть какие нибудь решения? идеи? хотя идей хватит. варианты изменения скетча? оптимизация с использованием ассемблера?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
ключ подскажет мне кто нибудь на полевиках? действительно идея может сработать.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
@technotrasher, ну, например:
изображение_2021-08-26_170847.png
Left_In, Right_In - это входы соответствующих каналов.
Sw_Out - выход одного из каналов, выбираемого Ch1_Sel или Ch2_Sel (цифровые выходы Ардуино).
Я тут не рисовал входные конденсаторы, как правило, они здесь не нужны
 
  • Лойс +1
Реакции: technotrasher

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
огромное спасибо. для данного проекта есть какие нибудь решения? идеи? хотя идей хватит. варианты изменения скетча? оптимизация с использованием ассемблера?
Будут. Я здесь надолго. С моря вернусь. Возьму паяльник. Посмотрю что у вас получилось(если ленты с китая придут) может уже все супер и за глаза хватит.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@technotrasher, ну, например:
Посмотреть вложение 29122
Left_In, Right_In - это входы соответствующих каналов.
Sw_Out - выход одного из каналов, выбираемого Ch1_Sel или Ch2_Sel (цифровые выходы Ардуино).
Я тут не рисовал входные конденсаторы, как правило, они здесь не нужны
отлично!!! а V5 это питание. сколько должно быть? планируем все на 5 вольт.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
@technotrasher, я рассчитывал на 12В, но если уменьшить R7, допустим, вдвое, то можно и 5.
Классический "гитарный" коммутатор можно здесь посмотреть (он как раз на JFET).

@VictorArx, не согласен. После компрессора снимается только часть проблем.
 

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
Обьясните убогому, в двух словах нахрена эти компрессоры. Что бы ко входу для наушников подключаться и работа цму не зависела от громкости? Всю жизнь подобные устройства подключались к линейному выходу. Мне кажется это большое сужение динамического диапазона.Статью в топике прочитал.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
525
86
нахрена эти компрессоры
Всего лишь для выравнивания амплитуды во всём диапазоне частот.
Компрессор (от англ. ... «compress» — сжимать, сдавливать) — электронное устройство или компьютерная программа, выполняющее уменьшение (сжатие) динамического диапазона звукового сигнала; иными словами, компрессор позволяет сделать более узкой разницу между самым тихим и самым громким звуком.
Другими словами если настроить цветомузыку на большую амплитуду аудио сигнала, то тихая музыка будет звучать в темноте и наоборот, если на малую амплитуду, то громкая музыка зажгёт постоянно все лампушки.
Это если без компрессора.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,220
938
@kach-99, то, что Вы предположили - это АРУ. То, что реализовано у @technotrasher - это комбинация АРУ и компрессора.
АРУ "следит" за RMS сигнала на входе и управляет усилением так, чтобы RMS на выходе изменялся, допустим, в интервале в 10 раз меньшем, чем исходный. Как правило есть RMS отсечки, при этом значении АРУ выключается, чтобы не усиливать шумы. Для вычисления RMS используется интервал интегрирования и он достаточно большой (обычно - 50мс и больше).
Компрессор действует немного по другому. Фактически он представляет собой нелинейный усилитель, т.е., он уменьшает динамический диапазон сигнала.
На вопрос "для чего" я пытался ответить уже дважды. Громкость (как раз та самая RMS) может меняться довольно значительно (яркий пример - "Стена" Pink Floyd - RMS "гуляет" примерно в интервале от 40 до 110дБ. А у нас динамический диапазон АЦП - в идеале, если не брать его шумы, 60дБ. Т.е., в тихих фрагментах у нас будет всегда 0 на всех частотах, цветомузыка будет молчать.
Отношение амплитуды к RMS типичного музыкального фрагмента - это 13-20дБ. Это означает, что мы будем уменьшать разрядность АЦП на те самые 13-20дБ. Компрессор пытается уменьшить эти потери. На слух это может восприниматься плохо, но нам-то нужно получить лишь информацию.
 

kach-99

✩✩✩✩✩✩✩
11 Авг 2021
23
6
ИМХО нафиг не нужны :)
Поэтому на микроконтроллерах хрень получается, а не цветомузыка, при резком увеличении громкости люди слепнуть должны на дискотеке. Вот это драйв. Помню у отца 8 фар от мотороллера. А сейчас, в некоторых роликах, собрал цветомузыку на трех светодиодах.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
Поэтому на микроконтроллерах хрень получается, а не цветомузыка, при резком увеличении громкости люди слепнуть должны на дискотеке. Вот это драйв. Помню у отца 8 фар от мотороллера. А сейчас, в некоторых роликах, собрал цветомузыку на трех светодиодах.
опять ошибаетесь, полностью не разбираясь в предмете. как раз программная цму может все, что может программист. и можно реализовать алгоритм, который будет являться программным компрессором. и чем угодно.
 
  • Лойс +1
Реакции: novvel

technotrasher

★★★★✩✩✩
14 Ноя 2019
510
227
@technotrasher, я рассчитывал на 12В, но если уменьшить R7, допустим, вдвое, то можно и 5.
Классический "гитарный" коммутатор можно здесь посмотреть (он как раз на JFET).
расчитываем все на 5В. так как этот блок питания есть и светодиодные ленты также на 5. 3.2В я только использую для микросхемы компрессора.
 

poty

★★★★★★✩
19 Фев 2020
3,220
938
@technotrasher , обратите внимание, что фильтры питаются от двухполярного питания, т.е., даже если остаёмся на 5В, то нужно плату инвертора питания всё же применять или сделать от ШИМ Ардуино.
 
Изменено:
  • Лойс +1
Реакции: technotrasher