我现在在学习用MATLAB来制作音乐。看了网上小星星的script,但是自己琢磨不出来怎么弄。求助!感谢!

2024-12-04 22:00:39
推荐回答(1个)
回答1:

测试通过
clear;clc;
A4=440;%标准音A4pt=44100; p0=pt/2;%频率ppt=[1 1 1 1 2 1 1 1 1 1 2 2 1 1 2 2 1 1 2 2 2 2 2 2] ; scale12=A4/2^(9/12)*2.^((0:11)/12);%十二平均律map=[1 3 5 6 8 10 12];%七音符%乐谱score=[5 5 6 5 1 7,...sol sol la sol do si- 5 5 6 5 2 1,...sol sol la sol re do- 5 5 5 3 7 6,...sol sol sol mi do si- 4 4 3 1 2 1];%fa fa mi do re do-%节拍rhythm=repmat([1 1 1 1 1 2],1,4);%歌词lyric=['祝你生日快乐'... '祝你生日快乐'... '祝你生日快乐'... '祝你生日快乐'];%下面开始播放for i=1:length(score(1,:)) fprintf(1,'%c',lyric(i)) wavplay(sin((1:rhythm(i)*p0) /pt*2*pi*scale12(map(score(i)) )*ppt(i)), pt); if mod(i,6)==0 fprintf(1,'\n'); endend