В музей оптики В СПбГУ ИТМО есть довольно примечательный экспонат — каталог Abbe, представляющий собой коллекцию оптических очков различных марок и размеров.
Руководство музея хотело, чтобы этот каталог был подсвечен музыкой, поэтому родился проект музыкального освещения каталога, что я и сделал.
Это что-то похожее на задачу моргания светодиодом с помощью микроконтроллера, только в большем масштабе.
Аппаратное обеспечение было разработано собственными силами.
ЛМТ .
Под каждым стеклом находится светодиодная лента, подключенная к контроллеру.
Контроллеры подключаются с помощью витой пары в сеть, подключенную к хабу, который, в свою очередь, подключается через USB к компьютеру.
Моей задачей было разработать программное обеспечение, которое бы генерировало изображение с помощью светодиодных полосок в соответствии с воспроизводимой в данный момент музыкой.
Те.
простой аудиоплеер, который может визуализировать звук и в то же время имеет интерфейс, предназначенный для сенсорного экрана.
Не вижу смысла говорить о программе в целом, поэтому остановлюсь на звуковой части.
Библиотека SFML использовалась для работы с графикой и звуком, а FFTW — для выполнения быстрого преобразования Фурье.
Чтобы извлечь любую информацию из аудиосигнала, у вас должен быть прямой доступ к аудиосэмплам.
Используя комбинацию SFML + libsndfile, реализовать это было несложно.
При воспроизведении аудиофайла на определенной частоте (в данном случае частоте кадров) берется небольшой участок массива с сэмплами и затем над ним выполняется быстрое преобразование Фурье.
Благодаря БПФ массив данных звуковых волн преобразуется в массив данных частоты.
Если произвести реальное преобразование, то размер результирующего массива будет вдвое меньше исходного.
Вам понадобятся примерно такие детали:
Здесь следует учитывать следующее: для точного отслеживания басовых нот преобразование Фурье требует довольно большого объема данных.
По моим расчетам, чтобы можно было начать работать с А второй октавы, требовался массив размером 8096. При частоте дискретизации 44100 это примерно 0,2 секунды, а это достаточно большой интервал и в него могут попасть уже не звучащие ноты.
Поэтому в этом случае следует прибегнуть к небольшой хитрости, описанной в учебниках по цифровой обработке сигналов, — взять небольшой массив и дополнить его нулями до нужного размера.
Это немного меняет результат, но в данном случае это не критично.
Вот какие данные на самом деле выполняются БПФ:
Для получения спектра необходимо возвести в квадрат все элементы полученного массива, тогда, исходя из размера массива и частоты дискретизации, легко определить, в каких элементах массива расположены амплитуды каких частот. , поскольку в последнем элементе массива будет амплитуда частоты Найквиста, равная половине частоты дискретизации, а перед этим – с шагом, соответствующим количеству элементов.
В дальнейшем из них выбираются значения амплитуд частот, максимально приближенные к частотам музыкальных нот.
Спектр, полученный в результате обработки массива аудиосэмплов:
Дальше происходит еще немного обработки — отслеживание пиков, превышающих минимальное значение предела чувствительности, преобразование значения амплитуды в значение яркости.
После этого можно переходить к формированию изображения.
Т.
к.
разрешение «экрана» небольшое — 48х3, поэтому много вариантов пространственного расположения заметок не придумаешь.
Но сразу в голову пришли две идеи.
В одном варианте столбики из трех стаканов объединены и представляют собой одну ноту, внешне получается нечто отдаленно напоминающее клавиатуру фортепиано.
Во втором варианте одна нота отображается двумя стаканами, стоящими рядом в одном ряду, это ближе к гитаре с тремя струнами и крайне необычным строем ;) Последняя часть – формирование цвета.
Практически сразу стало понятно, что работать с цветовой моделью HSV здесь гораздо удобнее, чем с RGB, поскольку нам в основном приходится управлять тоном.
Один из самых простых и логичных методов визуализации звука был предложен Ньютоном – по его идее, зрительный спектр соответствует одной октаве.
Метод Ньютона показан на изображении ниже справа:
После экспериментов эта идея получила дальнейшее развитие – в разных режимах весь видимый спектр или его часть накладывается на разное количество октав.
Например, 60 градусов высоты звука в четырех октавах плюс дополнительное постоянное смещение по времени начальной степени.
Еще один метод формирования цвета был заимствован из веб-дизайна.
В нем цветовая палитра выбирается по одному из шаблонов.
Вот некоторые примеры:
Используя этот метод, вы сможете создать более контрастные изображения.
Как и в предыдущем способе, основной тон можно смещать во времени.
Видео работы системы (доступно в формате FullHD): Ссылки: 1. Люк Нимц, Первичные гармоники – музыка/теория цвета 2. Блог о визуальной музыке Студенты и абитуриенты – такое (и не только такое) можно изучать в магистратуре СПбГУ ИТМО, по направлению «Встроенные вычислительные системы» Теги: #Звук #встраиваемые системы #светодиоды #встраиваемые #световая музыка #аудиовизуализация
-
Электронное Государство Будущего. Часть 3
19 Oct, 24 -
Чудо-Машина: Вино Из Воды
19 Oct, 24 -
Directx 11: Явная Победа Amd
19 Oct, 24 -
Кристаллический Язык Программирования
19 Oct, 24 -
Дайджест Kolibrios №5: Мы Снова С Вами
19 Oct, 24