Понедельник, 20.11.2017, 14:44
Приветствую Вас Гость

Портал светоэффектов

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Форум портала светоэффектов » Основной форум » Алгоритмы, принципы, идеи (Нуждаюсь в советах, обмене мнениями)
Алгоритмы, принципы, идеи
ARVДата: Среда, 04.10.2017, 09:37 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 9
Статус: Offline
Приветствую, коллеги!
Тема про коллективную разработку закрыта и законсперирована, а желание сделать нечто интересное есть. Но реализовать это желание, варясь "в собственном соку", не получится скорее всего. Поэтому рискну обратить ваше внимание на себя, надеюсь на понимание.

Итак, я решил сделать "цифровую" цветомузыку. Данный сайт и форум, кстати, помог мне решить некоторые системные проблемы, за что я благодарен всем. Простое копирование чужих проектов меня никогда не привлекало, поэтому хочу сделать все по-своему, не гнушаясь чужим опытом.
На сегодняшний день сделано и практически "отсмотрено" следующее:
- в общих чертах готова принципиальная схема
- разработано программное обеспечение (AVR, от atmega8 и лучше)
- разработаны несколько "эффектов"
Вот видео одной из самых первых попыток, сейчас все лучше и разнообразнее

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

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

(продолжение следует)

Добавлено (04.10.2017, 09:35)
---------------------------------------------
(продолжение) 
Главное, чего хочу я добиться, это уничтожить в принципе самый главный бич цветомузык - однообразие мигания. Поэтому я решил разрабатывать цветомузыку по модульному принципу: неизменное ядро программы и произвольное количество (сколько в память влезет) независимых модулей "эффектов", из которых можно самостоятельно скомпилировать любой комплект.

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

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

Но вот в чем я очень нуждаюсь, коллеги, так это в идеях алгоритмов, которые стоит реализовать! Когда я смотрю видео, я не всегда понимаю логику работы, то есть как следует обработать звук (FFT), чтобы реализовать увиденное. Ну и принципиально - какие сервисный функции стоит делать, а какие нет.

Например, автоматическая регулировка усиления (или сжатие динамического диапазона) - это нужно/не нужно? Если нужно, то надо ли дополнительно делать ручную регулировку? На какие нюансы алгоритма эта регулировка должна влиять? То есть должна меняться средняя яркость, чувствительность (порог реакции) или что-то третье... На какой диапазон уровня входного сигнала следует ориентироваться?

В общем, много разных, смутно сформированных вопросов...

Сейчас я сделал так:
- управление всеми функциями - энкодер и одна кнопка
- есть ЖКИ из 2 строк по 16 символов, но его наличие не обязательно, хотя повышает удобство (есть возмодность работы с меню)
- кнопка вызывает на ЖКИ меню, которое исчезает само после 15 секунд неактивности кнопки или энкодера
- нажатие энкодера переключает пункты меню, вращение меняет значение в пункте
- в обычном (не-меню) режиме нажатие энкодера переключает по кругу эффекты, а вращение переключает преднастройки текущего эффекта
- работают 2 режима: фон и активный. фон в тишине, активный с музыкой. энкодер переключает соответственно эффекты для фона или активного режима (т.е. в тишине выбрать активный эффект нельзя)
- есть режим "лампы", когда музыка не влияет на цвет вообще
- в меню можно включить/выключить АРУ, изменить "уровень" (см.выше вопрос - уровень чего? пока не определился), изменить яркость подсветки ЖКИ, задать время автоотключения, настроить приемник IR-сигналов с любого пульта, настроить количество светодиодов WS2812 (от 8 до 128)...

Сейчас реализовано 6 фоновых эффектов и 5 активных, для некоторых эффектов предусмотрено до 12 пресетов...
Есть видео, на котором засняты фоновые эффекты, можете посмотреть (музыка просто так, чтобы видео не было скучным)

На видео показаны некоторые пресеты эффектов.

В общем, вот пока мои достижения.

Какие советы, помимо вышеописанных, я хотел бы получить:
1. Стоит ли ориентироваться на различные форматы "экранов"? Ведь зрелищность эффектов напрямую зависит от того, как экран реализован. У меня пока плафон с линейкой из 32 светодиодов, и под него я подогнал зрелищность эффектов. Но на "матрице" 10х10 светодиодов многие эффекты не смотрятся, зато можно сделать другие... стоит сразу ориентироваться на это или нет? Если стоит - на что именно?
2. Какие эффекты вы считаете наиболее зрелищными? Прошу описать алгоритм словами. Например, вот как описывается мой эффект "летящие огни": "Летящие огни – сигнал разделен на 3 частотныхполосы НЧ-СЧ-ВЧ соответственно для красного, зеленого и синего цветов. Уровень
частотной полосы определяет длину светящейся полоски соответствующего цвета.
Центры полосок расположены на равном удалении друг от друга по всей полосе
светодиодов. В зависимости от ритмического рисунка мелодии центры цвета и
порядок их следования перемещаются.
"
3. Какие регулировки сделать ручными, а какие автоматическими?

