QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4914|回复: 22
打印 上一主题 下一主题

MATLAB——最炫民族风曲谱代码

[复制链接]
字体大小: 正常 放大

1

主题

4

听众

101

积分

升级  0.5%

  • TA的每日心情
    开心
    2012-9-2 15:33
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    自我介绍
    一起交流学习啊!!
    跳转到指定楼层
    1#
    发表于 2012-5-18 13:06 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    fs = 44100; % sample rate
    dt = 1/fs;

    T16 = 0.125;

    t16 = [0:dt:T16];
    [temp k] = size(t16);

    t4 = linspace(0,4*T16,4*k);
    t8 = linspace(0,2*T16,2*k);

    [temp i] = size(t4);
    [temp j] = size(t8);

    % Modification functions
    mod4=(t4.^4).*exp(-30*(t4.^0.5));
    mod4=mod4*(1/max(mod4));
    mod8=(t8.^4).*exp(-50*(t8.^0.5));
    mod8=mod8*(1/max(mod8));
    mod16=(t16.^4).*exp(-90*(t16.^0.5));
    mod16=mod16*(1/max(mod16));

    f0 = 2*146.8; % reference frequency

    ScaleTable = [2/3 3/4 5/6 15/16 ...
    1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ...
    2 9/4 5/2 8/3 3 10/3 15/4 4 ...
    1/2 9/16 5/8];

    % 1/4 notes
    do0f = mod4.*cos(2*pi*ScaleTable(21)*f0*t4);
    re0f = mod4.*cos(2*pi*ScaleTable(22)*f0*t4);
    mi0f = mod4.*cos(2*pi*ScaleTable(23)*f0*t4);

    fa0f = mod4.*cos(2*pi*ScaleTable(1)*f0*t4);
    so0f = mod4.*cos(2*pi*ScaleTable(2)*f0*t4);
    la0f = mod4.*cos(2*pi*ScaleTable(3)*f0*t4);
    ti0f = mod4.*cos(2*pi*ScaleTable(4)*f0*t4);
    do1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4);
    re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4);
    mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4);
    fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4);
    so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4);
    la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4);
    tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4);
    ti1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4);
    do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4);
    re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4);
    mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4);
    fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4);
    so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4);
    la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4);
    ti2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4);
    do3f = mod4.*cos(2*pi*ScaleTable(20)*f0*t4);
    blkf = zeros(1,i);

    % 1/8 notes
    do0e = mod8.*cos(2*pi*ScaleTable(21)*f0*t8);
    re0e = mod8.*cos(2*pi*ScaleTable(22)*f0*t8);
    mi0e = mod8.*cos(2*pi*ScaleTable(23)*f0*t8);

    fa0e = mod8.*cos(2*pi*ScaleTable(1)*f0*t8);
    so0e = mod8.*cos(2*pi*ScaleTable(2)*f0*t8);
    la0e = mod8.*cos(2*pi*ScaleTable(3)*f0*t8);
    ti0e = mod8.*cos(2*pi*ScaleTable(4)*f0*t8);
    do1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8);
    re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8);
    mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8);
    fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8);
    so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8);
    la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8);
    tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8);
    ti1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8);
    do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8);
    re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8);
    mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8);
    fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8);
    so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8);
    la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8);
    ti2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8);
    do3e = mod8.*cos(2*pi*ScaleTable(20)*f0*t8);
    blke = zeros(1,j);

    % 1/16 notes
    do0s = mod16.*cos(2*pi*ScaleTable(21)*f0*t16);
    re0s = mod16.*cos(2*pi*ScaleTable(22)*f0*t16);
    mi0s = mod16.*cos(2*pi*ScaleTable(23)*f0*t16);

    fa0s = mod16.*cos(2*pi*ScaleTable(1)*f0*t16);
    so0s = mod16.*cos(2*pi*ScaleTable(2)*f0*t16);
    la0s = mod16.*cos(2*pi*ScaleTable(3)*f0*t16);
    ti0s = mod16.*cos(2*pi*ScaleTable(4)*f0*t16);
    do1s = mod16.*cos(2*pi*ScaleTable(5)*f0*t16);
    re1s = mod16.*cos(2*pi*ScaleTable(6)*f0*t16);
    mi1s = mod16.*cos(2*pi*ScaleTable(7)*f0*t16);
    fa1s = mod16.*cos(2*pi*ScaleTable(8)*f0*t16);
    so1s = mod16.*cos(2*pi*ScaleTable(9)*f0*t16);
    la1s = mod16.*cos(2*pi*ScaleTable(10)*f0*t16);
    tb1s = mod16.*cos(2*pi*ScaleTable(11)*f0*t16);
    ti1s = mod16.*cos(2*pi*ScaleTable(12)*f0*t16);
    do2s = mod16.*cos(2*pi*ScaleTable(13)*f0*t16);
    re2s = mod16.*cos(2*pi*ScaleTable(14)*f0*t16);
    mi2s = mod16.*cos(2*pi*ScaleTable(15)*f0*t16);
    fa2s = mod16.*cos(2*pi*ScaleTable(16)*f0*t16);
    so2s = mod16.*cos(2*pi*ScaleTable(17)*f0*t16);
    la2s = mod16.*cos(2*pi*ScaleTable(18)*f0*t16);
    ti2s = mod16.*cos(2*pi*ScaleTable(19)*f0*t16);
    do3s = mod16.*cos(2*pi*ScaleTable(20)*f0*t16);
    blks = zeros(1,k);


    % Melody by Schau_mal
    part0 = [mi1f la0e la0e do1f mi1f ...
    re1e re1s mi1s re1e do1e re1e do1e la0f ...
    mi1f la0e la0e do1f mi1f ...
    so1e re1s mi1s re1e do1e re1e do1e ti0e so0e ...
    mi1f la0e la0e do1f mi1f ...
    re1e re1s mi1s re1e do1e re1e do1e la0e so0e ...
    mi1f la0e la0e do1f mi1f ...
    so1e mi1e blkf blkf blkf ...
    ];

    part1 = [la0f la0e so0e la0f la0e do1e ...
    do1f re1e do1e la0f la0f ...
    do1f do1e so0e do1e re1e mi1e so1e ...
    so1e mi1e re1f mi1f mi1f ...
    la1e la1e la1e so1e mi1e mi1f do1e ...
    la0e la0e la0e mi1e re1s mi1s re1e re1f ...
    mi1e mi1e so1e mi1e re1e mi1e re1e do1e ...
    la0f so0f la0f la0f ...
    ];

    part2 = [mi1e mi1e so1e mi1e mi1e so1e so1e la1e ...
    do2e la1e so1f la1s do2s la1e la1f ...
    la0f la0e so0e la0f do1f ...
    re1e mi1s re1s do1e re1e mi1f mi1f ...
    la0e la1e la1e so1e re1e mi1s re1s do1e re1e ...
    mi1f mi1f blke blke blkf ...
    do1e la0e la0e do1e re1f so0e so0e ...
    mi1e so1e mi1e re1e do1f do1f ...
    la0e do1e re1e mi1e re1e do1e so0e mi0e ...
    la0f la0f blke blke blkf ...
    ];

    part3 = [la0f la0e so0e la0f do1f ...
    re1e mi1s re1s do1e re1e mi1f mi1f ...
    la0e la1e la1e so1e re1e mi1s re1s do1e re1e ...
    mi1f mi1f blke blke blkf ...
    do1e la0e la0e do1e re1f so0e so0e ...
    mi1e so1e mi1e re1e do1f do1e do1e ...
    la0e do1e re1e mi1e so1e mi1e mi1e so1e ...
    la1f la1f la1f la1f ...
    ];

    part4 = [la1e la1s la1s la1e la1e la1e la1s so1s mi1e re1e ...
    re1e re1s re1s mi1e mi1s so1s mi1e mi1s re1s do1e do1s la0s ...
    la0f la0e so0e la0f la0e do1e ...
    re1e mi1s re1s do1e re1e mi1f mi1f ...
    la1e so1e mi1e re1e so1e mi1e re1e do1e ...
    do1f do1f la0s do1s re1s mi1s re1s do1s la0s do1s
    ];

    part5 = [do2e do2s do2s la1e la1s la1s so1e so1s so1s mi1e mi1s mi1s ...
    re1e mi1s re1s do1e la0s so0s la0s so0s do1s re1s mi1s so1s la1s re2s ...
    do2f do2f blks blks blks blks do1e re1e ...
    mi1f mi1f mi1f so1e mi1e ...
    la1f la1f la1e do1e so1e mi1e ...
    re1f re1e re1s re1s re1e re1e do1e re1e ...
    mi1f mi1e mi1s mi1s mi1e re1s do1s ti0e do1s re1s ...
    mi1f mi1f mi1f so1e mi1e ...
    do2f la1f la1f la1e do1e ...
    re1f so1f so1f la1f ...
    ti1f ti1f ti1f ti1f ...
    ];

    part6 = [blkf blkf mi1e so1e mi1e so1e ...
    mi1f la0e la0s la0s do1f la0e mi1s la0s ...
    do1e do1s do1s re1e do1s re1s mi1f mi1f ...
    mi1f la0e la0s la0s so1f re1e re1s re1s ...
    mi1f mi1f mi1s re1s do1s la0s mi0s re0s mi0s so0s ...
    do1f la0e la0s la0s re1f so0e so0s so0s ...
    mi0f so0e so0s so0s do1f do1f ...
    la0f do1e do1s la0s mi1e mi1s mi1s re1e re1s mi1s ...
    ];

    % Combination, v1 is complete version, v2 is simple version.
    v1 = [part0 part1 part1 part2 part3 part4 part0 part1 part1 part2 part3 part5 part3 part6 part3];
    v2 = [part0 part1 part1 part2 part3 part5 part3 part6 part3];

    % Let's rock ^_^
    s = v1;
    s = s/max(s);

    sound(s,fs);

    min_zu_feng.m

    6.69 KB, 下载次数: 43, 下载积分: 体力 -2 点

    文件

    zan
    已有 2 人评分体力 收起 理由
    sdccumcm + 5 超强
    masterkong + 5 很给力!

    总评分: 体力 + 10   查看全部评分

    转播转播0 分享淘帖0 分享分享1 收藏收藏0 支持支持0 反对反对0 微信微信
    lypop123 实名认证    中国数模人才认证   

    8

    主题

    4

    听众

    391

    积分

    升级  30.33%

  • TA的每日心情
    擦汗
    2014-5-8 12:58
  • 签到天数: 136 天

    [LV.7]常住居民III

    群组中科院考研(计算机)

    群组全国大学生数学建模竞

    回复

    使用道具 举报

    lypop123 实名认证    中国数模人才认证   

    8

    主题

    4

    听众

    391

    积分

    升级  30.33%

  • TA的每日心情
    擦汗
    2014-5-8 12:58
  • 签到天数: 136 天

    [LV.7]常住居民III

    群组中科院考研(计算机)

    群组全国大学生数学建模竞

    回复

    使用道具 举报

    3

    主题

    4

    听众

    111

    积分

    升级  5.5%

  • TA的每日心情
    擦汗
    2014-9-15 16:34
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    自我介绍
    努力

    群组Matlab讨论组

    回复

    使用道具 举报

    白影2 实名认证       

    2

    主题

    4

    听众

    63

    积分

    升级  61.05%

  • TA的每日心情
    开心
    2012-11-19 17:25
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    群组Matlab讨论组

    回复

    使用道具 举报

    3

    主题

    8

    听众

    35

    积分

    升级  31.58%

  • TA的每日心情

    2012-10-25 16:09
  • 签到天数: 2 天

    [LV.1]初来乍到

    自我介绍
    学生
    回复

    使用道具 举报

    xysw2011        

    1

    主题

    5

    听众

    1026

    积分

    升级  2.6%

  • TA的每日心情
    开心
    2020-12-9 15:15
  • 签到天数: 314 天

    [LV.8]以坛为家I

    回复

    使用道具 举报

    cache001        

    24

    主题

    16

    听众

    4650

    积分

    升级  88.33%

  • TA的每日心情
    开心
    2021-1-10 11:51
  • 签到天数: 1015 天

    [LV.10]以坛为家III

    自我介绍
    A very ordinary teacher!!!

    社区QQ达人 邮箱绑定达人 新人进步奖

    群组学术交流A

    群组认证人才交流群

    回复

    使用道具 举报

    0

    主题

    7

    听众

    291

    积分

    升级  95.5%

  • TA的每日心情
    开心
    2015-2-8 18:03
  • 签到天数: 84 天

    [LV.6]常住居民II

    邮箱绑定达人

    群组学术交流A

    回复

    使用道具 举报

    0

    主题

    4

    听众

    8

    积分

    升级  3.16%

    该用户从未签到

    群组学术交流A

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-9 03:03 , Processed in 0.896318 second(s), 113 queries .

    回顶部