MATLAB合成的音乐

合集下载

在Matlab中实现音乐合成和音乐分析的方法

在Matlab中实现音乐合成和音乐分析的方法

在Matlab中实现音乐合成和音乐分析的方法音乐作为一种艺术形式,是人类情感和创造力的结晶。

如何在Matlab中实现音乐合成和音乐分析的方法,成为了许多音乐爱好者和研究者所关注的问题。

本文将介绍一些常用的音乐合成和音乐分析的方法,并说明它们在Matlab中的实现。

首先,我们来讨论音乐合成的方法。

音乐合成的目标是通过人工的方式生成音乐声音信号。

这可以通过基于规则的方法或基于样本的方法实现。

基于规则的音乐合成常常依赖于合成器,通过调整音色、音高、音量等参数来实现声音生成。

在Matlab中,我们可以利用`audioplayer`函数和音频波形生成函数来实现基于规则的音乐合成。

首先,我们需要定义一个音频波形生成函数,它可以根据输入的参数生成对应的音频波形。

然后,我们可以使用`audioplayer`函数将生成的音频波形播放出来。

通过调整参数可以实现不同的音乐效果。

而基于样本的音乐合成则是利用已有的音频样本来合成音乐。

在Matlab中,我们可以使用`audioread`函数来读取音频样本,然后通过重复拼接、叠加和变调等方式来生成新的音乐。

此外,我们还可以利用`resample`函数来改变音频的采样率,从而实现音乐的时间拉伸或压缩。

通过调整样本的选择和变换方式,我们可以获得不同风格和效果的音乐合成结果。

接下来,我们来讨论音乐分析的方法。

音乐分析的目标是对音乐进行特征提取和结构分析,以便深入理解音乐的内在规律和风格特点。

在Matlab中,有许多用于音乐分析的工具箱和函数可供使用。

一种常用的音乐分析方法是通过频谱分析来提取音乐的频率和强度信息。

在Matlab中,我们可以利用`fft`函数对音频信号进行傅里叶变换,得到音频信号的频谱。

通过分析频谱的峰值频率、能量分布等特征,我们可以获得音乐的基本音高、音色和音量等信息。

此外,我们还可以利用`spectrogram`函数来生成音频的时频谱图,以便更直观地观察音乐信号的时变特征。

使用matlab进行简单音乐合成

使用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 所示包络修正每个乐音,以保证在乐音的邻接处信号幅度为零。

此外建议用指数衰减的包络来表示。

我采用的是指数衰减的包络。

代码如下: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=exp(-2*t4).*sin(2*pi*omg5*t4);m2=exp(-4*t8).*sin(2*pi*omg5*t8);m3=exp(-4*t8).*sin(2*pi*omg6*t8);m4=exp(-1*t2).*sin(2*pi*omg2*t2);m6=exp(-2*t4).*sin(2*pi*omg1*t4);m7=exp(-4*t8).*sin(2*pi*omg1*t8);m8=exp(-4*t8).*sin(2*pi*omg6l*t8);m9=exp(-1*t2).*sin(2*pi*omg2*t2);m=[m1 m2 m3 m4 m6 m7 m8 m9];sound(m);第一次我采用的指数衰减没有时间前面的系数,即每个都只乘exp(t),没有系数;后来根据不同节拍,更改了不同的衰减系数,这样声音听起来感觉更加圆润。

用matlab编译合成call of silence

用matlab编译合成call of silence

用matlab编译合成call of silenceCall of Silence 是一首非常著名的电子音乐,由日本音乐家TAIJI 制作。

如果你想用 MATLAB 进行编译合成 Call of Silence,可以使用以下步骤:1. 使用 MATLAB 生成采样波形。

你可以使用 MATLAB 的音频合成函数合成采样波形,并将其保存为音频文件。

下面是一个简单的MATLAB 代码示例:```matlab% 生成采样波形wave = audioread("call_of_silence.wav");% 进行音频合成tones = audiotones(100, 0.5, "sawtooth");audio 合成函数audiowrite(wave, tones);```2. 使用 MATLAB 的音频合成函数将采样波形与音频信号进行合成。

你可以使用 MATLAB 的音频合成函数来合成采样波形和音频信号。

下面是一个简单的 MATLAB 代码示例:```matlab% 生成采样波形wave = audioread("call_of_silence.wav");% 进行音频合成tones = audiotones(100, 0.5, "sawtooth");audiowrite(wave, tones);% 再次生成采样波形wave2 = audioread("call_of_silence.wav");% 将第二次生成的采样波形与第一次生成的采样波形合并wave = wave + wave2;```3. 下载和安装 MATLAB 的音频合成库。

MATLAB 的音频合成库需要从官方网站下载并安装。

你可以在 MATLAB 的官方网站下载适用于你的操作系统的版本。

安装完成后,你可以使用 MATLAB 的音频合成函数来合成音频信号。

matlab合成运算

matlab合成运算

matlab合成运算在MATLAB中,合成运算指的是将音频信号合并在一起。

你可以使用以下方法完成合成运算:1. 使用`audioread`函数读取所有要合并的音频文件,并将其加载到MATLAB中,例如:```matlab[y1, Fs1] = audioread('file1.wav');[y2, Fs2] = audioread('file2.wav');```这将把第一个文件的音频数据存储在`y1`中,采样率存储在`Fs1`中,第二个文件的音频数据存储在`y2`中,采样率存储在`Fs2`中。