Ну, потом, наверняка, будут и другие вопросы... Надеюсь, вы не оставите без внимания меня... заранее спасибо.

Добавлено (04.10.2017, 09:37)
---------------------------------------------
P.S. Извините, но сначала форум отказал мне в сообщении из-за его размера, я разбил сообщение на два, а форум объединил их... и получилось некрасиво - всякие продолжения следуют ни к селу ни к городу. Извините, еще не привык к движку форума...

 
AnahoretДата: Среда, 04.10.2017, 15:01 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 16
Статус: Offline
Интересно на каком МК  вы планируете это все реализовать ?

"изменить "уровень" (см.выше вопрос - уровень чего? " - обычно уровень входного сигнала или усиление микрофонного усилителя.
 
RadanДата: Среда, 04.10.2017, 16:07 | Сообщение # 3
Лейтенант
Группа: Администраторы
Сообщений: 52
Статус: Offline
ARV, приветствую вас на нашем портале!
Вы достигли несомненных успехов, и это приятно видеть.
Я закрыл тему коллективной разработки, потому что не сложилось - из коллектива я один на тот момент оказался.
Да и рутина меня тоже захлестнула...
Вот одно из наших общих достижений -
Гена Чернов писал прошивку для контроллера, а я - визуальный конструктор пресетов.
Сейчас много писать не могу, чуть позже выложу свои соображения по этому поводу.
 
ARVДата: Среда, 04.10.2017, 16:30 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 9
Статус: Offline
Цитата Anahoret ()
Интересно на каком МК  вы планируете это все реализовать ?
Я по старинке делаю это на AVR. в настоящее время весь описанный функционал реализован на atmega32, но лишь по причине того, что она у меня есть в наличии. Объем кода в настоящее время вполне упихивается в atmega16, а если пожертвовать кое-какими наворотами (например, ЖКИ с "псевдографическим" спектроанализатором), то уместится и в atmega8.

Единственное, что сильно отличает мой проект от известных аналогов в плане обработки звука, так это полоса. Я умышленно ограничил её четырмя килогерцами. Хочу попробовать сделать "традиционные" 8КГц, но при этом, скорее всего, придется снизить частоту обновления рисунка с нынешних 100Гц до 50Гц или чуть ниже - думаю, на визуальном восприятии это никак не скажется.
Цитата Anahoret ()
обычно уровень входного сигнала или усиление микрофонного усилителя
Это почти понятно... Я в своей системе отказался от переменного резистора для регулировки "уровня". Энкодер у меня может что-то менять программно. Усиление входного каскада - да, можно, но стоит ли? Многие увиденные мною видео работают по принципу "если сигнал выше заданного порога - надо сделать вспышку предельной яркости с плавным затуханием". Регулировать порог для этой вспышки или стремиться сохранить пропорцию яркость/уровень? По-моему, результат будет разный, а какой лучше - не понимаю... К тому же у меня отключаемая АРУ: когда она включена, регулятор уровня как бы становится не нужным, но раз крутилка есть - какую функцию на неё возложить в этом случае?

Добавлено (04.10.2017, 16:30)
---------------------------------------------
Цитата Radan ()
Вот одно из наших общих достижений


Это очень впечатляет! Хотелось бы понять: как именно алгоритмически вы формируете рисунок по музыкальному сигналу? Как связан рисунок и его цвет с музыкой? Ну и, честно говоря, такой огромный экран (в плане количества WS2812) мне в настоящее время не по силам... Две сотни я приобрел, конечно, но на 400 не замахиваюсь...


Сообщение отредактировал ARV - Среда, 04.10.2017, 16:31
 
RadanДата: Среда, 04.10.2017, 22:34 | Сообщение # 5
Лейтенант
Группа: Администраторы
Сообщений: 52
Статус: Offline
CH-цветомузыка, так назвал её Геннадий Чернов.
Основные принципы сформированы в его статье - http://lightportal.at.ua/publ....-1-0-35
и здесь: http://catcatcat.d-lan.dp.ua/ch-svet....muzyika

На этой основе построены 2 конструкции:
http://lightportal.at.ua/publ....-1-0-76
http://lightportal.at.ua/publ....-1-0-77

И недоделанная... http://catcatcat.d-lan.dp.ua/ch-svetomuzyika/novosti-razrabotki/

Принцип такой:
Имеем 256 полос после преобразования фурье и например, 8 выходных каналов.
В классической цветомузыке 256 полос делятся на 8 каналов, от НЧ к ВЧ.

1 канал - 1 полоса
2 канал - 2 и 3 полосы
3 канал - 4-7 полосы
4 канал - 8-15 полосы
5 канал - 16-31 полосы
6 канал - 32-63 полосы
7 канал - 64-127 полосы
8 канал - 128-256 полосы

