ARDUINO Цветомузыка на Arduino. Обсуждение проекта

Moraxus

✩✩✩✩✩✩✩
1 Янв 2021
2
0
Оказалось, что провод слишком длинный. Всем спасибо за ответы.
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@Slenk, появилась идея: а что если вот режим 6 сделать с эффектом 8.4. т.е. что бы вспышки были разделены по частотам НЧ,СЧ,ВЧ и затухали постепенно, это была бы реализация древней лампочной ЦМУ на светодиодах) такое возможно реализовать в рамках нашего проекта?
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Перезалил прошивку. Оказывается режим 8.2 рассыпался при 200 пикселах и больше. Пол ночи думал, что с этим делать, ппц я там наворотил))

@novvel, возможно, но тут от обратного) Я вообще в 8 режим собирался добавлять вариант раскрашивания вспышек/огоньков в зависимости частоты. Собственно в оригинале есть такое. Но там с наскоку не сделать, хз когда руки дойдут.

Чуть продвинулся в масштабировании эффектов к разным лентам, может бетку позже кину.
 
  • Лойс +1
Реакции: mvv

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@Slenk, Понял принял. А скорость бега огней в 8 где можно немного опустить? А то я прям сильно замечаю маленькую частоту обновления ленты как будто, хотя всего 120 светодиодов, может с меньшей скоростью будет приятнее))
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@novvel, да этот 8 режим вообще через одно место работает) Меня самого наколяет, там надо половину переписать, а то всё на костылях... И да, троит как будто. Просто так скорость не получится регулировать, это надо куда-то задержку вставлять. Сам не знаю, кручу и так и сяк, пока не придумал как можно по нормальному сделать. А тут и каникулы заканчиваются...

Чисто для теста попробуй тут - вкладка 1, строка 54:
#define MAIN_LOOP 5 // Период основного цикла отрисовки (по умолчанию 5)
поменять на 1 или 10 или 15. И расскажи о впечатлениях) Но это может влиять на задержки и в других эффектах.

П.С. мне базу данных надо писать для работы, а я тут фигней занимаюсь все выходные))) А еще супруга не шибко одобряет моё залипание в эти ваши ардуинки)))
 
  • Лойс +1
Реакции: ig3757 и technotrasher

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Поставил 1мс, стало приятнее, не так дергано, плавнее заметно, на остальное не повлияло вроде. Пока пусть так будет)
UPD: Допиши в список эффектов 2.20 на шуме перлина смена цветов там и ускорение смены цвета под музыку/микрофон. и 2.9 и 2.10 местами поменяй в списке. стробоскоп на кнопке 3 исправь.
 
Изменено:

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар

@novvel,
Вот да, аналогично) при 1 мс работает лучше, но пока я не знаю что мне делать с этой информацией)) я там ещё сброс счётчика в другое место поставил в 2.5, тоже чуть плавнее вроде стало
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
@Slenk, на что вообще влияет эта задержка? Это таймер общий на весь код или только на саму отправку пакетов на ленту? И как высчитать какая минимальная может быть под конкретное железо, частота МК и количество светодиодов для максимального количества ФПС как бы сказать? Где то видел, но теперь разве найдешь...
Короче насчитал что на то что бы закрасить ленту 120 светодиодов надо 3,65мс вместе со сбросом. Только зачем я посчитал пока не знаю :D
Вероятно, если я правильно считаю, то максимум можно выжать из 120 светодиодов 277гц частоту обновления.
 
Изменено:

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
UPD: Допиши в список эффектов 2.20 на шуме перлина смена цветов там и ускорение смены цвета под музыку/микрофон. и 2.9 и 2.10 местами поменяй в списке. стробоскоп на кнопке 3 исправь.
Это в инструкции что ли?) Мне лень её менять, там постоянно что-то меняется и я задолбался её править. Внутри скетча более менее актуальная.
2.20 - ахаха))) Этот психодел вообще случайно в "тираж" ушел, просто я забыл его удалить)) Я его добавил для себя, что бы отрабатывать различные сценарии зависимости Пёрлина от звука и в нём попытался сымитировать классическую дискотечную "долбилку" по глазам))

@novvel, эта общая задержка, влияет на исполнение всего кода (кроме обработки пульта, кнопок и сохранения настроек). То есть теоретически вся анимация у нас анимируется с частотой 1000/5=200 кадров в секунду - более чем достаточно. Но это в том случае, если код успевает исполниться и пакет на ленту успевает отправиться за эти 5 мс. А вот если не успевает, то могут быть "тротлы".
1610190118536.png
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Это в инструкции что ли?) Мне лень её менять, там постоянно что-то меняется и я задолбался её править. Внутри скетча более менее актуальная.
2.20 - ахаха))) Этот психодел вообще случайно в "тираж" ушел, просто я забыл его удалить)) Я его добавил для себя, что бы отрабатывать различные сценарии зависимости Пёрлина от звука и в нём попытался сымитировать классическую дискотечную "долбилку" по глазам))