如果需要,你可以在读取音频文件之前使用`resample`函数将其采样率调整为相同的值。

2. 如果需要,对音频数据进行加窗处理,例如:```matlabwindow = hann(length(y1)); % 使用汉宁窗y1_windowed = y1 .* window;y2_windowed = y2 .* window;```这将把`y1`和`y2`的每个样本乘以对应位置的窗函数值,以减少合并时产生的混响噪音。

3. 如果两个音频文件的长度不同,你可以选择使用以下方法来调整它们的长度:- 使用`resample`函数将较短的音频文件的采样率与较长的文件相匹配。

- 使用`padarray`函数在较短的音频文件的末尾添加零值,使其与较长的音频文件具有相同的长度。

4. 直接合并两个音频文件,例如:```matlaby_merged = y1 + y2;```这将把两个音频文件的对应样本位置的值相加,并将结果存储在`y_merged`中。

5. 最后,你可以使用`audiowrite`函数将合并后的音频信号保存为一个新的音频文件,例如:```matlabaudiowrite('merged.wav', y_merged, Fs1);```这将把`y_merged`写入到名为`merged.wav`的文件中,采样率设置为`Fs1`。

Matlab中的电子音乐制作与音频合成技术

Matlab中的电子音乐制作与音频合成技术

Matlab中的电子音乐制作与音频合成技术引言电子音乐制作是一种结合技术和艺术的创造过程,而Matlab作为一种强大的数学计算软件,不仅可以应用于科学研究和工程设计,也能够用于音频处理和音乐创作。

本文将介绍Matlab中的一些电子音乐制作和音频合成技术,探讨如何利用Matlab来实现音频效果的设计和实现。

1. Matlab中的音频处理工具Matlab提供了许多音频处理工具箱,如Audio System Toolbox和DSP System Toolbox。

这些工具箱包含了各种音频处理算法和函数,可以用于音频的录制、分析、编辑和合成等方面。

通过这些工具箱,用户可以实现各种音频效果,如均衡器、压缩器、延时器等,并可以对音频进行滤波、混响、合成等处理。

2. 音频合成技术音频合成是电子音乐制作的重要环节之一,它可以通过合成器、采样和合成算法等方式来生成各种音频信号。

Matlab中的音频合成技术主要通过生成相应的音频波形来实现。

2.1 合成器Matlab提供了很多合成器函数,如sine、square、sawtooth等,用于生成不同类型的音频波形。

用户可以通过调整参数,如频率、振幅、相位等来控制波形的特性。

这些合成器函数可以通过简单的数学公式来实现生成音频波形的过程,使用户能够灵活地创作各种音乐效果。

2.2 采样合成除了使用合成器函数生成音频波形外,Matlab还提供了采样合成技术,用户可以通过将各种音频样本进行采样和合成来实现音频合成。

这种方法可以将现实世界中的各种音频素材转化为数字信号,并通过合成算法进行处理和合成。

3. 音频效果的设计与实现Matlab中的音频处理工具箱提供了丰富的音频效果函数和滤波器设计工具,使用户能够设计和实现各种音频效果。

3.1 均衡器均衡器是一种常用的音频效果器,它可以调整不同频段的音量,改变音频频谱的平衡来达到音频加工的效果。

Matlab中可以使用filter函数和滤波器设计工具来设计和实现不同类型的均衡器。

matlab音乐合成葫芦娃

matlab音乐合成葫芦娃

目录音乐合成实验................................................................................................. 错误!未定义书签。

摘要: (1)第一部分简单的合成音乐 (1)1.1合成《葫芦娃》 (1)1.2 除噪音,加包络 (5)1.3改变程序,实现1.2中的音乐升高和降低一个八度 (8)1.4在1.2的音乐中加入谐波 (9)摘要:本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。

由潜入深,一步一步分析了用MATLAB进行音乐合成的过程。

通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB 基本使用的目标。

第一部分简单的合成音乐1.1 合成《葫芦娃》根据《葫芦娃》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound播放合成的音乐而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。

用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。

