MATLAB制作歌曲
简谱知识
首先了解简谱基础知识
表示音的高低的基本符号,用七个阿拉伯数字标记。
它们的写法和读法如下:
- 写法: 1 2 3 4 5 6 7
- 读法: Do Re Mi Fa Sol La Si
1˙\dot{1}1˙ 表示高音Do
111 表示中音Do
1.\mathop{1}\limits_{.}.1 表示低音Do
音符名称 | 写法 | 时值 |
---|---|---|
全音符 | X−−−X---X−−− | 四拍 |
二分音符 | X−X-X− | 二拍 |
四分音符 | XXX | 一拍 |
八分音符 | X‾\underline{X}X | 半拍 |
十六分音符 | X‾‾\underline{\underline{X}}X | 四分之一拍 |
三十二分音符 | X‾‾‾\underline{\underline{\underline{X}}}X | 八分之一拍 |
附点音符 | . | 前面音符时值的一半 |
休止符 | 0 | 一拍 |
MATLAB变量表示
音符变量以三部分表示
- l/m/h/ol/m/h/ol/m/h/o:低音/中音/高音/休止符
- 1/2/3/4/5/6/71/2/3/4/5/6/71/2/3/4/5/6/7:Do/Re/Mi/Fa/Sol/La/Si
- 1/2/4/8/161/2/4/8/161/2/4/8/16:全音符/二分音符/四分音符/八分音符/十六分音符
以下面简谱为例
则应表示为:
m68,m616,m616,m62,m616,m316,m616,m716m68,m616,m616,m62,m616,m316,m616,m716m68,m616,m616,m62,m616,m316,m616,m716
h18,h116,h116,h12,h18,h28h18,h116,h116,h12,h18,h28h18,h116,h116,h12,h18,h28
基础代码
key.m
function g=key(p, n, fs)
t=0 : 1/fs : 3/n;
g=sin(2*pi* fre(p) *t);
fre.m
function f = fre(p)
f=440*2^((p-9)/12);
song.m
clear;
clc;
fs = 44100; % 频率%% 定义音节
m21 = key(2, 1, fs); % 中音re全音符
% 低音
l12 = key(-12, 2, fs); %低音do二分音符
l22 = key(-10, 2, fs);
l32 = key(-8, 2, fs);
l42 = key(-7, 2, fs);
l52 = key(-5, 2, fs);
l62 = key(-3, 2, fs);
l72 = key(-1, 2, fs);
% 中音
m12 = key(0, 2, fs);
m22 = key(2, 2, fs);
m32 = key(4, 2, fs);
m42 = key(5, 2, fs);
m52 = key(7, 2, fs);
m62 = key(9, 2, fs);
m72 = key(11, 2, fs);
% 高音
h12 = key(12, 2, fs);
h22 = key(14, 2, fs);
h32 = key(16, 2, fs);
h42 = key(17, 2, fs);
h52 = key(19, 2, fs);
h62 = key(21, 2, fs);
h72 = key(23, 2, fs);% 低音
l14 = key(-12, 4,
l24 = key(-10, 4, fs);
l34 = key(-8, 4, fs);
l44 = key(-7, 4, fs);
l54 = key(-5, 4, fs);
l64 = key(-3, 4, fs);
l74 = key(-1, 4, fs);
% 中音
m14 = key(0, 4, fs);
m24 = key(2, 4, fs);
m34 = key(4, 4, fs);
m44 = key(5, 4, fs);
m54 = key(7, 4, fs);
m64 = key(9, 4, fs);
m74 = key(11, 4, fs);
% 高音
h14 = key(12, 4, fs);
h24 = key(14, 4, fs);
h34 = key(16, 4, fs);
h44 = key(17, 4, fs);
h54 = key(19, 4, fs);
h64 = key(21, 4, fs);
h74 = key(23, 4, fs);% 低音
l18 = key(-12, 8, fs);
l28 = key(-10, 8, fs);
l38 = key(-8, 8, fs);
l48 = key(-7, 8, fs);
l58 = key(-5, 8, fs);
l68 = key(-3, 8, fs);
l78 = key(-1, 8, fs);
% 中音
m18 = key(0, 8, fs);
m28 = key(2, 8, fs);
m38 = key(4, 8, fs);
m48 = key(5, 8, fs);
m58 = key(7, 8, fs);
m68 = key(9, 8, fs);
m78 = key(11, 8, fs);
% 高音
h18 = key(12, 8, fs);
h28 = key(14, 8, fs);
h38 = key(16, 8, fs);
h48 = key(17, 8, fs);
h58 = key(19, 8, fs);
h68 = key(21, 8, fs);
h78 = key(23, 8, fs);% 低音
l116 = key(-12, 16, fs);
l216 = key(-10, 16, fs);
l316 = key(-8, 16, fs);
l416 = key(-7, 16, fs);
l516 = key(-5, 16, fs);
l616 = key(-3, 16, fs);
l716 = key(-1, 16, fs);
% 中音
m116 = key(0, 16, fs);
m216 = key(2, 16, fs);
m316 = key(4, 16, fs);
m416 = key(5, 16, fs);
m516 = key(7, 16, fs);
m616 = key(9, 16, fs);
m716 = key(11, 16, fs);
% 高音
h116 = key(12, 16, fs);
h216 = key(14, 16, fs);
h316 = key(16, 16, fs);
h416 = key(17, 16, fs);
h516 = key(19, 16, fs);
h616 = key(21, 16, fs);
h716 = key(23, 16, fs);% 休止符
o2 = key(-inf, 2, fs);
o4 = key(-inf, 4, fs);
o8 = key(-inf, 8, fs);part1 = [m68 m616 m616 m62 m616 m316 m616 m716 h18 h116 h116 h12 h18 h28 m52 m44 m34 m21 o4];
sound(part1, fs)
MATLAB制作歌曲相关推荐
- 用Matlab生成歌曲,MATLAB制作歌曲
简谱知识 首先了解简谱基础知识 表示音的高低的基本符号,用七个阿拉伯数字标记. 它们的写法和读法如下: 写法: 1 2 3 4 5 6 7 读法: Do Re Mi Fa Sol La Si 1 ˙ ...
- Matlab 制作《最炫民族风》弱爆了,附代码
Matlab 制作<最炫民族风>弱爆了,附代码 分类: matlab2012-05-22 22:12 1212人阅读 评论(0) 收藏 举报 matlabreference [plain] ...
- MATLAB写歌曲(艺术与科学的 MEET)
MATLAB写歌曲(艺术与科学的 MEET) 本人认为用 matlab 可以极大锻炼对于音乐和艺术的理性科学认识,我编的这个是孙燕姿的<遇见>,以表达这种艺术和科学的完美邂逅. 理解这样一 ...
- 整理:用matlab创作歌曲
(一部分) 前两天在网上看到了有人用matlab演奏出最炫民族风,用了这么多年matlab还是第一次知道有这种玩法,于是把他的代码研究了一下,自己制作了一首歌曲,在这里分享一下. 首先介绍matlab ...
- 整理:用matlab创作歌曲(一)
前两天在网上看到了有人用matlab演奏出最炫民族风,用了这么多年matlab还是第一次知道有这种玩法,于是把他的代码研究了一下,自己制作了一首歌曲,在这里分享一下. 首先介绍matlab函数的玩法: ...
- matlab bad apple,【bad apple】matlab制作矩阵苹果~
有屏幕的地方就有bad apple 那么作为一名工科生,熟练的操♂作马桶萝卜(matlab)是一项基本技能 下面开始讲解如何用matlab制作别具一格的"矩阵苹果"~ 实验环境 m ...
- c#winform演练 ktv项目 制作歌曲播放列表
c#winform演练 ktv项目 制作歌曲播放列表 关于播放列表 刚启动的音乐软件有播放列表 我们也要实现一个 演练 实现泛型歌曲数组 定义数组 加载歌曲
- 接着奏乐接着舞 Matlab制作圣诞树和圣诞快乐歌
0.前言 时隔一年,又是一年圣诞时.仔细想想,距离上次更新已经过去了很久很久,打工人实在时间精力有限,疏于更新了,感谢还没取关的朋友们- 去年差不多这个时候的一篇关于Matlab画圣诞树的推送最近受到 ...
- MATLAB 制作gif动态图
MATLAB 制作gif动态图的基本思想就是,将一张张的静态图组合成一张能动的gif图片,并保存到相应的位置. 那么,要想制作一张动态图,首先要有若干个静态图,并且他们的索引值是连续的.下面先说一下m ...
- matlab仿真动画,用matlab制作简单仿真动画
用matlab制作简单仿真动画,并生成.avi格式的电影文件 MATALB知识点2008-05-01 13:17:54 阅读152 评论0 字号:大中小订阅 第一种形式:利用for循环,在一定时间内控 ...
最新文章
- python (ploit3)hexun
- js定义鼠标经过变换图片
- linux下的%zu
- Hasor JDBC 的难关,嵌套事务处理思路
- 中断方式下进行串口通讯的正确方法
- docker多个容器一起打包_docker如何将容器打包成镜像
- 为什么macOS比Windows快那么多,是硬件的缘故么?
- Ghost本地安装highlight.js使代码高亮
- Bailian2747 Bailian4146 数字方格【暴力】
- 我是如何把SpringBoot项目的并发提升十倍量级的
- LOG. Supervisor基本使用
- 电磁场计算的服务器性能指标,有限公式电磁场数值计算理论与性能
- 浅析redis雪崩击穿和穿透
- 写论文和平时学习时有用的网站
- STM32F407读取ADS1115数据
- centos7 安装pg_repack
- i.MXU6LL - 制作烧录SD卡详细步骤
- 基于C#+SQL Server实现(Web)学生选课管理系统【100010309】
- 100 个网络基础知识,全部掌握顶半个网络高手
- 最全动态规划题型详解