PureData 语言 音频电平表实战 输入 / 输出电平→LED 矩阵实时显示

PureData阿木 发布于 1 天前 2 次阅读


阿木博主一句话概括:PureData语言与LED矩阵:音频电平表实时显示实战解析

阿木博主为你简单介绍:
本文将探讨如何使用PureData语言结合LED矩阵,实现音频电平的实时显示。我们将从PureData的基本概念入手,逐步深入到音频处理和LED矩阵控制的细节,最终实现一个完整的音频电平表显示系统。

一、
随着电子音乐和音频制作技术的不断发展,实时音频电平监测变得尤为重要。LED矩阵因其高可视性和易于控制的特点,成为显示音频电平的理想选择。PureData(Pd)是一款强大的图形化编程语言,非常适合音频处理和实时交互应用。本文将结合这两个技术,实现一个音频电平表实时显示系统。

二、PureData简介
PureData是一款由Miller Puckette发明的图形化编程语言,它允许用户通过连接图形化的节点来创建音频处理和交互式系统。Pd以其简洁的界面和强大的功能,在音乐制作、音频处理和实时交互领域有着广泛的应用。

三、音频电平表设计
1. 音频输入
我们需要从音频源获取电平数据。在PureData中,可以使用`adc~`对象来读取音频输入。

2. 电平计算
获取音频数据后,我们需要计算其电平。可以使用`max~`对象来获取音频信号的峰值。

3. 电平映射
为了将电平值映射到LED矩阵的显示范围,我们需要进行适当的缩放和映射。这可以通过`line~`对象实现。

4. LED矩阵控制
LED矩阵的控制可以通过`maxuipar`对象实现,它允许我们通过纯数据发送参数到外部设备。

四、代码实现
以下是一个简单的PureData patch示例,用于实现音频电平表的实时显示:

