Задумывались ли вы об использовании графической среды потока данных, такой как Pure Data (Pd) или Max ? Макс коммерческий продукт, но Pd бесплатно.
Даже если вы не в конечном итоге используете Pd для своего окончательного проекта, он станет отличным инструментом быстрого прототипирования. Хотя возможности графической обработки Pd ограничены, существуют такие расширения, как Gridflow и Gem , которые могут вам помочь. Конечно, с помощью Pd вы можете анализировать входящий звук, используя объект [fiddle ~], который даст вам общую высоту звука и частоту / амплитуду отдельных частот, а также [env ~], который даст вам среднеквадратичную амплитуду. Затем вы можете очень легко сопоставить изменения звука (высота, амплитуда, тембр) с различными свойствами изображения, такими как цвет, формы, количество элементов и т. Д. В Gem или Gridflow.
10 000 движущихся объектов звучат чертовски много даже на современном настольном GPU! Расчет всех этих позиций на лету потребляет лот ресурсов. Я думаю, что даже с выделенной графической библиотекой C ++, такой как openFrameworks , это может быть проблемой. Возможно, вы захотите рассмотреть стратегию оптимизации, такую как аспекты предварительного рендеринга изображения, и использование управления звуком в реальном времени, чтобы определить, какие предварительно отрендеренные компоненты отображаются в любой момент времени. Это может создать иллюзию контроля над 10 тысячами объектов, когда на самом деле большая часть их предварительно визуализирована.
Удачи!