@novvel, эта общая задержка, влияет на исполнение всего кода (кроме обработки пульта, кнопок и сохранения настроек). То есть теоретически вся анимация у нас анимируется с частотой 1000/5=200 кадров в секунду - более чем достаточно. Но это в том случае, если код успевает исполниться и пакет на ленту успевает отправиться за эти 5 мс. А вот если не успевает, то могут быть "тротлы".
Это в скетче, там инструкция у тя от версии к версии с разными ошибками)) 2.20 не вздумай удалять, мне кажется самая крутая штука для фонового освещения, 80% времени теперь она светит)) Да и по глазам она не долбит, но хорошо отрабатывает на звук и довольно приятно меняет цвет от баса/СЧ.
А есть вариант сделать менее 1мс?)) что бы до максимума контроллера догнать и что бы найти тот минимум времени, при котором еще нет ошибок в обновлении пикселей. 200гц обновление на 2 метрах либо недостаточно, либо есть баги, раз у нас при 1мс более менее плавно бегут пиксели, а при 5мс уже довольно заметны задержки, как бы это все проверить? А что будет если МК не успеет обработать код, лента останется на последнем варианте же? т.е. не успеваем выдать команду - старая картинка, старый кадр и он же фриз/задержка/лаг. Я правильно думаю?
Или забить и пользоваться как есть :D
Да, и что это за таблица? я просто по даташиту и мануалу посчитал сколько надо времени на отрисовку исходя из количества бит, т.е. теоретический предел самого чипа 2812 без учета работы кода/МК
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@novvel, блин, действительно в скетче))) Ок, поправлю)
Да вот я и пытаюсь сейчас всё это выяснить, пока жена у тёщи))
Вариант есть, но смысла в этом нет. Там проблема в другом. Стандартные 5 мс. - это ограничение, что бы он сильно не разгонялся. То есть цикл программы прокручивается не чаще, чем 200 раз в секунду. Но кадры не проскакивают, просто если цикл не успевает крутиться так быстро - то он крутится так как получается. И выходит уже меньше 200 раз в секунду.

Я попробовал выводить в порт сколько реально МС тратится на один проход в этом режиме. У меня на 288 диодах получилось в районе 20 мс. если музыка играет, а если не играет, то уже около 17 мс. Правда метод так себе ибо ардуинка находится в "суперпозиции" и сам факт наблюдения, тоже влияет на быстродействие)) Но для статистики сойдет.

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

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Так, господа, не обижайтесь, но буду использовать форум как дневник, если что жалуйтесь админам))) Надо описать проблему, и возможно в процессе ко мне придет решение, а может кто другой подскажет. Вчера начал рассказывать супруге, но она не оценила)))

Пытался я значит нормализовать работу этих несчастных огоньков (режим 8), будь проклят тот день когда technotrasher попросил их добавить))) Вроде даже получилось, но результат я не зафиксировал ибо в процессе придумал, как можно гармонично (в ~5 строк, как мы любим) добавить функцию автоматического включения подсветки после 3 секунд тишины. Всё отлично заработало (не с первого раза конечно):
1. Выбираешь подсветку какая больше нравится (из 1 или 2 режима) настраиваешь по душе.
2. Потом если нужна "цветомузыка", переключаешь на нужный режим пусть будет 9 (Уровни)
3. Если музыка не звучит более 3 секунд, то устройство переходит в режим который был настроен в пункте 1.
4. Как только появляется звук, то переключается обратно в режим из пункта 2
и так далее до бесконечности.

Но вот незадача, все отлично работает кроме режима с этими всратыми огоньками... Там может отрабатывать нормально, а может переключаться на подсветку при наличии звука, причем это может произойти (переключение туда сюда) несколько раз в секунду, что теоретически должно быть не возможно, ибо минимум 3 секунды оно должно отрабатывать в режиме цветомузыки. Код абсолютно унифицирован для всех режимов, там нет костылей и прочего. Он должен либо везде работать, либо везде НЕ работать, а не так... Короче меня эти "блуждающие токи" и "фантомные" переменные уже заколебали...
Причем уже была неведомая хрень (до сих пор не знаю почему), что в главном массиве последний элемент сам по себе принимает рандомное значение и при этом еще влияет на другую переменную вообще никак с ним не связанную. Пришлось тупо увеличить массив на 1 одну ячейку и нигде её не использовать, глюки пропали... чудеса...
 
  • Лойс +1