А CH-цветомузыке так - первые 8 полос идут в 8 каналов, затем следующие 8 полос опять идут в 8 каналов, и так до конца.

1 канал - 1, 9, 17, 25 ... полоса
2 канал - 2, 10, 18, 26 ... полоса
3 канал - 3, 11, 19, 27 ... полоса
4 канал - 4, 12, 20, 28 ... полоса
5 канал - 5, 13, 21, 29 ... полоса
6 канал - 6, 14, 22, 30... полоса
7 канал - 7, 15, 23, 31... полоса
8 канал - 8, 16, 24, 32... полоса

В классической цветомузыке рядом звучащие ноты практически всегда попадают в один канал.
А это нехорошо, визуально незаметно.
А в CH-цветомузыке рядом звучащие ноты попадают в разные (соседние) каналы.
Восприятие в разы лучше. И решение красивое, как много частот отобразить на малом количестве каналов.

Я это продемонстрировал на компьютерном прототипе "Свечечки"



Смешение цветов идёт по такому же принципу, только вместо монохромных выходных каналов уже полноцвет.

А привязка к матрице - это по сути таблица, в которой указываем какой выходной канал должен попасть в определённую светодиодную ячейку.
Таких таблиц много, по необходимости мы их переключаем, переходя от узора к узору.
Вручную набивать муторно, поэтому визуальный конструктор запилил.

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

Задача для одного человека сложная. Технически реализовать можно всё, но довести до красоты можно только тысячами независимых просмотров, объективных оценок, дельных советов и умеренной критики.
 
ARVДата: Четверг, 05.10.2017, 07:52 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 9
Статус: Offline
О, спасибо за пояснения.
Однако, алгоритм хоть и интересный, и результат впечатляющий, но 256-полос FFT!!! Это не для AVR, однако sad В текущем варианте у меня всего 16 полос... ну можно 32 сделать... О выделении частот "соседних" нот речь не идет однозначно...
По сути у вас алгоритм не сам рисует картинку, а как бы воспроизводит заранее нарисованные... Само собой, человек сделает рисунок получше МК, но ведь это достаточно сложно и муторно... 

Еще верно я понял, что экран у вас состоит из одинаковых 4-х матриц 8х8, соединенных параллельно и размещенных "зеркально" относительно центральных осей? Рисунок явно осесимметричный всегда...

Я так понимаю, развитие проекта вы сотоварищи прекратили? Просто любопытно: не пробовали ли вы скрестить алгоритм деления на каналы со случайным распределением каналов по экрану? При наличии осей симметрии должны получаться симметричные узоры, которые могут оказаться не хуже нарисованных... Но надо проверять.
 
RadanДата: Четверг, 05.10.2017, 08:25 | Сообщение # 7
Лейтенант
Группа: Администраторы
Сообщений: 52
Статус: Offline
Экран 16х16. В некоторых случаях симметрия рисуется по горизонтали, в некоторых - по вертикали.
Но в основном это полная симметрия вокруг центральной точки.

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

Проект пока заморожен. Из за отсутствия времени и финансов: в железе он только в одном экземпляре существует.
Собрать остальные не смогли по вышеуказанным причинам...
 
ARVДата: Четверг, 05.10.2017, 08:43 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 9
Статус: Offline
Ясно... 
В общем, я вооружился вашими CH-идеями, буду пробовать реализовать их по-своему. Сейчас застрял на входном усилителе/фильтре. То ли из-за того, что все собрано на сопливом макете, то ли от незнания нюансов ОУ, прут у меня помехи какие-то на выходе sad Предыдущие, зафиксированные на видео, опыты я ставил тупо подавая на вход АЦП сигнал с аудиовыхода компа, а теперь вот добавил ОУ - и всё развалилось sad
 
AnahoretДата: Четверг, 05.10.2017, 13:58 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 16
Статус: Offline
После ОУ фильтр нужно ставить.
Срезать все что выше неиспользуемой частоты.
 
ARVДата: Четверг, 05.10.2017, 14:32 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 9
Статус: Offline
Цитата Anahoret ()
После ОУ фильтр нужно ставить

Ну, я как бы в курсе. Вот на выходе фильтра и прёт какая-то дрянь...
 
Juris_3DДата: Пятница, 27.10.2017, 12:39 | Сообщение # 11
Рядовой
Группа: Друзья
Сообщений: 15
Статус: Offline
Тут, смотрю, что-то интересное тоже намечаетса smile Разобрались с аудио входом? Что нового? ;-) Я в отпуске, вот и шастую теперь по форумам и тому подобное :))
 
Форум » Форум портала светоэффектов » Основной форум » Алгоритмы, принципы, идеи (Нуждаюсь в советах, обмене мнениями)
Страница 1 из 11
Поиск: