100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用MATLAB制作音乐-小星星

用MATLAB制作音乐-小星星

时间:2023-10-14 18:03:37

相关推荐

用MATLAB制作音乐-小星星

文章目录

前言摸索小星星整合

前言

总觉得音乐很神奇,喜欢音乐,所以看到matlab可以制作音乐顿时精神了,也算是学习的乐趣了。

matlab播放音乐是由sound(Y,fs,bits)函数完成的,该函数的3个参数代表输入信号、采样率、比特率。先说采样率fs的设置,人耳能够听到的声音范围是20~20000Hz。根据采样定理fs只需要大于40000即可。此处采样率的设置采用了MP3的标准,即fs=44.1k.再说输入信号Y,Y一般是一个正弦波,如Asin(2piwt)。其中A控制着声音的大小,w控制着声音的高低,t的范围控制着声音的长短,所以理论上利用这个公式可以发出任何声音,只是不能控制音色和音质。比特率采用默认值即可,该参数省略。


摸索

Fs=8192;x=linspace(0,2*pi,Fs);%播放声音默认采样率8192 1000-38400y=sin(x);plot(x,y);%sound(y,Fs);%识别不了 想办法增加周期% y=sin(2*x);%1s内两次震动 音乐中标准A 440y=sin(440*x);plot(x,y);sound(y,Fs);

%%Fs1=8192;Fs2=20000;x1=linspace(0,2*pi,Fs1);x2=linspace(0,2*pi,Fs2);y1=sin(440*x1);y2=sin(440*x2);sound(y1,Fs);%采样率影响sound(y2,Fs);%%Fs=8192;x=linspace(0,2*pi,Fs);y1=sin(440*x);y2=sin(500*x);y3=sin(650*x);sound(y3,Fs);sound(y3,Fs);%频率影响%%%十二平均率表 主音 全音 半音 跨度8阶%十二平均律,亦称“十二等程律”,世界上通用的一组音(八度)分成十二个半音音程的律制,各相邻两律之间的振动数之比完全相等。十二平均律在交响乐队和键盘乐器中得到广泛使用,钢琴即是根据十二平均律来定音的。-——来源百度百科%A-F 523,587,659,698,783,880,988freqs=[523,587,659,698,783,880,988];y1=sin(freqs(1)*x);y2=sin(freqs(2)*x);y3=sin(freqs(3)*x);y4=sin(freqs(4)*x);y5=sin(freqs(5)*x);y=[y1,y2,y3,y4,y5];sound(y,Fs);

小星星

Fs=8192;x=linspace(0,2*pi,Fs); %音与音的分隔 (声音大小一样只是频率不一样)x2=linspace(0,2*pi*2,Fs*2);freqs=[523,587,659,698,783,880,988];y1=sin(freqs(1)*x).*(1-x/(2*pi));y2=sin(freqs(1)*x).*(1-x/(2*pi));y3=sin(freqs(5)*x).*(1-x/(2*pi));y4=sin(freqs(5)*x).*(1-x/(2*pi));y5=sin(freqs(6)*x).*(1-x/(2*pi));y6=sin(freqs(6)*x).*(1-x/(2*pi));y7=sin(freqs(5)*x2).*(1-x2/(2*pi));y=[y1,y2,y3,y4,y5,y6,y7];plot(y);sound(y,Fs);

整合

function y=gen_wave(tone,rythm)Fs=8192;freqs=[523,587,659,698,783,880,988];x=linspace(0,2*pi*rythm,floor(Fs*rythm));y=sin(freqs(tone)*x).*(1-x/(rythm*2*pi));end

Fs=8192;y1=gen_wave(1,0.5);%半拍y2=gen_wave(1,0.5);y3=gen_wave(5,0.5);y4=gen_wave(5,0.5);y5=gen_wave(6,0.5);y6=gen_wave(6,0.5);y7=gen_wave(5,1);y8=gen_wave(4,0.5);%半拍y9=gen_wave(4,0.5);y10=gen_wave(3,0.5);y11=gen_wave(3,0.5);y12=gen_wave(2,0.5);y13=gen_wave(2,0.5);y14=gen_wave(1,1);x1=gen_wave(5,0.5);%半拍x2=gen_wave(5,0.5);x3=gen_wave(4,0.5);x4=gen_wave(4,0.5);x5=gen_wave(3,0.5);x6=gen_wave(3,0.5);x7=gen_wave(2,1);%x8=gen_wave(5,0.5);%半拍x9=gen_wave(5,0.5);x10=gen_wave(4,0.5);x11=gen_wave(4,0.5);x12=gen_wave(3,0.5);x13=gen_wave(3,0.5);x14=gen_wave(2,1);%f1=gen_wave(1,0.5);%半拍f2=gen_wave(1,0.5);f3=gen_wave(5,0.5);f4=gen_wave(5,0.5);f5=gen_wave(6,0.5);f6=gen_wave(6,0.5);f7=gen_wave(5,1);f8=gen_wave(4,0.5);%半拍f9=gen_wave(4,0.5);f10=gen_wave(3,0.5);f11=gen_wave(3,0.5);f12=gen_wave(2,0.5);f13=gen_wave(2,0.5);f14=gen_wave(1,1);y=[y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14];sound(y,Fs);

十二平均率表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。