matlab演奏最炫民族风(代码)
(总)基于MATLAB的简单音乐合成仿真设计.
密级:
学号:2013248731
本科生毕业论文(设计)
基于MATLAB的简单音乐合成仿真设计
学院:信息工程
年级: 13级
专业:通信工程
学生姓名:何世欣
指导教师:魏涛
学士学位论文原创性声明
本人郑重声明:所呈交的论文(设计)是本人在指导老师的指导下独立进行研究,所取得的研究成果。除了文中特别加以标注引用的内容外,本论文(设计)不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。
学位论文作者签名(手写):签字日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权江西科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
(请在以上相应方框内打“√”)
学位论文作者签名(手写):指导老师签名(手写):
签字日期:年月日签字日期:年
摘要
科学技术的发展使得社会生活越来越趋于信息化和数字化,在此基础上语音信号也可以基于数字信号处理技术和语音学相关知识进行信息化处理,此类技术因应用性广便捷性高受到社会的广泛关注,已成为信息科学工程与研究领域的核心技术,被越来越多的高科技产业广泛使用。计算机合成音乐也在其基础上得以迅速普及,而且理论上可以创造出任何一种声音。
MATLAB是一种用于数据分析和处理的计算机应用软件,它可以将语音文件进行信息化处理转化为离散的数据文件,再通过内置强大的矩阵运算能力如数字滤波、时域和频域分析、傅里叶变换、时域和频域分析、声音合成以及各种图形的呈现等处理数据。利用MATLAB自带的功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。音乐可视为不同频率与振幅的正弦波叠加并加以不同包络所形成的信号,它的这个特点使得MATLAB的处理有了可能,通过处理不同的音频MATLAB可以进行简单的音乐合成。
matlab有趣的代码
matlab有趣的代码
Matlab是一种用于科学计算和数据可视化的强大工具。它不仅可以解决数学问题,还可以进行图像处理、信号处理、机器学习等等。在这篇文章中,我将为大家介绍一些有趣的Matlab代码,并解释它们的功能和应用。
1. "音乐可视化" - 利用Matlab可以将音频信号转换为可视化效果。你可以使用Matlab的音频处理库来读取音频文件,并将其转换为时域或频域信号。然后,你可以使用Matlab的绘图功能将这些信号可视化成波形图或频谱图。
2. "图像滤镜效果" - Matlab提供了丰富的图像处理工具箱,可以实现各种有趣的图像滤镜效果。比如,你可以使用Matlab的边缘检测算法来突出图像的边缘特征,或者使用模糊滤镜来模糊图像。这些滤镜效果可以使图像更加有趣和艺术化。
3. "模拟物理实验" - Matlab可以用来模拟各种物理实验,比如弹簧振子、摆钟等。你可以使用Matlab的数值计算功能来解决物理方程,并使用Matlab的绘图功能将模拟结果可视化。这样,你就可以通过代码实现自己的物理实验,并观察其行为和变化。
4. "游戏开发" - Matlab不仅可以用于科学计算和数据处理,还可以用于游戏开发。你可以使用Matlab的图形库来创建简单的游戏界面,并使用Matlab的控制语句和逻辑运算来实现游戏的逻辑。这样,
你就可以通过编写Matlab代码来开发自己的小游戏。
5. "数据可视化" - Matlab提供了丰富的绘图和可视化工具,可以帮助你更好地理解和展示数据。你可以使用Matlab的绘图函数来绘制各种统计图表,比如柱状图、折线图、散点图等。这些图表可以帮助你更直观地理解数据的分布和趋势。
通过matlab演奏歌曲
一个有趣的程序,使用matlab演奏突然地自我,运行时间比较长,喜欢伍佰的童鞋们要有耐心
clc
fs=44100;
t=0: 1/fs: 0.5;
ddo= sin(pi*261.63*t);
dre= sin(pi*293.67*t);
dmi= sin(pi*329.63*t);
dfa= sin(pi*349.23*t);
dsol= sin(pi*391.99*t);
dla = sin(pi*440*t);
dxi= sin(pi*493.88*t);
kong=sin(pi*4*t);
zdo= sin(2*pi*261.63*t);
zre= sin(2*pi*293.67*t);
zmi= sin(2*pi*329.63*t);
zfa= sin(2*pi*349.23*t);
zsol= sin(2*pi*391.99*t);
zla = sin(2*pi*440*t);
zxi= sin(2*pi*493.88*t);
gdo= sin(4*pi*261.63*t);
gre= sin(4*pi*293.67*t);
gmi= sin(4*pi*329.63*t);
gfa= sin(4*pi*349.23*t);
gsol= sin(4*pi*391.99*t);
gla = sin(4*pi*440*t);
gxi= sin(4*pi*493.88*t);
part1=[zmi zmi zre zmi kong] %33230
part2=[zla zsol zmi zre zdo zdo kong] %6532110
matlab 演奏卡农
fs = 44100; % sample ratedt = 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 functionsmod4 = sin(pi*t4/t4(end));mod8 = sin(pi*t8/t8(end));mod16 = sin(pi*t16/t16(end));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 notesdo0f = 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);
matlab经典代码大全
哈哈哈
MATLAB
显示正炫余炫图:plot(x,y1,'* r',x,y2,'o b')
定义【0,2π;t=0:pi/10:2*pi; 定义函数文件:function [返回变量列表]=函数名(输入变量列表) 顺序结构:选择结构
1)if-else-end 语句其格式为:if 逻辑表达式
程序模块 1 ;
else
程序模块 2 ;
End
图片读取:%选择图片路径
[filename, pathname] = ... uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');
% 合成路径+ 文件名str=[pathname,filename];
%为什么pathname 和filename 要前面出现的位置相反才能运行呢???%读取图片
im=imread(str);
% 使用图片
axes(handles.axes1);
% 显示图片imshow(im);
边缘检测:
global im
str=get(hObject,'string');
axes (handles.axes1);
switch str
case ' 原图' imshow(im);
case 'sobel'
BW = edge(rgb2gray(im),'sobel'); imshow(BW);
case 'prewitt'
BW = edge(rgb2gray(im),'prewitt');
imshow(BW);
case 'canny'
BW = edge(rgb2gray(im),'canny');
imshow(BW); Canny 算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案
(完整word版)MatLab代码大全
第2章图像获取
2.3.2 二维连续傅里叶变换
例2.2
figure(1); %建立图形窗口1
[u,v] = meshgrid(-1:0.01:1); %生成二维频域网格
F1 = abs(sinc(u.*pi));
F2 = abs(sinc(v.*pi));
F=F1.*F2; %计算幅度频谱F=|F(u,v)|
surf(u,v,F); %显示幅度频谱,如图2.3(b)
shading interp; %平滑三维曲面上的小格
axis off; %关闭坐标系
figure(2); %建立图形窗口2
F1=histeq(F); %扩展F的对比度以增强视觉效果
imshow(F1); %用图像来显示幅度频谱,如图2.3(c)
第3章图像变换
3.4.4 二维FFT的MATLAB实现
例3.2 简单图像及其傅里叶变换
MATLAB程序:
%建立简单图像d并显示之
d = zeros(32,32); %图像大小32⨯32
d(13:20,13:20) = 1; %中心白色方块大小为8⨯8
figure(1); %建立图形窗口1
imshow(d,'notruesize');%显示图像d如图3.5(a)所示
%计算傅里叶变换并显示之
D = fft2(d); %计算图像d的傅里叶变换,fft2(d) = fft(fft(d).').'
figure(2); %建立图形窗口2
imshow(abs(D),[-1 5],'notruesize'); %显示图像d的傅里叶变换谱如3.5(b)所示
例3.3 MATLAB图像及其傅里叶变换谱
MATLAB程序:
Get清风MATLAB程序大全
MATLAB程序大全
1.全景图到穹景图
这个程序我最初是用FreeImage写的,这两天改成了matlab,再不贴上来,我就要忘了。
看到一篇文章有这样的变换,挺有意思的,就拿来试了一下,文章点此。
全景图到穹顶图变换,通俗的说就是将全景图首尾相接做成一个圆环的样子。
先看下面这张图:
下面的矩形就是我们要处理的全景图,上面的矩形是变换后的图像。下面图像的底边对应穹顶图的内圆,顶边对应穹顶图的外圆,当然,反过来也是可以的。
程序流程:
1.定义穹顶图内圆和外圆的半径,变换后的像素就填充在这个内外半径的圆环中。
2.遍历穹顶图,当所处理当前像素位于圆环内,那么通过极坐标反变换去全景图中寻找相应位置的像素进行填充。
3.遍历完图像就行了。
用的技巧和图像旋转或放大缩小都是类似的。
处理结果:
原图:
结果:
matlab代码如下:clear all;
close all;
clc;
img=imread('pan.jpg');
imshow(img);
[m,n]=size(img);
r1=100; %内环半径
r2=r1+m; %外环半径
imgn=zeros(2*r2,2*r2);
[re_m,re_n]=size(imgn);
for y=1:re_m
for x=1:re_n
dis_x=x-re_n/2;
dis_y=y-re_m/2;
l=sqrt(dis_x^2+dis_y^2);
if l<=r2 && l>=r1
theta=0;
if y>re_m/2
theta=atan2(dis_y,dis_x);
end
matlab经典代码大全
哈哈哈
MATLAB
显示正炫余炫图:plot(x,y1,'* r’,x,y2,'o b’)
定义【0,2π】;t=0:pi/10:2*pi;
定义函数文件:function [返回变量列表]=函数名(输入变量列表)
顺序结构:选择结构
1)if-else-end语句
其格式为:
if 逻辑表达式
程序模块1;
else
程序模块2;
End
图片读取:%选择图片路径
[filename, pathname]= .。。
uigetfile({’*.jpg’;’*.bmp’;'*。gif'},’选择图片’);
%合成路径+文件名
str=[pathname,filename];
%为什么pathname和filename要前面出现的位置相反才能运行呢???%读取图片
im=imread(str);
%使用图片
axes(handles。axes1);
%显示图片
imshow(im);
边缘检测:
global im
str=get(hObject,'string’);
axes (handles。axes1);
switch str
case ' 原图’
imshow(im);
case ’sobel’
BW = edge(rgb2gray(im),’sobel’);
imshow(BW);
case 'prewitt’
BW = edge(rgb2gray(im),'prewitt’);
imshow(BW);
case 'canny'
BW = edge(rgb2gray(im),’canny’);
imshow(BW);Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案
迎风格式 matlab编写
在MATLAB中,迎风格式是一种常用的输出格式,用于将数值数据以增量的方式输出到控制台或文件中。在迎风格式中,输出值的格式取决于当前的输出格式设置,包括小数点后的位数和小数点的位置。
在上述代码中,fprintf函数用于将数据以迎风格式输出到控制台,fwrite函数用于将数据以迎风格式写入文件。在格式字符串中,%f表示输出浮点数,\n表示换行。在输出时,MATLAB会自动根据当前设置的小数点位数和小数点位置对数据进行格式化。
matlab经典代码大全
哈哈哈
MATLAB
显示正炫余炫图:plot(x,y1,'* r',x,y2,'o b')
定义【0,2π】;t=0:pi/10:2*pi;
定义函数文件:function [返回变量列表]=函数名(输入变量列表)
顺序结构:选择结构
1)if-else-end语句
其格式为:
if 逻辑表达式
程序模块1;
else
程序模块2;
End
图片读取:%选择图片路径
[filename, pathname] = ...
uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');
%合成路径+文件名
str=[pathname,filename];
%为什么pathname和filename要前面出现的位置相反才能运行呢???%读取图片
im=imread(str);
%使用图片
axes(handles.axes1);
%显示图片
imshow(im);
边缘检测:
global im
str=get(hObject,'string');
axes (handles.axes1);
switch str
case ' 原图'
imshow(im);
case 'sobel'
BW = edge(rgb2gray(im),'sobel');
imshow(BW);
case 'prewitt'
BW = edge(rgb2gray(im),'prewitt');
imshow(BW);
case 'canny'
BW = edge(rgb2gray(im),'canny');
imshow(BW);Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案
MATLAB 编程风格指南
MATLAB 编程风格指南
Richard Johnson
V ersion 1.5,Oct. 2002
版权;Datatool 所有
翻译:Genial @ USTC
“Language is like a cracked kettle on which we beat tuned to dance to, while all the time we long to move the stars to pity.”
-Gustave Flaubert, in Madame Bovary
目录:
简介---------------------------------------------------------------------------------------------2
命名规则---------------------------------------------------------------------------------------2
变量---------------------------------------------------------------------------------------2
常数---------------------------------------------------------------------------------------4
结构体---------------------------------------------------------------------------------------5
matlab弹最炫民族风代码
用matlab弹奏最炫民族风
全选直接复制到matlab工作页面,按回车,稍等片刻就能听到神曲
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);
(完整word版)使用matlab进行简单音乐合成
信号与系统
-综合实验之音乐合成(1)请根据《东方红》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB
中生成幅度为1 、抽样频率为8kHz 的正弦信号表示这些乐音.请用sound 函数播放每个乐音,听一听音调是否正确。最后用这一系列乐音信号拼出《东方红》片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何?
代码如下:
f =8000;
t2=[0:1/f:1];
t4=[0:1/f:0。5];
t8=[0:1/f:0.25];
omg5=523.35;
omg6=587.33;
omg2=392;
omg1=349。23;
omg6l=293.66;
m1=sin(2*pi*omg5*t4);
m2=sin(2*pi*omg5*t8);
m3=sin(2*pi*omg6*t8);
m4=sin(2*pi*omg2*t2);
m6=sin(2*pi*omg1*t4);
m7=sin(2*pi*omg1*t8);
m8=sin(2*pi*omg6l*t8);
m9=sin(2*pi*omg2*t2);
m=[m1 m2 m3 m4 m6 m7 m8 m9];
sound(m);
听的时候发现在相邻乐音之间有杂音,这是由于相位不连续造成的。
(2)你一定注意到(1) 的乐曲中相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频
分量.这种噪声严重影响合成音乐的质量,丧失真实感。为了消除它,我们可以用图1。5 所示包络修正每个乐音,以保证在乐音的邻接处信号幅度为零。此外建议用指数衰减的包络来表示.
matlab经典代码大全精编资料
m a t l a b经典代码大全
哈哈哈
MATLAB
显示正炫余炫图:plot(x,y1,'* r',x,y2,'o b')
定义【0,2π】;t=0:pi/10:2*pi;
定义函数文件:function [返回变量列表]=函数名(输入变量列表)
顺序结构:选择结构
1)if-else-end语句
其格式为:
if 逻辑表达式
程序模块1;
else
程序模块2;
End
图片读取:%选择图片路径
[filename, pathname] = ...
uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');
%合成路径+文件名
str=[pathname,filename];
%为什么pathname和filename要前面出现的位置相反才能运行呢???%读取图片
im=imread(str);
%使用图片
axes(handles.axes1);
%显示图片
imshow(im);
边缘检测:
global im
str=get(hObject,'string');
axes (handles.axes1);
switch str
case ' 原图 '
imshow(im);
case 'sobel'
BW = edge(rgb2gray(im),'sobel');
imshow(BW);
case 'prewitt'
BW = edge(rgb2gray(im),'prewitt');
imshow(BW);
case 'canny'
BW = edge(rgb2gray(im),'canny');
imshow(BW);Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案
matlab代码大全
matlab代码大全
MATLAB主要命令汇总
MATLAB函数参考
附录1.1 管理用命令
函数名功能描述函数名功能描述addpath 增加一条搜索路
径rmpath 删除一条搜索路径
demo 运行Matlab演示程序type 列出.M文件
doc 装入超文本文档version 显示Matlab的版本号
help 启动联机帮助what 列出当前目录下的有关文件
lasterr 显示最后一条信
息whatsnew 显示Matlab的新特性lookfor 搜索关键词的帮助which 造出函数与文件所在的目录
path 设置或查询Matlab路径
附录1.2管理变量与工作空间用命令
函数名功能描述函数名功能描述
^ 矩阵乘方! 操作系统命令提示符
.^ 向量乘方矩阵转置
kron 矩阵kron积 . 向量转置
\ 矩阵左除= 赋值运算
/ 矩阵右除== 关系运算之相等
.\ 向量左除~= 关系运算之不等
./ 向量右除< 关系运算之小于
: 向量生成或子阵提取<= 关系运算之小于等于
() 下标运算或参数定义> 关系运算之大于
[] 矩阵生成>= 关系运算之大于等于{} & 逻辑运算之与
. 结构字段获取符| 逻辑运算之或
. 点乘运算,常与其他运算符联合使用(如.\) ~ 逻辑运算之非
xor 逻辑运算之异成
附录2.2逻辑函数
函数名功能描述函数名功能描述
all 测试向量中所用元素是否为真is*(一类函数) 检测向量状态.其中*表示一个确定的函数(isinf)
any 测试向量中是否有真元素*isa 检测对象是否为某一个类的对象
matlab 演奏卡农
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 = sin(pi*t4/t4(end));
mod8 = sin(pi*t8/t8(end));
mod16 = sin(pi*t16/t16(end));
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);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
% Most shining national wind//最炫民族风 on Matlab
% The Modification is from "canon", not by me
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*Sc
aleTable(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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%