如何用matlab创作歌曲?

 我来答
gaozhaokun123
推荐于2019-09-22 · TA获得超过2560个赞
知道小有建树答主
回答量:6
采纳率:100%
帮助的人:2159
展开全部

1、matlab播放音乐是由sound(Y,fs,bits)函数完成的,该函数的3个参数代表输入信号、采样率、比特率。先说采样率fs的设置,人耳能够听到的声音范围是20~20000Hz。

2、根据采样定理fs只需要大于40000即可。此处采样率的设置采用了MP3的标准,即fs=44.1k.再说输入信号Y,Y一般是一个正弦波,如A*sin(2*pi*w*t)。其中A控制着声音的大小,w控制着声音的高低,t的范围控制着声音的长短,所以理论上利用这个公式可以发出任何声音,只是不能控制音色和音质比特率采用默认值即可。

3、于是用下面的公式就可以播放出标准音la:(座机电话提示音就是la,可以用来调吉他)

fs=44100;

t=0: 1/fs: 0.5;

la = sin(2*pi*440*t); (下文介绍440是怎么来的)

sound(la, fs)

4、下面介绍一下简单乐理:

音高和频率是指数的关系,它们满足下面的公式,其中p是音高,f是频率


标准音la,即钢琴的A4键,定义为p=69。音高每上升一个半音,p加1。


如上图所示,从C4到B4分别对应着do re mi fa sol la xi,它们的p值分别为 60 62 64 65 67 69 71,注意中间有黑键,你也可以根据下表来查询某个音的频率。

晟宁净n
2018-01-07 · TA获得超过5446个赞
知道小有建树答主
回答量:1931
采纳率:68%
帮助的人:558万
展开全部
clear;clc;
A4=440;%标准音A4
pt=44100;p0=pt/2;%频率
scale12=A4/2^(9/12)*2.^((0:11)/12);%十二平均律
map=[1 3 5 6 8 10 12];%七音符
%乐谱
score=[1 1 5 5 6 6 5,...do do sol sol la la sol-
4 4 3 3 2 2 1,...fa fa mi mi re re do-
5 5 4 4 3 3 2,...sol sol fa fa mi mi re-
5 5 4 4 3 3 2,...sol sol fa fa mi mi re-
1 1 5 5 6 6 5,...do do sol sol la la sol-
4 4 3 3 2 2 1];%fa fa mi mi re re do-
%节拍
rhythm=repmat([1 1 1 1 1 1 2],1,6);
%歌词
lyric=['一闪一闪亮晶晶' ...Twinkle twinkle little star
'满天都是小星星' ...How I wonder what you are
'挂在天上放光明' ...Up above the world so high
'好像许多小眼睛' ...like a diamond in the sky
'一闪一闪亮晶晶' ...Twinkle twinkle little star
'满天都是小星星'];%How I wonder what you are
%下面开始播放
for i=1:length(score)
fprintf(1,'%c',lyric(i))
wavplay(sin((1:rhythm(i)*p0)/pt*2*pi*scale12(map(score(i)))),pt);
if mod(i,7)==0
fprintf(1,'\n');
end
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式