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

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

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

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


person Anandu v t    schedule 24.10.2016    source источник


Ответы (3)


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

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

person umläute    schedule 27.10.2016

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

Демонстрация анализа БПФ

Мои навыки PD довольно заржавели, но вот грубый удар по микрофону (adc~) в примере 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~.

person George Profenza    schedule 25.10.2016
comment
без проблем. не стесняйтесь голосовать / отмечать ответ, если он был полезен. удачи ;) - person George Profenza; 26.10.2016

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

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

удачи !

person Dadep    schedule 19.11.2016