Реакции: novvel и Ansherka

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
это потому что лучшее - враг хорошего. у меня работает все и мне нравится. сейчас делаю плату на меге с фильтрами и АРУ.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
это потому что лучшее - враг хорошего.
Это точно) У меня то тоже работает, мне по большому счету она вообще нафиг не нужна, цветомузыка эта) У меня на закате включается подсветка на балконе (огонь), и на время праздников переключил на более цветастый режим. ВСЁ, больше я там ничего не использую))) Но народ пользует, а я за Коммунизм - каждому по потребностям от каждого по способностям)

Кстати придумал как в теории освободить байт 200-300 оперативки. Упразднить главный массив и все вычисления производить сразу "внутри ленты", библиотека ведь и так создает массив на 3*пикселы байт и почему бы нам его не задействовать для своих целей)
 
Изменено:
  • Лойс +1
Реакции: novvel

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
это потому что лучшее - враг хорошего. у меня работает все и мне нравится. сейчас делаю плату на меге с фильтрами и АРУ.
Всегда хочется большего, я тоже использую и мне нравится уже все в принципе, вылизать код и норм. Но фишка с дежурным режимом прикольная конечно, хз правда нужна она кому то? Я бы не отказался затестировать, а там как пойдет. Последнее время выбираю мягкие эффекты всякие плавные на перлине, вместо дергающихся режимов. Кстати давно в коде плавает баг: бывает переключаешь на режим 9 с огнем который и огонь принимает цвет из чужого места какого то)) Бывает редко, от чего зависит и чей цвет присваивается пока не выявил.
@Slenk, по поводу пульта и настроек отписал в другой теме суть.
 
Изменено:

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
Кстати давно в коде плавает баг...
А это не баг, это фича))) Там одна переменная на весь код отвечает за этот "сдвиг" цвета от стандартного) То если поменять цвет огня, то поплывут цвета и в других эффектах)) Ну вообще да, давно надо было с этим что-то сделать, но "плодить" переменные не хочется, может запакую куда-нить в укромное место. По сути можно "крутить" так же одну переменную, но записывать её в разные ячейки постоянной памяти.
 

PerHakS

✩✩✩✩✩✩✩
7 Дек 2020
13
3
Здравствуйте, помогите пожалуйста, цветомузыка работает, прошивка от slenka, но у меня очень много каких-то недочётов..
почему-то музыка в 3 частоты или 5 у меня почему работает некорректно, что от микрофона, что от линейного моно(почему-то горят только красные- низы, бывают и другие частоты но их меньше, намного меньше чем красных)что я только не пытался сделать, и всеравно желаемого результата достичь не могу,тоесть все режимы которые связаны с разделением частоты у меня плохо работают.
И ещё скажите пожалуйста 8 и 9 режима от slenka (не помню как называется) работают только от СТЕРЕО?ибо на моно не работает эти режимы не работают, а на стерео 9 режим работает неравномерно (одна сторона больше другая меньше)8 режим работает равно много даже на стерео, можно ли как-то сделать 9 режим под моно, или же он должен работать от моно и косясу где-то я?
Спасибо.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@PerHakS, 8 и 9 режимы должны работать и от LINE и от микрофона примерно одинаково. Такое чувство, что где-то что-то не припаяно или плохо припаяно. Даже больше скажу, микрофон как будто не припаян, а в LINE припаян только один канал и он "наводит" на второй пин (поэтому эта часть меньше)
А на счет "частот" они у всех так себе работают, одно из решений было несколько страниц назад. Ну и если "буфер" накручен, так он и будет все забивать.
 

novvel

