littlebot
Published on 2025-04-17 / 3 Visits
0

【源码】基于C语言的16位硬件FM合成器

项目简介

本项目处于早期阶段,旨在创建一个16位硬件FM合成器。其灵感源于上世纪80年代末至90年代初的合成器芯片和视频游戏,虽受Game Boy和Sega Genesis等音效启发,但并非复刻这些声音,而是在现代合成器背景下向该时期致敬。项目以Microchip dsPIC33CH128MP508为目标平台,该“数字信号控制器”在DSP和MCU功能间平衡良好,价格实惠且具备音频应用所需特性。

项目的主要特性和功能

  1. 硬件抽象层(HAL):抽象底层硬件,包括UART通信、DAC数字模拟转换器、计时器和GPIO等。
  2. 命令解析:解析和处理通过UART接收到的命令,可设置参数、控制声音的开始与停止。
  3. 音频处理:生成和更新音频样本,支持音频包络、振荡器和调制等音频合成技术。
  4. MIDI处理:接收并处理MIDI信号,以控制合成器的各项参数。
  5. 测试框架:通过Ceedling运行单元测试,验证项目各组件和功能的正确性。

安装使用步骤

构建要求

需在系统中安装以下工具: - CMake - Python 3.7或更高版本 - Microchip的MPLAB IDE - Microchip的XC16 Toolchain

配置

复制仓库后,将文件 mplab/conf.mk.defaults 复制到 mplab/conf.mk,并根据系统情况修改相应路径,默认设置适用于macOS。

构建方式

MPLAB IDE

适用于调试或喜欢在MPLAB IDE中工作的用户。复制仓库后,启动MPLAB IDE,打开 mplab 目录下的两个项目,构建和调试命令应能正常工作。若CMake报错,需检查 conf.mk 文件中的路径是否正确。

命令行

适用于习惯使用命令行构建的用户,尤其熟悉GNU Make和CMake的用户。不过,命令行调试支持(通过MDB)较差。复制仓库后,执行以下命令: mkdir build cd build cmake .. make 若构建成功,将在 build/src/master/ 目录下生成 synth_master.hex 文件,可使用MPLAB IPE(随IDE安装)将其加载到目标设备上。在基于macOS或Linux的系统上,还可通过以下方式进行闪存操作: - 将 mdb.sh 从MPLAB IDE文件添加到系统 PATH 中(在某些安装中,其路径为 /Applications/microchip/mplabx/v5.25/mplab_platform/bin)。 - 运行 make flash

调试

dsPIC33C系列包含两个(大部分)独立的dsPIC内核,可通过以下三种方式进行调试: - 仅调试主内核:调试主内核时,从内核自由运行。 - 仅调试从内核:调试从内核时,主内核自由运行。 - 双内核同时调试:同时调试两个内核。 具体调试方式可能需要根据设置进行额外配置和/或代码修改,详情可参考Microchip的双内核文档

测试

使用Ceedling运行单元测试,需安装Ceedling 0.28.3或更高版本。进入项目目录后,运行 ceedling 即可。更多关于Ceedling及其底层实用程序和框架的信息,可参考throwtheswitch.org

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】