clear all;clc;freq=8000; %抽样频率T=1/freq;pattime=0.5; %节拍的时间note2=0:T:2*pattime;note4=0:T:1*pattime;note8=0:T:0.5*pattime;note_1=261.63; %各个音乐对应的频率note_2=293.67;note_3=329.63;note_5=391.99;note_6=440;note_7=493.88;note_1b=523.25;wave1=sin(2*pi*note_1*note4); %各个音符所对应的节拍wave2=sin(2*pi*note_1*note4);wave3=sin(2*pi*note_3*note2);wave4=sin(2*pi*note_1*note4);wave5=sin(2*pi*note_1*note4);wave6=sin(2*pi*note_3*note2);wave7=sin(2*pi*note_6*note4);wave8=sin(2*pi*note_6*note4);wave9=sin(2*pi*note_6*note8);wave10=sin(2*pi*note_5*note8);wave11=sin(2*pi*note_6*note4);wave12=sin(2*pi*note_5*note4);wave14=sin(2*pi*note_3*note4); wave15=sin(2*pi*note_1b*note8); wave16=sin(2*pi*note_6*note8); wave17=sin(2*pi*note_6*note8); wave18=sin(2*pi*note_5*note8); wave19=sin(2*pi*note_6*note2); wave20=sin(2*pi*note_5*note4); wave21=sin(2*pi*note_1*note4); wave22=sin(2*pi*note_2*note2); wave23=sin(2*pi*note_7*note2); wave24=sin(2*pi*note_7*note8); wave25=sin(2*pi*note_5*note8); wave26=sin(2*pi*note_3*note4); wave27=sin(2*pi*note_5*note2); wave28=sin(2*pi*note_1b*note8); wave29=sin(2*pi*note_6*note8); wave30=sin(2*pi*note_6*note8); wave31=sin(2*pi*note_5*note8); wave32=sin(2*pi*note_5*note8); wave33=sin(2*pi*note_6*note8); wave34=sin(2*pi*note_6*note8); wave35=sin(2*pi*note_5*note4); wave36=sin(2*pi*note_1*note4); wave37=sin(2*pi*note_3*note2); wave38=sin(2*pi*note_1b*note8); wave39=sin(2*pi*note_6*note8); wave40=sin(2*pi*note_6*note8); wave41=sin(2*pi*note_5*note8); wave42=sin(2*pi*note_5*note8); wave43=sin(2*pi*note_6*note8); wave44=sin(2*pi*note_6*note8); wave45=sin(2*pi*note_5*note4); wave46=sin(2*pi*note_1*note4); wave47=sin(2*pi*note_2*note2); wave48=sin(2*pi*note_3*note2); wave49=sin(2*pi*note_3*note8); wave50=sin(2*pi*note_1*note8); wave51=sin(2*pi*note_6*note4); wave52=sin(2*pi*note_1*note2); wave53=sin(2*pi*note_3*note4); wave54=sin(2*pi*note_5*note4); wave55=sin(2*pi*note_6*note4); wave56=sin(2*pi*note_6*note8);wave58=sin(2*pi*note_5*note4);wave59=sin(2*pi*note_6*note4);wave60=sin(2*pi*note_6*note8);wave61=sin(2*pi*note_1b*note2);wave62=sin(2*pi*note_7*note8);wave63=sin(2*pi*note_5*note4);wave64=sin(2*pi*note_6*note2);wave=[wave1 wave2 wave3 wave4 wave5 wave6 wave7 wave8 wave9 wave10 wave11 wave12 wave13 wave14 wave15 wave16 wave17 wave18 wave19 wave20 wave21 wave22 wave23 wave24 wave25 wave26 wave27 wave28 wave29 wave30 wave31 wave32 wave33 wave34 wave35 wave36 wave37 wave38 wave39 wave40 wave41 wave42 wave43 wave44 wave45 wave46 wave47 wave48 wave49 wave50 wave51 wave52 wave53 wave54 wave55 wave56 wave57 wave58 wave59 wave60 wave61 wave62 wave63 wave64]; %歌曲wave数组sound(wave,8000); %播放waveplot(wave); %描画函数在MA TLAB中运行,播放出了《葫芦娃》,但是可以听出效果很不好,只能听出具有《葫芦娃》的调子而已。

使用MATLAB进行数字音频特效与合成方法

使用MATLAB进行数字音频特效与合成方法

使用MATLAB进行数字音频特效与合成方法引言:数字音频特效与合成是音频处理中的关键领域之一,广泛应用于音乐制作、电影音效等领域。

MATLAB作为一种强大的数学计算工具,也被广泛应用于数字音频处理。

本文将介绍使用MATLAB进行数字音频特效与合成的方法。

1. 数字音频处理基础1.1 数字音频信号的表示数字音频信号是由一系列离散的采样值组成的,可以用矩阵表示。

在MATLAB中,我们可以将音频文件读取为矩阵,每一列代表一个采样点,每个采样点的值表示音频的幅度。

1.2 数字音频特效与合成方法概述数字音频特效与合成是对音频信号进行处理、改变其特征或生成新信号的过程。

常用的音频特效包括均衡器、混响、合唱效果等,而音频合成则是生成新的音频信号,如合成乐器音色等。

2. 数字音频特效方法2.1 均衡器均衡器用于改变音频信号的频率响应特性。

在MATLAB中,可以使用滤波器来实现均衡器。

具体方法是先将音频信号进行快速傅里叶变换(FFT),然后根据需要调整频率响应曲线,最后再进行逆变换将信号转换回时域。

2.2 混响效果混响是为音频信号增加一定的残响效果,让声音听起来更加自然。

在MATLAB中,可以使用卷积运算来实现混响效果。

先准备一个具有残响特性的信号,然后将其与原始音频信号进行卷积运算。

2.3 合唱效果合唱效果是在原始音频信号的基础上加入多个稍微延迟的副本,以产生丰富的和声效果。

在MATLAB中,可以通过将原始音频信号进行多次延迟,然后与原始信号相加得到合唱效果。

3. 数字音频合成方法3.1 音色合成音色合成是生成新音频信号的一种常用方法。

在MATLAB中,可以利用合成公式或声码器模型来实现音色合成。

通过调整合成公式或模型参数,可以生成不同乐器的音色。

3.2 音乐生成音乐生成是指通过算法生成新的音乐作品。

在MATLAB中,可以使用音符序列以及合成方法来实现音乐生成。