★★★✩✩✩✩
29 Сен 2018
568
192
Здравствуйте, помогите пожалуйста, цветомузыка работает, прошивка от slenka, но у меня очень много каких-то недочётов..
почему-то музыка в 3 частоты или 5 у меня почему работает некорректно, что от микрофона, что от линейного моно(почему-то горят только красные- низы, бывают и другие частоты но их меньше, намного меньше чем красных)что я только не пытался сделать, и всеравно желаемого результата достичь не могу,тоесть все режимы которые связаны с разделением частоты у меня плохо работают.
И ещё скажите пожалуйста 8 и 9 режима от slenka (не помню как называется) работают только от СТЕРЕО?ибо на моно не работает эти режимы не работают, а на стерео 9 режим работает неравномерно (одна сторона больше другая меньше)8 режим работает равно много даже на стерео, можно ли как-то сделать 9 режим под моно, или же он должен работать от моно и косясу где-то я?
Спасибо.
Косяк с 3 частотами у всех, они то пашут то нет, в скетче есть коэффициенты на разные частоты, можно уменьшить низы, но это мало помогает, все равно заливает все красным, по хорошему там надо сделать частоту среза НЧ гораздо ниже чем есть. 9 режим можно сделать под моно, в прошивке где то надо заменить кусок кода, полистай страницы назад, я там спрашивал и сленк отвечал мне, на память я не помню. Еще внимательно поиграйся с чувствительностью, вручную ее регулируй на свой вкус на разных режимах (часть настроек общие на несколько режимов), схему в скетче надеюсь правильно выставил? и прошивка последняя 2.5.1?
коэффициенты:
float MAX_COEF_FREQ_1[3] = {0.6, 1.5, 1.7}; // Отдельные коэффициенты для впышек по частотам (по умолчанию 1.5)
 

PerHakS

✩✩✩✩✩✩✩
7 Дек 2020
13
3
@PerHakS, 8 и 9 режимы должны работать и от LINE и от микрофона примерно одинаково. Такое чувство, что где-то что-то не припаяно или плохо припаяно. Даже больше скажу, микрофон как будто не припаян, а в LINE припаян только один канал и он "наводит" на второй пин (поэтому эта часть меньше)
А на счет "частот" они у всех так себе работают, одно из решений было несколько страниц назад. Ну и если "буфер" накручен, так он и будет все забивать.
Не, ну если бы у меня не было бы припаян микрофон, у меня бы вооьще ничего не работало, а так работает, просто некорректно...

Косяк с 3 частотами у всех, они то пашут то нет, в скетче есть коэффициенты на разные частоты, можно уменьшить низы, но это мало помогает, все равно заливает все красным, по хорошему там надо сделать частоту среза НЧ гораздо ниже чем есть. 9 режим можно сделать под моно, в прошивке где то надо заменить кусок кода, полистай страницы назад, я там спрашивал и сленк отвечал мне, на память я не помню. Еще внимательно поиграйся с чувствительностью, вручную ее регулируй на свой вкус на разных режимах (часть настроек общие на несколько режимов), схему в скетче надеюсь правильно выставил? и прошивка последняя 2.5.1?
коэффициенты:
float MAX_COEF_FREQ_1[3] = {0.6, 1.5, 1.7}; // Отдельные коэффициенты для впышек по частотам (по умолчанию 1.5)
По поводу чувствительности, то с ней как я только не игрался, а желаемого результата не получил, а вот по поводу схемы, тут у меня тоже непонятки, если вы имеете виду этот пунктик (#define SCHEM 1 // 1 - схема от Slenk, 0 - схема от technotrasher) то тут да- не совсем мне понятно, так как от того что я поставлю( slenk или technotrasher) у меня ничего не меняется, да и версиия у меня оказывается 2.4, скажите пожалуйста где можно 2.5 скачать?

@PerHakS, 8 и 9 режимы должны работать и от LINE и от микрофона примерно одинаково. Такое чувство, что где-то что-то не припаяно или плохо припаяно. Даже больше скажу, микрофон как будто не припаян, а в LINE припаян только один канал и он "наводит" на второй пин (поэтому эта часть меньше)
А на счет "частот" они у всех так себе работают, одно из решений было несколько страниц назад. Ну и если "буфер" накручен, так он и будет все забивать.
У меня красным диоды загараются даже на СЧ, (тоесть даже с отсуствием НЧ).

"а в LINE припаян только один канал и он "наводит" на второй пин (поэтому эта часть меньше)" так у меня изначально все моно, нету стерео, ТАК СТОП, а 9 реежим работает только от СТЕРЕО, хотя сейчас с вашим конвертором я могу сделать и стерео, просто вопрос в том, пойдет ли мне на пользу это стерео, так как у меня на моей колонке лента приклеена в виде прямоугольника
 

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
21
0
По поводу чувствительности, то с ней как я только не игрался, а желаемого результата не получил, а вот по поводу схемы, тут у меня тоже непонятки, если вы имеете виду этот пунктик (#define SCHEM 1 // 1 - схема от Slenk, 0 - схема от technotrasher) то тут да- не совсем мне понятно, так как от того что я поставлю( slenk или technotrasher) у меня ничего не меняется, да и версиия у меня оказывается 2.4, скажите пожалуйста где можно 2.5 скачать?
 

SeverTV

✩✩✩✩✩✩✩
4 Дек 2020
21
0
2.5b работает,сейчас 2.5.1 загрузил работает-Спасибо авторам!!!