• 大小: 24KB
    文件类型: .m
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: Matlab
  • 标签: Matlab  小幸运  

资源简介

本文件是MATLAB模拟演奏歌曲小幸运,编写此代码需要有音乐功底和MATLAB编程能力,此代码可以直接下载运行,试听小幸运。

资源截图

代码片段和文件信息

%%%% SingASong
%%%% by 圆
%%%% 乐理基础
%%%% 音高
%%%% C=do D=re E=mi F=fa G=sol A=la B=si
%%%% 钢琴上一共有88个音高,将这些音高进行分组可分为
%%%% 小字一组,小字二组,小字三组,小字四组,小字五组
%%%% 小字组,大字组,大字一组,大字二组
%%%% 音乐中将中央C上放的A音定为标准音高,其频率为f=440
%%%% 中央C是指小字一组c即a1的频率为440
%%%% 音值
%%%% 全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符
%%%% 附点二分音符、附点四分音符、附点八分音符、附点十六分音符
clc
clear all

t0=3;                      %%一个全音符的时长

fs=44100;                  %%采样率该值为MP3的标准采样率
dt=1/fs;

t16=0:dt:t0/16;            %%十六分音符
N=length(t16);
t8=linspace(0t0*2/162*N);   %%八分音符
t4=linspace(0t0*4/164*N);   %%四分音符
t2=linspace(0t0*8/168*N);   %%二分音符
t1=linspace(0t0*16/1616*N);  %%全音符

t8d=linspace(0t0*3/163*N);   %%附点八分音符
t4d=linspace(0t0*6/166*N);    %%附点四分音符
t2d=linspace(0t0*12/1612*N);   %%附点二分音符
%%%% 音高与频率的关系
p=1:88;
f=440*2.^((p-49)/12);       %% p为音高
%%%% Modification 函数
mod1=sin(pi*t1/t1(end));
mod2=sin(pi*t2/t2(end));
mod4=sin(pi*t4/t4(end));
mod8=sin(pi*t8/t8(end));
mod2d=sin(pi*t2d/t2d(end));
mod4d=sin(pi*t4d/t4d(end));
mod8d=sin(pi*t8d/t8d(end));
mod16=sin(pi*t16/t16(end));
% mod16d=sin(pi*t16d/t16d(end));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 全音符
%%大字二组
A2_1 =mod1.*cos(2*pi*f(1)*t1);
A2s_1=mod1.*cos(2*pi*f(2)*t1);
B2_1 =mod1.*cos(2*pi*f(3)*t1);
%%大字一组
C1_1 =mod1.*cos(2*pi*f(4)*t1);
C1s_1=mod1.*cos(2*pi*f(5)*t1);
D1_1 =mod1.*cos(2*pi*f(6)*t1);
D1s_1=mod1.*cos(2*pi*f(7)*t1);
E1_1 =mod1.*cos(2*pi*f(8)*t1);
F1_1 =mod1.*cos(2*pi*f(9)*t1);
F1s_1=mod1.*cos(2*pi*f(10)*t1);
G1_1 =mod1.*cos(2*pi*f(11)*t1);
G1s_1=mod1.*cos(2*pi*f(12)*t1);
A1_1 =mod1.*cos(2*pi*f(13)*t1);
A1s_1=mod1.*cos(2*pi*f(14)*t1);
B1_1 =mod1.*cos(2*pi*f(15)*t1);
%%大字组
C_1 =mod1.*cos(2*pi*f(16)*t1);
Cs_1=mod1.*cos(2*pi*f(17)*t1);
D_1 =mod1.*cos(2*pi*f(18)*t1);
Ds_1=mod1.*cos(2*pi*f(19)*t1);
E_1 =mod1.*cos(2*pi*f(20)*t1);
F_1 =mod1.*cos(2*pi*f(21)*t1);
Fs_1=mod1.*cos(2*pi*f(22)*t1);
G_1 =mod1.*cos(2*pi*f(23)*t1);
Gs_1=mod1.*cos(2*pi*f(24)*t1);
A_1 =mod1.*cos(2*pi*f(25)*t1);
As_1=mod1.*cos(2*pi*f(26)*t1);
B_1 =mod1.*cos(2*pi*f(27)*t1);
%%小字组
c_1 =mod1.*cos(2*pi*f(28)*t1);
cs_1=mod1.*cos(2*pi*f(29)*t1);
d_1 =mod1.*cos(2*pi*f(30)*t1);
ds_1=mod1.*cos(2*pi*f(31)*t1);
e_1 =mod1.*cos(2*pi*f(32)*t1);
f_1 =mod1.*cos(2*pi*f(33)*t1);
fs_1=mod1.*cos(2*pi*f(34)*t1);
g_1 =mod1.*cos(2*pi*f(35)*t1);
gs_1=mod1.*cos(2*pi*f(36)*t1);
a_1 =mod1.*cos(2*pi*f(37)*t1);
as_1=mod1.*cos(2*pi*f(38)*t1);
b_1 =mod1.*cos(2*pi*f(39)*t1);
%%小字一组
c1_1 =mod1.*cos(2*pi*f(40)*t1);
c1s_1=mod1.*cos(2*pi*f(41)*t1);
d1_1 =mod1.*cos(2*pi*f(42)*t1);
d1s_1=mod1.*cos(2*pi*f(43)*t1);
e1_1 =mod1.*cos(2*pi*f(44)*t1);
f1_1 =mod1.*cos(2*pi*f(45)*t1);
f1s_1=mod1.*cos(2*pi*f(46)*t1);
g1_1 =mod1.*cos(2*pi*f(47)*t1);
g1s_1=mod1.*cos(2*pi*f(48)*t1);
a1_1 =mod1.*cos(2*pi*f(49)*t1);
a1s_1=mod1.*cos(2*pi*f(50)*t1);
b1_1 =mod1.*cos(2*pi*f(51)*t1);
%%小字二组
c2_1 =mod1.*cos(2*pi*f(52)*t1);
c2s_1=mod1.*cos(2*pi*f(53)*t1);
d2_1 =mod1.*cos(2*pi*f(54)*t1);
d2s_1=mod1.*cos(2*pi*f(55)*t1);
e2_1 =mod1.*cos(2*pi*f(56)*t1);
f2_1 =mod1.*cos(2*pi*f(57)*t1);
f2s_1=mod1.*cos(2*pi*f(58)*t1);
g2_1 =mod1.*c

评论

共有 条评论