_NCY_
发表于 2024-9-30 22:41:02
_NCY_ 发表于 2024-9-30 22:20
软件功夫做足了,默认的是你的硬件加速都用好了。卡顿之时,先问问自己hspi用了吗,2T上了吗?dma开了吗?
...
为了追求更好的性能,可以拉高一下主频。
但不宜过高。就以8H8K64U为例,
干到40M就行了。适可而止,别玩脱了。
(40M以上不稳定,容易死机)
然后还有hspi的速度选项。
如果你上了40M,别一上来就开到2T。
因为时钟太快有的劣质flash会受不了。
如果你的音乐里有频繁的咔嚓声,
很可能就是spi总线速度太快了,导致读到很多0xff
垂柳工作室
发表于 2024-9-30 23:05:07
分享链接呢
_NCY_
发表于 2024-10-1 07:13:40
垂柳工作室 发表于 2024-9-30 23:05
分享链接呢
程序稍后会分享。
配套原理图就是按照作品展示里的卡东欧计算器来的,已经贴出来了
_NCY_
发表于 2024-10-1 07:18:36
上次说到wav了。
为什么要说它呢,而不说说mp3什么的?
实属无奈。mp3之类的音频格式都是压缩过的,播放需要解码,而实时解码mpeg任务太重了。
而Wav里存放的则是原始数据,就是一个一个的采样点,自然十分亲民,直接拿来放就好了。
Wav文件格式,那就从网上拉一个图来吧
神农鼎
发表于 2024-10-1 08:04:36
51玩音频还得看 Ai8051U, Ai8052U
【新提醒】AI8051U 实现USB声卡,读TF卡/SD卡 音频播放器,32位8051,重磅开源 - 51 发烧友,UAC,极致音频,大国工匠,艺术人生,乐林漫步 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
_NCY_
发表于 2024-10-1 08:20:37
本帖最后由 _NCY_ 于 2024-10-1 08:23 编辑
这是wav文件的结构概览。
网上对它的详细解析多了去了,我在这里只说对咱有用的。
从播放它的角度,它可以分为文件头和数据(好多文件都如此,比如bmp)
文件头是图片里的前44字节(即除了data外的那些个),负责描述wav的基本信息。其中我们只关心这4个量:
NumChannels(声道数),取0x01或0x02,代表单双声道。
SampleRate(采样率),一般可以是11025,22050,44100,单位赫兹。
BitsPerSample(采样点位深度),代表量化精度,比如常说的8bit音乐,指的就是这个,一个采样点占8个位,即一个字节。这个参数要取8的倍数。
Subchunk2Size:(数据块大小),就是data里的字节数
其余的参数,包括码率,都是固定套路,直接填充即可,我们并不关心。
码率ByteRate根据公式可由前三个量推出来=
(SampleRate*NumChannels*BitsPerSample/8)
注意:文件头里的东西有的是大端序,有的是小端序(前边标big/little),需要转换一下哦!
_NCY_
发表于 2024-10-1 08:27:05
数据就简单了。数据对应图片里的data。一般很大。
如果你的是单声道,就是采样点1,2,3…n线性排列;如果是双声道,就是左采样点1,右采样点1,左采样点2,右采样点2……线性排列。
采样点根据你的BitsPerSample可能是8位的,也有可能是16位的。如果是16位采样点注意小端序。
_NCY_
发表于 2024-10-1 08:27:05
数据就简单了。数据对应图片里的data。一般很大。
如果你的是单声道,就是采样点1,2,3…n线性排列;如果是双声道,就是左采样点1,右采样点1,左采样点2,右采样点2……线性排列。
采样点根据你的BitsPerSample可能是8位的,也有可能是16位的。如果是16位采样点注意小端序。
_NCY_
发表于 2024-10-1 08:33:08
就来实战一波吧。可以试试这三个小任务,能熟练完成对wav的理解就到位了
(顺便送你一个16进制查看器。)
任务一:解析这个wav文件。
任务二:通过修改wav文件,让这个wav文件二倍速/0.5倍速播放
任务三:播放stcisp的.exe文件,聆听来自stcisp的天籁之音
_NCY_
发表于 2024-10-1 08:45:56
_NCY_ 发表于 2024-10-1 08:33
就来实战一波吧。可以试试这三个小任务,能熟练完成对wav的理解就到位了
(顺便送你一个16进制查看器。)
...
小测试和十六进制查看器