/Midi2PCM

Convert Midi file to Wav file, by https://github.com/schellingb/TinySoundFont.

Primary LanguageCMIT LicenseMIT

简介

本项目是基于schellingb/TinySoundFont: SoundFont2 synthesizer library in a single C/C++ file (github.com)的一个演示例程。实现MIDI到WAV文件的转换功能。

为了验证Code Size,搭建了Cortex-CM0 GCC环境,项目在Cortex-CM0下编译,整个Code Size和RAM Size如下。

注意:RAM SIZE由于库用了很多malloc行为,所以这里并不真实。

使用说明

环境搭建

目前暂时只支持Windows编译,最终生成exe,可以直接在PC上跑。

目前需要安装如下环境:

编译说明

本项目都是由makefile组织编译的,编译整个项目只需要执行make all即可。

也就是可以通过如下指令来编译工程:

make all

image-20230625143121305

使用说明

编译好的执行文件在output目录下,以Windows为例,是output/main.exe,程序运行输入需要test.sf2test.mid两个文件,输出test.wav文件,替换目录中的对应输入文件可以更改输出。

image-20230625143212067

Code Size分析说明

介绍

本项目最终为嵌入式服务,大家对Code Size和RAM Size非常关心,项目集成了CM0编译环境,以便大家评估协议栈大小。

项目以Cortex-CM0来对芯片进行Code Size和RAM Size进行分析。

环境搭建

目前暂时只支持CM0编译,最终生成elf,程序并不能运行,但是可以用于评估协议栈Code Size。

在安装好Windows环境基础上,还需要安装如下环境:

编译说明

切换到CM0/GCC目录下,调整Makefile中的Toolchain路径,并执行make all即可。

image-20230625142828284

image-20230625142843530

RAM_Report&ROM_Report

参考zephyr,对生成的elf进行分析,最终会生成ram.json和rom.json。这两个文件也可以导入到nordic的vscode环境下,可以借助其图形化工具进行分析。

image-20221125112930355