我正在研究一种基于Arduino的DMX控制机制。结果是我需要纯数据的帮助。我对警察只有4天的熟悉,所以我希望从这里得到一些帮助。
在Pd中,我希望从系统扬声器(或麦克风)中获取音频,分析它,并分离不同的频率(如高、中、低),从而通过comport.触发相应的发送消息给Arduino。
我尝试并成功地在Arduino中实现DMX信号生成,并将消息从Pd发送到Ardunio。我被困在音频处理和决策。你能帮我解决我的问题吗?
发布于 2016-10-27 11:36:14
分离频带的[hip~] (高通)和[lop~] (低通)有什么问题?你总是可以堆叠他们,以获得更高的阶过滤器。
或者使用iemlib的高品质高级贝塞尔,切比雪夫和巴特沃斯过滤器。
发布于 2016-10-25 10:54:13
看看PD:doc/3.audio.examples/I01.Fourier.analysis.pd附带的FFT示例。

我的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回收箱和它们的平均部分(例如,高、中、低),但希望上面的内容将有助于启动。
确保还检查fft~对象的帮助页。
发布于 2016-11-19 11:28:28
您使用adc~从麦克风获取信号,然后使用fft~来分析它或任何其他滤波器/分析器对象。与arduino通信请使用comport。
您会发现大量的信息阅读这个对象的“帮助”,并发送一些代码以获得更具体的帮助。
祝你好运!
https://stackoverflow.com/questions/40223617
复制相似问题