Pd патч для аудио анализа

Я работаю над механизмом управления DMX на базе Arduino. Оказывается, мне нужна помощь Pure Data. Я только 4 дня знаком с Pd, и поэтому я ожидаю некоторую помощь отсюда.

В Pd я хочу получить звук от системного динамика (или микрофона), проанализировать его и разделить различные частотные диапазоны, такие как высокий, средний и низкий, чтобы инициировать отправку сообщения в Arduino соответствующим образом через компорт.

Я попробовал и преуспел в реализации генерации DMX-сигналов в Arduino и отправке сообщений из Pd в Ardunio. Я застрял в обработке аудио и принятии решений. Можете ли вы помочь мне решить мою проблему?

3 ответа

Что случилось с [hip~] (высокочастотный) и [lop~] (низкочастотный), разделяющий полосы частот? Вы всегда можете сложить их, чтобы получить фильтры более высокого порядка.

или используйте высококачественные фильтры Бесселя, Чебичеффа и Баттерворта высокого качества от iemlib.

Вы используете [adc~], чтобы получить сигнал от микрофона, а затем [fft~] для анализа его или любого другого объекта фильтров / анализатора. Для связи с Arduino используйте [comport].

Вы найдете много информации, читающей "помощь" этих объектов, и отправите некоторый код, чтобы получить более конкретную помощь.

удачи!

Посмотрите на пример FFT, который поставляется с PD: doc/3.audio.examples/I01.Fourier.analysis.pd

Демонстрация FFT-анализа

Мои навыки PD довольно ржавые, но вот грубый удар, который приводит микрофон (adc~) в пример FFT:

базовая демонстрация FFT

#N canvas 0 22 794 545 10;
#X obj 16 34 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X obj 16 64 adc~;
#X obj 14 129 peakamp~ 40;
#X floatatom 14 159 5 0 0 0 - - -;
#X obj 108 312 tabwrite~ \$0-real;
#X obj 150 273 tabwrite~ \$0-imaginary;
#X obj 163 7 loadbang;
#X obj 112 87 fft~;
#X msg 344 289 \; pd dsp 1;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-real 64 float 2;
#X coords 0 64 64 -64 256 200 1;
#X restore 467 87 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-imaginary 64 float 2;
#X coords 0 64 64 -64 256 200 1;
#X restore 467 333 graph;
#X obj 153 230 metro 40;
#X text 219 6 when the patch loads;
#X text 44 37 enable mic(ADC);
#X text 103 70 pass data to FFT;
#X text 21 109 test peak amp.;
#X text 163 214 every 40ms;
#X text 162 245 plot imaginary and real FFT components;
#X text 351 265 enable DSP;
#X connect 0 0 1 0;
#X connect 0 0 11 0;
#X connect 1 0 2 0;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 6 0 8 0;
#X connect 6 0 11 0;
#X connect 6 0 0 0;
#X connect 7 0 4 0;
#X connect 7 1 5 0;
#X connect 11 0 4 0;
#X connect 11 0 5 0;

(сохраните приведенный фрагмент как файл с расширением.pd)

Возможно, вы захотите получить доступ к нескольким бинам FFT и их средним секциям (например, high, mid, low), но, надеюсь, вышеописанное поможет в качестве начального.

Не забудьте также проверить страницу справки для fft~ объект.

Другие вопросы по тегам