电吉他多重音效处理系统
基于Zedboard (Zynq 7020)实现
1
Demo视频
照例以项目Demo视频开场:
2
项目简介与创新
这一项目作品来自以色列特拉维夫大学的两名大四学生,基于Digilent与Avnet联合出品的Xilinx Zynq一代名板:ZedBoard实现。本质上,项目通过在FPGA器件上设计和部署音频处理算法,为电吉他实现了一套音频效果处理系统,并且实现了包括:失真音和过载音、八度音+颤音、颤音、延迟音四种音效。在音乐界,这样一套东西俗称为“综合效果器/踏板效果器”,嗯,大致是介个样子:
相比于商业界传统的基于DSP/CPU技术的“电吉他综合效果器”,这一作品完全基于FPGA逻辑实现,借助FPGA天生并行的优势,将多个音频信道一起处理,从而提高实时性能——对标一些业界领先的商用踏板效果器所宣传的“几毫秒”延时,该作品的最大延时仅仅约为1ms。
3
系统原理功能
作品的简易框图如下:
上图黄色部分为作品实际用到的Zedboard板载硬件:系统通过Line-in端口与电吉他连接以接收音频,并通过Line-out端口将处理音效传送到放大器。板载的Zynq器件与音频解码器是整个系统的核心,其中Zynq的PL端的主要用来进行音频处理,以及产生不同的时钟并实现用户界面;ARM部分(PS端)则主要用来做一下辅助的框架搭建与支持工作。所有的编程通过JTAG USB端口实现;同时,作者利用了板载的按键与LED灯设计了一个简易的物理用户界面。
软件部分,作者使用Vivado 2016.2,全部手动基于VHDL硬件描述语言为音频信号路径,效果,用户界面和PS-PL交互创建了所有的IP blocks;PS端,作者使用Xilinx SDK 2016.2借助C语言编程,通过AXI功能读取/写入PL音频采样,并初始化板载音频编解码器。在VHDL代码部署之前,作者还使用了MATLAB来进行仿真并测试整个系统设计。
图:效果链,以及每个效果的内部变化
图:音频信号路径
图:控制信号路径
4
完整项目与源码获取
从来成功没有理所当然,而在项目中实现技术成长,是唯一的小捷径。这也是我们分享开源项目的初衷。Hope you enjoy~!
领取专属 10元无门槛券
私享最新 技术干货