首页 > 评测 > 让音乐播放更简单——Adafruit Music Maker FeatherWing和Audio FX Sound Board评测
让音乐播放更简单——Adafruit Music Maker FeatherWing和Audio FX Sound Board评测
- [导读]
- 本文介绍的两款模块都很小巧,但功能强大,一款是高集成度的OGG播放器方案,另一款是大家都熟悉MP3解码方案。此次评测的是Adafruit的两块板子:Audio FX Sound Board & Music Maker FeatherWing w/Amp
单个音符播放和停止:
def note_on( ser,key,chan ):
realkey = (key&0x7F)+40
print("key on: %u "% realkey )
midiNoteOn(ser,chan, realkey, 127);
def note_off( ser,key,chan ):
realkey = (key&0x7F)+40
print("key off: %u "% realkey )
midiNoteOff(ser,chan, realkey, 127);
def note_all_off( ser ):
print("key off" )
midiNoteAllOff(ser,0)
播放乐谱的函数
def play_tone( ser,tone ):
name = input("Push Enter to play!")
print("Song Start")
score_idx = 0
s = 0
sleeptime0 = 0
sleeptime1 = 0
sleeptime = 0
tickcount = 0
chan = 0
while score_idx < len(tone):
sleeptime0 = (tone[score_idx]+tone[score_idx+1]*256)*8/1000
sleeptime = sleeptime0-sleeptime1
sleeptime1 = sleeptime0
print("sleep: %5.2f"%sleeptime)
time.sleep(sleeptime)
note_all_off(ser)
score_idx = score_idx+2
always = 1
while always == 1:
s = tone[score_idx]
score_idx = score_idx+1
if s== EoS:
print("Song End")
return
else:
note_on(ser,s,chan)
if (s&en)!=0:
if tickcount<7:
tickcount=tickcount+1;
else:
tickcount = 0
if chan==0:
chan=1
else:
chan = 0
break;
测试程序
ser = vs1053_midi.vs1053_midi_setup("com5")
#vs1053_midi.test_play_loop(ser,5)
vs1053_midi.play_tone(ser,vs1053_midi.tone)
程序运行如下:
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前