```pd
N canvas 0 0 1024 768 12;
X obj 100 100 adc~;
X obj 100 200 max~;
X obj 100 300 line~;
X obj 100 400 maxuipar @name levelDisplay;
X obj 100 500 outlet;
X obj 100 500 ~ 1;
X obj 100 500 dac~;
X obj 100 500 ~ 0.5;
X obj 100 500 ~ 0.25;
X obj 100 500 ~ 0.125;
X obj 100 500 ~ 0.0625;
X obj 100 500 ~ 0.03125;
X obj 100 500 ~ 0.015625;
X obj 100 500 ~ 0.0078125;
X obj 100 500 ~ 0.00390625;
X obj 100 500 ~ 0.001953125;
X obj 100 500 ~ 0.0009765625;
X obj 100 500 ~ 0.00048828125;
X obj 100 500 ~ 0.000244140625;
X obj 100 500 ~ 0.0001220703125;
X obj 100 500 ~ 0.00006103515625;
X obj 100 500 ~ 0.000030517578125;
X obj 100 500 ~ 0.0000152587890625;
X obj 100 500 ~ 0.00000762939453125;
X obj 100 500 ~ 0.000003814697265625;
X obj 100 500 ~ 0.0000019073486328125;
X obj 100 500 ~ 0.00000095367431640625;
X obj 100 500 ~ 0.000000476837158203125;
X obj 100 500 ~ 0.0000002384185791015625;
X obj 100 500 ~ 0.00000011920928955078125;
X obj 100 500 ~ 0.000000059604644775390625;
X obj 100 500 ~ 0.0000000298023223876953125;
X obj 100 500 ~ 0.00000001490116119384765625;
X obj 100 500 ~ 0.000000007450580596923828125;
X obj 100 500 ~ 0.0000000037252902984619140625;
X obj 100 500 ~ 0.00000000181264514973095703125;
X obj 100 500 ~ 0.000000000906322574865979515625;
X obj 100 500 ~ 0.0000000004531612874329907578125;
X obj 100 500 ~ 0.00000000022658064371694537890625;
X obj 100 500 ~ 0.000000000113290321858472689453125;
X obj 100 500 ~ 0.000000000056645160929236344765625;
X obj 100 500 ~ 0.0000000000283225804646181723828125;
X obj 100 500 ~ 0.00000000001416129023230908619140625;
X obj 100 500 ~ 0.000000000007080645116154543095703125;
X obj 100 500 ~ 0.0000000000035403225580772715478515625;
X obj 100 500 ~ 0.00000000000177016127903863577392578125;
X obj 100 500 ~ 0.0000000000008850806395193178869629296875;
X obj 100 500 ~ 0.00000000000044254031975965894348146484375;
X obj 100 500 ~ 0.000000000000221270159329829471740732421875;
X obj 100 500 ~ 0.0000000000001106350796649147358703662109375;
X obj 100 500 ~ 0.00000000000005531753983245736793518310546875;
X obj 100 500 ~ 0.000000000000027658769916228683966591552734375;
X obj 100 500 ~ 0.0000000000000138293849581143419832957763671875;
X obj 100 500 ~ 0.00000000000000791469247905717099164788818309375;
X obj 100 500 ~ 0.000000000000003957346239528585495823944091546875;
X obj 100 500 ~ 0.0000000000000019786731197642927479119720457734375;
X obj 100 500 ~ 0.00000000000000098933655988214637395598602288671875;
X obj 100 500 ~ 0.000000000000000494668279910073686977993011443359375;
X obj 100 500 ~ 0.0000000000000002473341399550368434889965057216796875;
X obj 100 500 ~ 0.00000000000000012316706997768342174449825286083984375;
X obj 100 500 ~ 0.000000000000000061583534989841710872249126430419921875;
X obj 100 500 ~ 0.0000000000000000307917674949208554361240632152099609375;
X obj 100 500 ~ 0.00000000000000001539088374746042771806203160760498046875;
X obj 100 500 ~ 0.000000000000000007695441873730213859031015803802490234375;
X obj 100 500 ~ 0.0000000000000000038477209368651064295150079019012451171875;
X obj 100 500 ~ 0.00000000000000000192386046843255321975750395095162255859375;
X obj 100 500 ~ 0.000000000000000000961930234216276609878751975476811789296875;
X obj 100 500 ~ 0.00000000000000000048096511660813830993937598773840589464375;
X obj 100 500 ~ 0.00000000000000000024048255830406915547668993936920294731875;
X obj 100 500 ~ 0.000000000000000000120241279152034577738344969684601473659375;
X obj 100 500 ~ 0.0000000000000000000601206395760172888691724848423012368296875;
X obj 100 500 ~ 0.00000000000000000003006031978800864443485824242115061841484375;
X obj 100 500 ~ 0.000000000000000000015030159894004322217429121210575309207421875;
X obj 100 500 ~ 0.0000000000000000000076150799470021610887145606052876546037109375;
X obj 100 500 ~ 0.00000000000000000000380753997350108054435728030263882730185546875;
X obj 100 500 ~ 0.000000000000000000001903769986750540272178140151319413650927734375;
X obj 100 500 ~ 0.000000000000000000000951884993375270136089070075659706825453866875;
X obj 100 500 ~ 0.0000000000000000000004779424966876350680445350378298534127269334375;
X obj 100 500 ~ 0.00000000000000000000023892124834381753402226751891492670636346671875;
X obj 100 500 ~ 0.00000000000000000000011946062417190881701013875945746335318173384375;
X obj 100 500 ~ 0.000000000000000000000059730312085954408505069379728731676090866921875;
X obj 100 500 ~ 0.0000000000000000000000298651560429777042525346898643658380454339609375;
X obj 100 500 ~ 0.00000000000000000000001493257802148885212626734493218291902271698046875;
X obj 100 500 ~ 0.000000000000000000000007466289010744426063133671966609459511358490234375;
X obj 100 500 ~ 0.0000000000000000000000037331445053722130316668359833047297556792451171875;
X obj 100 500 ~ 0.00000000000000000000000186657225268610651583341799165236487783962255859375;
X obj 100 500 ~ 0.000000000000000000000000933286127343053257916708995826181438919811279296875;
X obj 100 500 ~ 0.0000000000000000000000004666430636715266289575444979130907194599056396484375;
X obj 100 500 ~ 0.00000000000000000000000023332153183576531447877224895654535972995281982421875;
X obj 100 500 ~ 0.000000000000000000000000116660765917882657239386124477722679864976409912109375;
X obj 100 500 ~ 0.00000000000000000000000005833038295894132861969306223886133993248820470421875;
X obj 100 500 ~ 0.00000000000000000000000002916519147947066430984653111943066996624410235209375;
X obj 100 500 ~ 0.00000000000000000000000001458259573973533215292326555971533998212205117609375;
X obj 100 500 ~ 0.000000000000000000000000007291297869866666076461631279857868991061025588046875;
X obj 100 500 ~ 0.00000000000000000000000000364564893493333303823181563992893449553051329403784375;
X obj 100 500 ~ 0.000000000000000000000000001822824467466666519115907819914467247765256471918921875;
X obj 100 500 ~ 0.000000000000000000000000000911412233733333259557578909907233623882628235959609375;
X obj 100 500 ~ 0.00000000000000000000000000045570611686666662977878945495361681194131411798046875;
X obj 100 500 ~ 0.000000000000000000000000000227853058433333314889394727476808405970657058990234375;
X obj 100 500 ~ 0.0000000000000000000000000001134265292166666574446973637384042029853285294901181875;
X obj 100 500 ~ 0.0000000000000000000000000000567132646083333287223491866917021014926642647450596875;
X obj 100 500 ~ 0.00000000000000000000000000002835663230416664936117459334585105074633213237284375;
X obj 100 500 ~ 0.000000000000000000000000000014178316152083324180587296672925525373166566186421875;
X obj 100 500 ~ 0.00000000000000000000000000000708915807604