Render.ru

Танцуем под музыку

#1
Господа! Рад вас приветствовать, заранее извинюсь за возможный офтопик, но тема близкая, надеюсь что-то присоветуете.

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

Да, забыл еще пару условий: у робота есть свое место, т.е. туда он возвращается при отсутствии сигнала и он материлистичный, а не рисованный, но думаю последнее не принципиально.

Огромное спасибо за толковые советы,
Удачи, Андрей.
 
#2
Не думаю, что это поможет, но может быть сам принцип вам как-нибудь подойдёт.
Вот один из способов (мы его лет пятнадцать назад на дискотеке применяли, для лазерных спецэффектов). Берётся зеркало, и три маломощных громкоговорителя. Динамики расставляются треугольником, сверху к их диффузорам приклеивается зеркало. Далее, подавая на динамики фильтрованный музыкальный сигнал (НЧ, СЧ и ВЧ - на каждый - свою полосу звукового спектра) и направив на это колеблющееся (интересно, пройдёт ли эта фраза через фильтр сайта :)) ) зеркало луч лазера, получаем очень живописные фигуры на экране, куда отражается свет.
 

John 387

Мастер
Рейтинг
113
#3
Ну есть много вариантов:
1. Если у вас робот имеет большие габариты, то можно поставить просто несколько динамиков на самого робота и несколько динамиков вокруг места его обитания. И по тому как разносяться звековые сигналы, какая у них фаза в разных точках самого робота можно определить куда надо повернуться роботу и какое движение сделать
2. Можно написать програмно или сделать в железе несколько корреляторов (ну согласованных фильтров) которые будут согласованы с некоторыми звукавыми семплами(кусками звукового ряда). Причем при распознавании каждого семпла робот выполняет строго определенное движение.

В принципе задача решается тревиально если рассмотреть все что накопленно по проблеме распознавания сигналов.

Единственная проблема что если вы будите реализовывать 2-й вариант то вам понадобиться весьма производительный RISC-процессор, а они все-же дорогие.
 
#4
Спасибо John за совет, второй пункт ближе всего подходит к моему вопросу, корелятор и фильтры написать не проблема. А основная суть вопроса была именно в алгаритмах. По каким алгоритмам его двигать? К примеру, как-то давно по ТВ был анимированный ролик студии "2 Крыла", про движущиеся под музыку игральные карты, по моему 19:59 назывался. Вот задача примерно такая же, по какому алгоритму двигать эти карты в пространстве в зависимости от музыкального сопровождения, чтобы получалось похоже на танец?

Еще раз благодарю за интерес к вопросу и советы.
 
Сверху