通过定义音符的频率、持续时间和音量等参数,并利用合成方法生成相应的音频信号,就可以实现音乐生成。

MATLAB音乐合成

MATLAB音乐合成
x=x+E*(sin(a(music(n)).*t)).*u{n}; end sound(x,32000);
包络波形:
1.5 1
0.5 0
-0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
用指数衰减也不行。经过与同学对比,发现对音符间隔理解不用。如果向( 1) 中那样,第一个 5 演奏后,停顿一个音符,虽然更好听些,但是加包络以后,还 是会造成有高频分量。 所以改变方法,将 5 延长至下一个 5.
figure; subplot(3,1,1); plot(wave2proc); title( 'wave2proc' ); subplot(3,1,2); plot(sample2); title( 'sample2' ); subplot(3,1,3); plot(sample2-wave2proc'); title( 'sample2-wa ve2proc' );
K=2^(1/12); a0=220*pi/2; for n=1:20
a(n)=a0.*K^n; end b0=a0*2; for n=1:20
b(n)=b0.*K^n; end c0=a0*3; for n=1:20
c(n)=c0.*K^n; end
a(25)=0; b(25)=0; c(25)=0;
因为非线性谐波和噪声有一个共同点,就是随机产生,无周期性变化。 所以可以把波形进行若干次叠加,然后取平均值,可以想到,叠加次数越多,其 平均值就越接近于周期波形。 读出realwave波形,发现采样点为243,重复十次,可得周期为24.3,所以可 以将其延长至十倍,这样,周期就是整数。

Matlab音乐合成实验报告

Matlab音乐合成实验报告

课程设计《音乐合成》实验报告专业:测控技术与仪器班级:测控11-2 班*名:***学号: ***********指导教师:**广东石油化工学院计算机与电子信息学院信号与系统课程设计-------利用matlab合成音乐一、实验目的1. 熟悉MATLAB的软件和语言指令的使用;2. 学习利用MATLAB进行连续信号的时域、频域分析;3. 熟悉抽样信号与连续信号的区别。

二、实验内容1.请根据《画心》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB 中生成幅度为1抽样频率为8kHz 的正弦信号表示这些乐音。

请用sound 函数播放每个乐音,听一听音调是否正确。

最后用这一系列乐音信号拼出《画心》片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何?并用图显示生成的音乐信号。

相关知识:①《画心》完整曲谱,实验时从中随机截取几节用于编程。

②利用十二平均律计算频率以及相关音乐知识。

如图1,其中错误!未找到引用源。

,错误!未找到引用源。

,错误!未找到引用源。

相当于错误!未找到引用源。

的二次谐波,二者是倍频的关系。

从A到A1共有12个键,7个白色键,5个黑色键。

中间这些频率值得计算规律为相邻音倍乘系数错误!未找到引用源。

即错误!未找到引用源。

,别的依次类推。

图1 钢琴键盘图1中各键对应的频率如下表:bG表示的F升高半音,在乐谱中用#表示。

或者G降低半音,用b表示。

乐谱这中的4/4表示每小节有四拍,一个1/4音符的持续时间为一拍,一拍大概0.5s左右。

eg:y=0*t; %初始化y(t<0.25)=sin(440*2*pi*t(t<0.25)); %第一个音 5,持续时间0.25sy(0.25<t&t<0.5)=sin(392*2*pi*t(0.25<t&t<0.5)); %第二个音3,持续时间0.25ssound(y,8000) %播放音乐三.实验步骤3.1音乐合成根据《画心》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound播放合成的音乐。

matlab音乐合成

matlab音乐合成

M A T L A B数学实验报告姓名:学号:指导老师:专业班级:音乐合成学号班级姓名指导教师实验题目音乐合成评分1.实验目的:1.熟悉MATLAB的软件和语言指令的使用;2. 学习利用MATLAB进行连续信号的时域、频域分析;3. 通过电子音乐合成方面的练习增进对傅里叶级数的理解2.实验内容:使用matlab演奏《当你孤单你会想起谁》3.详细设计:1.本次音乐合成所作曲目为《当你孤单你会想起谁》简谱首先介绍matlab函数的玩法:matlab播放音乐是由sound(Y,fs,bits)函数完成的,该函数的3个参数代表输入信号、采样率、比特率。

先说采样率fs的设置,人耳能够听到的声音范围是20~20000Hz。

根据采样定理fs只需要大于40000即可。

此处采样率的设置采用了MP3的标准,即fs=44.1k.再说输入信号Y,Y一般是一个正弦波,如A*sin(2*pi*w*t)。

其中A控制着声音的大小,w控制着声音的高低,t的范围控制着声音的长短,所以理论上利用这个公式可以发出任何声音,只是不能控制音色和音质(音色音质很难用参数量化,我问了一下学语音的同学,这个东西跟音频谱重心,音频扩展度和音频谱平坦度有关系,这里不作讨论)。

比特率采用默认值即可,该参数省略。

于是用下面的公式就可以播放出标准音la:fs=44100;t=0: 1/fs: 0.5;la = sin(2*pi*440*t);sound(la, fs)据所知,音高和频率是指数的关系,它们满足下面的公式,其中p是音高,f是频率标准音la,即钢琴的A4键,定义为p=69。

音高每上升一个半音,p加1。

设计代码:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% when you are lonely,who will you think about? //当你孤单你会想起谁 on 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=(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 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); 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 notesdo0e = 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 notesdo0s = 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_malpart1 = [mi1e fa1e so1e so1e so1e so1e so1f mi1e fa1e...so1e so1e so1e so1e so1f la1e ti1e...do2f mi1f mi1e re1e mi1e mi1e mi1e mi1e ...];part2=[ so1e so1e fa1e fa1e mi1e re1e do1e do1e mi1e...mi1e fa1e mi1e do1e do1f so1e so1e...so1e fa1e fa1e mi1e fa1e so1e so1e mi1e mi1e re1e re1e re1e ...];part3 = [mi1e fa1e so1e so1e so1e so1e so1f so1e so1e...so1e so1e so1e so1e so1f la1e ti1e...do2f mi1f mi1e re1e mi1e mi1e mi1e mi1e mi1e so1e...];part4 = [ so1e so1e fa1e fa1e mi1e re1e do1e do1e mi1e mi1e fa1e mi1e do1e so1e so1e...so1e fa1e fa1e mi1e fa1e so1e so1e la1e la1e so1e so1e la1f ti1f...do2e do2e re2e do2e do2f do2e do2e...ti1e do2e ti1e so1e so1e so1e so1e...la1f do1f do1f re1e mi1e mi1e so1e so1e mi1e re1f la1e ti1e...do2e do2e re2e do2e do2f do2e do2e...ti1e do2e ti1e so1e so1f so1e so1e...la1e do2e do2e do2e do2e do2e do2e...do2e re2s re2e do2e mi2e re2e re2f re2f re2f re2f re2f ...];part5 = [mi2f mi2e fa2e mi2e re2f do2e re2e so2e re2e re2f re2f...do2f do2e re2e do2f ti1e la1e...ti1f mi2e ti1e ti1e ...la1f re2e mi2e re2e do2e la1f ...so1f re2e mi2e re2e do2e la1f...];% Combination, v1 is complete version, v2 is simple version.v1 = [part1 part2 part3 part4 part5];s = v1;sound(s,fs);输入此代码后,即可使《当你孤单你会想起谁》以matlab的形式播放出来4:实验结果:经过matlab的处理后,《当你孤单你会想起谁》通过matlab播放了出来,并可以画出如下图片。

MATLAB中的音乐合成和音频处理技术

MATLAB中的音乐合成和音频处理技术

MATLAB中的音乐合成和音频处理技术音乐是人类文化的一部分,而音频处理和音乐合成则是现代技术的重要应用之一。

在MATLAB中,我们可以利用其强大的信号处理功能和数值计算能力,实现高质量的音频处理和音乐合成。

本文将探讨MATLAB中的音乐合成和音频处理技术,并介绍一些常用的方法和工具。

一、音频处理技术音频处理技术是指对音频信号进行各种操作和处理,以改善音频质量或提取有用信息。

MATLAB提供了许多处理音频信号的函数和工具箱,例如音频导入、滤波、降噪、特征提取等。

1. 音频导入和播放在MATLAB中,我们可以使用audioread函数将音频文件导入到工作空间中,并使用sound函数或audioplayer对象来播放音频。

2. 滤波和均衡器滤波是音频处理中常用的技术之一,用于去除噪声或强调特定频率的信号。

MATLAB提供了一系列滤波器设计和滤波函数,如低通滤波、高通滤波、带通滤波等。

此外,还可以使用均衡器调整音频频谱的均衡度。

3. 降噪和音频增益降噪是一项重要的音频处理任务,用于减少噪声对音频质量的影响。

MATLAB 中有多种降噪算法可供选择,如傅里叶变换降噪、小波降噪等。

此外,还可以通过调节音频增益来增强信号的强度和清晰度。

4. 音频特征提取音频特征提取是指从音频信号中提取与语音内容、音乐信息等相关的特征。

MATLAB中可以使用信号处理工具箱的功能来提取音频特征,如时域特征(如能量、过零率等)、频域特征(如频谱、谱图等)、光谱特征(如梅尔频率倒谱系数、线性预测编码系数等)等。

5. 音频合成和效果处理除了信号处理和特征提取外,MATLAB还提供了强大的音频合成和效果处理功能。

我们可以使用音频合成算法生成各种音频信号,如正弦波、白噪声、方波等。

此外,还可以使用音频效果处理算法实现音频混响、合唱、失真等效果。

二、音乐合成技术音乐合成是指通过声音的合成和处理,生成逼真的音乐作品。

在MATLAB中,我们可以利用其丰富的信号处理和数值计算功能,实现各种音乐合成技术。

基于MATLAB的简单音乐合成

基于MATLAB的简单音乐合成

《数字信号处理》课程设计说明书设计题目:基于MATLAB的简单音乐合成姓名:专业年级:学号:指导老师:时间:2015年6月25日《数字信号处理课程设计》任务书指导老师(签名):__________________________福建农林大学数字信号处理课程设计说明书目录1 设计基础 ........................................................................................................................... - 4 - 1.1 MATLAB软件简介 .................................................................................................... - 4 -1.2 乐曲解析..................................................................................................................... - 4 -2 设计与实现 ............................................................................................ 错误!未定义书签。

2.1 简单的音乐合成.............................................................................. 错误!未定义书签。

2.1.1原理分析 .................................................................................... 错误!未定义书签。

如何进行MATLAB音频处理与合成

如何进行MATLAB音频处理与合成

如何进行MATLAB音频处理与合成MATLAB(Matrix Laboratory)是一种功能强大的科学计算软件,广泛应用于各个领域的工程和研究项目中。

其中,音频处理与合成是MATLAB的一个重要应用领域之一。

本文将探讨如何使用MATLAB进行音频处理与合成,以及其中的一些基本原理和方法。

一、音频信号的表示与处理在MATLAB中,音频信号通常是以数字矩阵的形式进行表示和处理。

每个音频样本被映射到一个数字值上,这些数字值按照一定的采样率进行采样,形成了一段音频信号的离散表示。

在进行音频处理前,需要将音频信号读取到MATLAB中,并将其转换为一个数字矩阵。

MATLAB提供了许多用于音频读取和写入的函数,如audioread()和audiowrite()。

使用audioread()函数可以将音频文件读取为数字矩阵,例如:```matlab[x, fs] = audioread('audio.wav');```其中,x表示音频信号的数字矩阵,fs表示采样率。

读取完音频信号后,我们就可以对其进行各种音频处理操作了。

二、音频处理操作1. 音频滤波音频滤波是一种常见的音频处理操作,通常用于去除噪声、调整音频声音质量等。

MATLAB提供了丰富的滤波函数和工具箱,如fir1()和butter()函数可以用于设计滤波器。

我们可以根据具体的需求选择滤波器类型,并将其应用于音频信号上,实现不同的滤波效果。

2. 音频均衡化音频均衡化是调整音频频谱,使其在不同频率上的能量均匀分布的过程,以改善音频的听感效果。

MATLAB提供了许多频域处理函数,如fft()和ifft(),可以用于对音频信号进行频谱分析和合成。

通过对音频信号进行频谱加权调整,即可实现音频均衡化的效果。

3. 音频时域处理音频时域处理是指对音频信号在时间上进行调整或变换的一类操作。

其中,常见的音频时域处理操作包括音频剪切、音频重采样等。

MATLAB提供了丰富的时域处理函数,如resample()和crop()函数可以用于音频重采样和剪切操作。

基于MATLAB软件的音乐合成毕业论文

基于MATLAB软件的音乐合成毕业论文

基于MATLAB软件的音乐合成毕业论文河北经贸大学毕业论文基于MATLAB软件的音乐合成专业名称: 电子信息工程班级: 201102 学生姓名: 王雪指导老师: 章瑞平完成时间: 2015年5月河北经贸大学毕业论文摘要本设计利用MATLAB软件,通过MATLAB GUI构建一个具有图形用户界面的音乐合成系统。

该系统能实现音乐的简单合成、音乐的降噪处理、音乐的加谐波处理、音乐的升降度处理、音乐的时域和频域波形图显示及利用傅里叶级数原理合成音乐的操作。

本系统应用模块化的思路进行设计,将系统分为四个模块,分别为简单合成及处理音乐的模块、利用傅里叶变换分析音乐频谱的模块、基于傅里叶级数合成音乐的模块和音乐字幕动态显示的模块。

本论文阐述了整个系统详细的设计过程,而针对每个模块的设计都有详细的理论基础为依托,包括原理及设计程序,并且有仿真效果的演示。

该软件系统作为教学辅助软件可以为语音信号处理课程的教学提供一定的帮助,可以让学生们更好地深入理解信号与系统等主干课程的内容,充分发挥自身的创新能力与实践能力。

该系统可以通过选取不同的算法,对音乐分别进行处理,基本做到抑制噪声,提高音乐质量,有利于更高层次的处理与应用。

此外,从整体效果上看,该系统的用户应用界面友好、便于操作,通过菜单、控件的使用可以方便的选取不同的方法,设置不同的参数以便于用户操作使用。

系统通过对各种处理效果的演示,也可以让用户更直观地了解简单音乐处理的几种方法,并在各种相应处理前后的对比中让用户更容易接受与其对应的方法及特点。

关键词音乐合成;MTALAB;GUI;傅里叶变换河北经贸大学毕业论文AbstractThe design in this paper uses the MATLAB software to construct a music synthesis system with a graphical user interface by MATLAB GUI.The system can achieve simple music synthesis,the processing of reducing music noise,the treatment of music with harmonic,the processing of raising and lower octave,displaying waveform in time domain and frequency domain and synthesis of music based on Fourier series.This system takes the idea of modular design,divided into four modules, respectively including the module of music of simple synthesis and processing,the module of music spectrum analysis through using the Fourier transform,the module of music synthesis based on Fourier series,the module of displaying music subtitle dynamically.Thispaper,including the principle and program design and simulation results demonstrate, describes the design process of the system in detail.Each module has a detailed theoretical basis for support.As a teaching aid software can provide some help for the speech signal processing coursein teaching,which can help students understand the signal and system course and give full play to students’ innovation ability and practice ability.Through selecting different algorithms,the system candispose music respectively, suppress noise basically,improve the quality of music and avail to deal with the higher level.In addition,the graphic user interface of the system is friendly and easy to operate. Select different methods and set different parameters for users by using themenu,controls.Through a variety of demonstrations of effects,the system also makes users understand several ways of dealing with music more intuitively and in compare with before and after the all treatments,we can accept the corresponding methods and characteristics more easily.Keywords Music synthesis; MTALAB;GUI;Fourier transformI河北经贸大学毕业论文目录1 绪论 ..................................................................... 01.1 研究背景及意义 ..................................................................... . 01.2 研究的主要内容 ..................................................................... ................ 0 2 MATLAB软件的简介 ..................................................................... .. (2)2.1 MATLAB的发展史 ..................................................................... .. (2)2.2 MATLAB的系统构成 ............................................................................ 3 3 MATLAB音乐合成的原理 ..................................................................... . (4)3.1 所涉及的乐理知识简述 ..................................................................... .. (4)3.1.1 音调与唱名...................................................................... . (4)3.1.2 音色与谐波...................................................................... . (4)3.1.3 十二平均律...................................................................... . (4)3.2 傅里叶变换与频谱分析 ..................................................................... ..... 5 4 MATLAB音乐合成系统的总体设计 (6)4.1 系统的总体设计 ..................................................................... . (6)4.2 GUI界面的设计 ..................................................................... . (6)4.2.1 启动GUIDE .................................................................. (7)4.2.2 GUIDE设计环境 ..................................................................... .. (7)4.2.3 GUI界面的功能设计 (8)5 MATLAB音乐合成系统的设计与实现 (10)5.1 简单合成及处理音乐模块的设计与实现 (10)5.1.1 合成《社会主义好》 ..................................................................105.1.2 加包络,除噪音 ..................................................................... . (11)5.1.3 音乐升降度处理 ..................................................................... . (12)5.1.4 音乐加谐波处理 ..................................................................... . (14)5.2 用傅里叶变换分析音乐频谱模块的设计与实现 (15)5.3 基于傅里叶级数合成的音乐模块的设计与实现 (19)5.4 音乐《小星星》字幕动态显示模块的设计与实现 (20)6 系统的调试与运行...................................................................... .. (23)河北经贸大学毕业论文6.1 音乐的播放、暂停的调试与运行 (23)6.2 傅里叶变换分析音乐的调试与运行 (24)总结...................................................................... .............................................. 25 参考文献 ..................................................................... .. (26)I河北经贸大学毕业论文基于MATLAB软件的音乐合成1 绪论1.1 研究背景及意义如今,信息化、数字化程度越来越高,语音信号的处理技术作为基于数字信号处理技术与语音学知识对语音信号进行处理的新兴技术被越来越多的高科技产业广泛应用,这项技术成为信息科学工程与研究领域的核心技术之一。

音乐合成_matlab

音乐合成_matlab

MATLAB音乐合成一、简单音乐合成1、根据音乐简谱和十二平均律计算出每个乐音的频率,在 MATLAB中生成幅度为 1,抽样频率为 8kHz 的正弦信号表示这些乐音,用 sound 播放合成的音乐A=[174.61 196 220 246.94 261.62 293.66 329.63 349.23 392 440493.88 523.25 587.33 659.25 698.45 739.99 783.99]; % 定义各调频率fs=8000; %修改频率pu=[1 1 1 3 5 5 5 5 6 6 6 8 5 4 4 6 6 3 3 3 3 2 2 2 2 5 5 1 1 1 3 5 5 5 5 6 6 6 8 5 4 4 4 6 3 3 3 3 3 2 2 2 3 1 ]; %在pu中只需输入乐谱数字,在下面B=A-什么什么那部分调整音调,省去了写频率的麻烦p=0.5;last_time=[p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p p p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p/2 p ];%各乐音持续时间为节省空间,用p代替N=length(pu);f=zeros(1,N);B=A-5;for i=1:Nf(i)=B(pu(i)); %f为各个乐音对应的频率,修改其它调endpoint=fs*last_time; %各个乐音的抽样点数total_point=sum(point); %这段音乐的总抽样点数store=zeros(1,total_point); %用store向量来储存抽样点m=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号 t=1/fs:1/fs:point(num)/fs; %产生第num个乐音的抽样点store(m:m+point(num)-1)=sin(2*pi*f(num)*t); %抽样点对应的幅值m=m+point(num);endsound(store,8000); %播放出storeplot(store); %画出store图像2、除噪音,加包络在1.1中听到有“啪”的杂声,这是由于相位不连续产生了高频分量,下面通过加包络来消噪音。

Matlab音乐合成实验报告

Matlab音乐合成实验报告

音乐合成实验目录音乐合成实验 (1)摘要: (1)第一部分简单的合成音乐 (2)1.1合成《东方红〉〉 (2)1.2 除噪音,加包络 (3)1.3改变程序,实现1.2中的音乐升高和降低一个八度 (8)1.4 在1.2的音乐中加入谐波 (8)1.5 自选音乐合成 -- 《两只老虎》 (9)第二部分用傅里叶变换分析音乐 (10)2.1 载入fmt.wav并播放 (10)2.2 载入文件Guitar.mat,处理原始数据realwave (11)2.3 分析wave2proc的基波和谐波 (14)2.4 自动分析fmt.wav的音调和节拍 (17)第三部分基丁傅里叶级数的音乐合成 (20)3.1用2.3分析出来的结果重新加谐波 (20)3.2 通过2.4提取的吉他音调信息弹奏《东方红》 (21)实验收获 (22)本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基丁傅里叶级数的音乐合成。

由潜入深,一步一步分析了用MATLAffi行音乐合成的过程。

通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLABS本使用的目标。

1.1 合成《东方红》根据《东方红》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound 播放合成的音乐5 | 2 — 1 ] 161 2 - |压曲(嘉床如:>第〒小市曲谓由图可知《东方红》的曲调定为F,即1=F,对应的频率为349.23Hz,据此可以计算出其他乐音的频率,例如5对应的频率为7/12f5 = 349.23 x 2 = 523.25 , 一次类推计算出第一小节各乐音对应的频率为:在确定了各乐首的频率之后需要确定每个乐首的持续时间。

每小节有两拍,一拍的时间是0.5s ,因此各乐音的持续时间为:而在MATLAB表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。

MATLAB在声音合成与音乐生成中的应用实践

MATLAB在声音合成与音乐生成中的应用实践

MATLAB在声音合成与音乐生成中的应用实践声音合成和音乐生成是音频领域的重要应用之一,它们可以通过模拟或合成声音来产生音乐或其他声音效果。

MATLAB作为一种强大的科学计算软件,提供了丰富的音频处理和分析函数,可以实现高质量的声音合成和音乐生成。

本文将介绍MATLAB在声音合成和音乐生成中的应用实践。

首先,MATLAB提供了丰富的声音合成算法和工具箱,可以方便地生成各种类型的声音效果。

例如,MATLAB的Waveform Generation工具箱提供了一些基本的波形函数,如正弦波、方波、锯齿波等,可以通过调整参数来生成不同频率和振幅的声音波形。

此外,MATLAB还提供了一些高级的声音合成算法,如FM合成、Granular Synthesis等。

这些算法可以模拟真实乐器的发音机制,并生成逼真的音乐效果。

其次,MATLAB在音乐生成中的应用更为广泛。

音乐生成是指通过算法或规则生成音乐作品的过程。

MATLAB可以通过编写脚本和函数实现音乐生成算法,从而生成优美的音乐片段。

其中,一种常见的音乐生成算法是基于概率的模型,如马尔可夫链。

通过构建状态转移矩阵和初始状态向量,可以使用MATLAB快速生成基于马尔可夫链的音乐片段。

此外,MATLAB还可以通过调用音频处理工具箱中的音乐特征提取函数,如音高、节奏等,来辅助音乐生成算法。

然而,单一的声音合成和音乐生成算法往往难以生成高质量的音乐作品。

因此,相较于传统的基于规则的算法,深度学习在音乐生成中的应用逐渐受到关注。

MATLAB提供了强大的深度学习工具箱,如Deep Learning Toolbox,可以用于音乐生成。

深度学习算法可以通过分析大量的音乐数据,学习并模拟人类音乐创作的特点和规律,从而生成高质量的音乐。

在MATLAB中,人类创作可以通过遗传算法来模拟。

遗传算法是一种基于生物进化原理的优化算法,可以通过演化过程找到最优解。

在音乐中,可以将音符作为基本单元,通过遗传算法来生成音乐的结构和内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%只要把程序复制在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));
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);
% Blank Block
blkblock = [blkf blkf blkf blkf blkf blkf blkf blkf...
blkf blkf blkf blkf blkf blkf blkf blkf];
% Base Melody
cello = [do1f do1f so0f so0f la0f la0f mi0f mi0f...
do2f do2f ti1f ti1f la1f la1f so1f so1f...
fa1f fa1f mi1f mi1f fa1f fa1f re1f re1f ...%
do1f mi1f so1f fa1f mi1f do1f mi1f re1f...
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);
do1f la0f do1f so1f fa1f la1f so1f fa1f...%
mi1f do1f re1f ti1f do2f mi2f so2f so1f...
la1f fa1f so1f mi1f do1f do2f blkf blke ti1e ...%
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);
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);
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);
la1e so1e fa1e mi1e re1e fa1e mi1e re1e... %%
do1e re1e mi1e fa1e so1e re1e so1e fa1e...
mi1e la1e so1e fa1e so1e fa1e mi1e re1e...
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);
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
fa0s = mod16.*cos(2*pi*ScaleTable(1)*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);
do1e la0e la1e ti1e do2e ti1e la1e so1e...
fa1e mi1e re1e la1e so1e la1e so1e fa1e...%
mi1f mi2e blke re2f re2f blkf do1f mi2f mi2f...
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);
la2f la2f so2f so2f la2f la2f ti2f ti2f...%
do3e blke do2e blke ti1f ti1f blkf la1f do2f do2f...
do2f do2f do2f do2f do2f fa2f re2f so2f...%
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);
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);
fa0f fa0f do0f do0f fa0f fa0f so0f so0f];
% So-FUCKING-Long Melody
violin = [mi2f mቤተ መጻሕፍቲ ባይዱ2f re2f re2f do2f do2f ti1f ti1f...
la1f la1f so1f so1f la1f la1f ti1f ti1f ...%
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);
do2e ti1e do2e do1e ti0e so1e re1e mi1e...
do1e do2e ti1e la1e ti1e mi2e so2e la2e...
fa2e mi2e re2e fa2e mi2e re2e do2e ti1e...
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);
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 ...
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);
相关文档
最新文档