文档库 最新最全的文档下载
当前位置:文档库 › 音乐合成大作业报告

音乐合成大作业报告

音乐合成大作业报告
音乐合成大作业报告

Matlab实验大作业一音乐合成

微纳电子系微71 郝家悦2017011089

第一部分

1.用正弦信号合成《东方红》

源代码如下:用到的乐音为高音C,高音D,G,F,低音D,长度有四分音符和八分音符。clear all;close all;clc;

t=0:(1/8192):0.5;

tlong=0:(1/8192):1;

tshort=0:(1/8192):0.25;

hc=sin(2*pi*523.25*t);

hcshort=sin(2*pi*523.25*tshort);

hdshort=sin(2*pi*587.33*tshort);

g=sin(2*pi*392*t);

glong=sin(2*pi*392*tlong);

f=sin(2*pi*349.23*t);

fshort=sin(2*pi*349.23*tshort);

ldshort=sin(2*pi*146.83*tshort);

dfh=[hc,hcshort,hdshort,glong,f,fshort,ldshort,glong];

sound(dfh);

见music_ex1.m,运行结果音调正确,但是听起来缺乏真实感,较为刺耳,这是因为合成的音乐中缺乏谐波成分;而在音调衔接处会出现杂音,影响听感。

2.“啪”的杂音由相位不连续导致,为消除此效果,需要在音调衔接处将声强降低至0.这也符合正常音乐音量衰减的规律。

经过测试,在本题中,指数衰减与线性衰减听上去差别不大。如图1.5所示,添加分段函数的包络。源代码如下:

clear all;close all;clc;

t=(1/8192):(1/8192):0.5;

tlong=(1/8192):(1/8192):1;

tshort=(1/8192):(1/8192):0.25;

hc=sin(2*pi*523.25*t);

hcshort=sin(2*pi*523.25*tshort);

hdshort=sin(2*pi*587.33*tshort);

g=sin(2*pi*392*t);

glong=sin(2*pi*392*tlong);

f=sin(2*pi*349.23*t);

fshort=sin(2*pi*349.23*tshort);

ldshort=sin(2*pi*146.83*tshort);

%四分音符对应的包络

mult=zeros(1,4096);

for k=1:1:600

mult(k)=(1/600)*k;

end

for k=601:1:1200

mult(k)=1-(0.5/600)*(k-600);

end

for k=1201:1:2500

mult(k)=0.5;

end

for k=2501:1:4096

mult(k)=0.5-0.5/(4096-2500)*(k-2500); end

mult2=zeros(1,8192);

for k=1:1:1200

mult2(k)=(1/1200)*k;

end

for k=1201:1:2400

mult2(k)=1-(0.5/1200)*(k-1200);

end

for k=2401:1:5000

mult2(k)=0.5;

end

for k=5001:1:8192

mult2(k)=0.5-0.5/(8192-5000)*(k-5000);

end

mult8=zeros(1,2048);

for k=1:1:300

mult8(k)=(1/300)*k;

end

for k=301:1:600

mult8(k)=1-(0.5/300)*(k-300);

end

for k=601:1:1250

mult8(k)=0.5;

end

for k=1251:1:2048

mult8(k)=0.5-0.5/(2048-1250)*(k-1250);

end

plot(mult8);

dfh=[hc.*mult,hcshort.*mult8,hdshort.*mult8,glong.*mult2,f.*mult,fsho rt.*mult8,ldshort.*mult8,glong.*mult2];

sound(dfh);

见music_ex2.m

由于不同长度的音的衰减有所不同,因此对二分音符、四分音符和八分音符的包络,都进行了多次调整,并非简单拉伸/收缩函数。

这样听起来就真实了一些,但是由于没有谐波分量,音色仍然显得奇怪。

3.如果播放时间可以变化,升高/降低八度最简单的方法即是加快/减慢播放音乐的点率(默认为8192点/秒)。

将播放点率改为16384点/秒,即升高八度,播放时间减少一半;改为4096点/秒,降低八度,播放时间增加一倍。

使用resample升高/降低半个音阶,即将采样频率降低/升高1.0595倍。源代码:

dfh=[hc.*mult,hcshort.*mult8,hdshort.*mult8,glong.*mult2,f.*mult,fsho rt.*mult8,ldshort.*mult8,glong.*mult2];

sound(dfh);

sound(dfh,2*8192); %升高八度

sound(dfh,4096); %降低八度

dfh=resample([hc.*mult,hcshort.*mult8,hdshort.*mult8,glong.*mult2,f.* mult,fshort.*mult8,ldshort.*mult8,glong.*mult2],7732,8192); %升高半音阶sound(dfh);

dfh=resample([hc.*mult,hcshort.*mult8,hdshort.*mult8,glong.*mult2,f.* mult,fshort.*mult8,ldshort.*mult8,glong.*mult2],8679,8192); %降低半音阶sound(dfh);

附加在上一题的代码后即可播放几种不同音高的东方红。

整体程序见music_ex3.m

4.按照要求,加入了0.2倍的二次谐波和0.3倍的三次谐波,音乐听上去更有厚度了,刺耳的情况减少了很多。

见music_ex4.m,仅在生成指定频率的信号时做了修改。

变化如下:

hc=sin(2*pi*523.25*t)+0.2*sin(2*2*pi*523.25*t)+0.3*sin(3*2*pi*523.25* t);

hcshort=sin(2*pi*523.25*tshort)+0.2*sin(2*2*pi*523.25*tshort)+0.3*sin (3*2*pi*523.25*tshort);

hdshort=sin(2*pi*587.33*tshort)+0.2*sin(2*2*pi*587.33*tshort)+0.3*sin (3*2*pi*587.33*tshort);

g=sin(2*pi*392*t)+0.2*sin(2*2*pi*392*t)+0.3*sin(3*2*pi*392*t);

glong=sin(2*pi*392*tlong)+0.2*sin(2*2*pi*392*tlong)+0.3*sin(3*2*pi*39 2*tlong);

f=sin(2*pi*349.23*t)+0.2*sin(2*2*pi*349.23*t)+0.3*sin(3*2*pi*349.23*t );

fshort=sin(2*pi*349.23*tshort)+0.2*sin(2*2*pi*349.23*tshort)+0.3*sin( 3*2*pi*349.23*tshort);

ldshort=sin(2*pi*146.83*tshort)+0.2*sin(2*2*pi*146.83*tshort)+0.3*sin (3*2*pi*146.83*tshort);

5.自行合成《gerudo valley》的开头部分,使用0.2倍二次谐波和0.3倍三次谐波,发现高音略显尖锐。因此把该音乐的谐波使用傅里叶分析进行了修改,附在最后的GUI中,点击按钮即可播放。

(musicwindow.m,pushbutton8)

第二部分

6.载入fmt.wav文件。由于在Matlab r2017b中waveread函数已经被舍弃,使用audioread 函数打开文件。真实音乐比合成音乐复杂很多,听起来更有厚度和张力。与真实音乐相比,即使增加了谐波,合成音乐还是显得过于单薄。

7.为方便处理,需要去除原始乐音中的非线性谐波和噪声。由于只能在时域中处理,方法如下:首先绘制realwave的图线,并在工作区中观察数组元素,发现其大致周期约为25。因此,对realwave中的各个周期对应点取平均值,再重复十次,即可得到待处理的乐音。

源代码:

clear all;close all;clc;

mus=audioread('fmt.wav');

% sound(mus);

% 真实音乐谐波成分复杂,比合成音乐真实

load('Guitar.mat');

% 在数组中观察realwave,发现大致周期为25

wave1=resample(realwave,250,243);%重新采样至整周期

wave2=zeros(1,25);

for cnt=1:25

for loops=0:9

wave2(cnt)=wave2(cnt)+wave1(cnt+loops*25);

end

end

wave2=wave2/10;

wave_fin=repmat(wave2,1,10);

wave_fin=resample(wave_fin,243,250);

plot(wave_fin,'b');

hold on;

plot(wave2proc,'r');

第6,7题的程序见music_ex6_7.m,其中resample函数用于将243长度的信号重新采样至其大致周期的整数倍,方便处理。

上图是经过上述处理的原始波形(蓝色)和文件中已经给出的wave2proc(红色)在时域的图线,可以发现二者基本完全重合,即上述处理达到了去除噪声和非线性谐波的效果。

8.通过傅里叶变换分析这段音乐的基频。

根据快速傅里叶变换(fft)的要求,对wave2proc进行快速傅里叶变换。由于该信号的长度较短,变换后容易出现不够分立的结果,如下图所示:

尽管这样的图形对基频分析已经足够,但还是可以通过多次重复该乐段,使得变换得到的频谱更加分立:

以上为将该信号重复100次,增加采样点之后进行FFT的结果,发现该图线更接近于由一系列冲激构成。这样的图线更容易进行频谱分析。

在变换后的图线中,发现基频为337Hz,比较接近钢琴的E调。

9.要求编写程序,自动分析一段音乐的节拍和音调。

本题的难点主要在于分析出音乐的节拍,在时域中可以通过分析信号的幅度来确定节拍。

首先找到在一定范围内(比如每1250点)中信号幅度的峰值,即该点的幅度是附近的极大值。在各个峰值之间寻找节拍,找到周围100点求和最小的位置,即可基本确定节拍位置。

按照此方法划分节拍后,可以将附近振幅增大或减小,使用sound函数播放音乐,在划分的位置可以听到“啪”的杂音。对照后发现划分基本正确。

对每一段进行快速傅里叶变换,可以得到每个音符的频谱分布。在频谱中几个峰值的位置应分别对应基频和二次/三次等谐波分量。因此需要确定基频的位置。基频分量的峰应有一定高度,据此排除无关峰值的干扰。

程序见music_ex9.m,运行后成功将fmt.wav这段音乐划分成了33个音,并且分析出每个音的基频。

第三部分

10.用(8)计算出的傅里叶级数,即基频:二次谐波:三次谐波:四次谐波:五次谐波:六次谐波:七次谐波:八次谐波:九次谐波:十次谐波=0.05485:0.07942:0.05219:0.05993:0.003663:0.005998:0.01953:0.006873:0.007384:0.003623。

增加如上所述的大量谐波分量,源代码更改的部分变为如下所示:

a=[0.05485,0.07942,0.05219,0.05993,0.003663,0.005998,0.01953,0.006873 ,0.007384,0.003623];

hc=0;hcshort=0;hdshort=0;g=0;glong=0;f=0;fshort=0;ldshort=0;

for k=1:1:10

hc=hc+a(k)/a(1)*sin(k*2*pi*523.25*t);

hcshort=hcshort+a(k)/a(1)*sin(k*2*pi*523.25*tshort);

hdshort=hdshort+a(k)/a(1)*sin(k*2*pi*587.33*tshort);

g=g+a(k)/a(1)*sin(k*2*pi*392*t);

glong=glong+a(k)/a(1)*sin(k*2*pi*392*tlong);

f=f+a(k)/a(1)*sin(k*2*pi*349.23*t);

fshort=fshort+a(k)/a(1)*sin(k*2*pi*349.23*tshort);

ldshort=ldshort+a(k)/a(1)*sin(k*2*pi*146.83*tshort);

end

生成了《东方红》中所使用的不同音调/音长,并且都添加了2-10次谐波。再听此音乐,真实感增强了一些,但是越高的音越显得音色不对,因为一把吉他不同的音调,其谐波分量大小也是不同的,需要在不同音高提取,才能较为准确的模仿。

11-12.较为合理的方法是,使用源音乐提取每个音对应的谐波分量,再重新合成。做一个GUI 将傅里叶分析、提取级数、重新合成音乐的功能整合起来。

根据上题绘图的结果,对于每个音提取10级谐波。提取后重新合成,并加以不同的包络,形成不同长度的音调。Mat1,mat2,mat4,mat8,mat16,mat32分别是全音符、二分音符、…十六分音符、三十二分音符所对应的的矩阵。每个矩阵中包含不同音调、相同长度和包络的音。

程序见music_ex11.m和musicwindow.m,musicwindow.fig(图形界面)。可以在图形界面实现加载任何源音乐,自由编写和播放音乐等功能。

使用步骤:

首先输入源音乐的路径(绝对路径和相对路径均可),点击“打开”按钮,即进行傅里叶分析,提取谐波并重新合成各个音调。完成后,下方会显示“提取成功”。

提取成功后,即可播放已有音乐或合成新的音乐。合成音乐时,在两个listbox中分别选择音调和音长,点击“添加音符”,即将选定的音加在最后。点击“删除”,可以删除上一个添加的音符;点击“清空”,会清除已经编写的所有音符。

值得一提的是,如果使用fmt.wav进行提取,由于原本的音调都较低,高音只能用最邻近的源音调的级数代替,因此音越高,失真越严重。在《东方红》中,低音听上去很像吉他,而高音听上去有所差别。

同样,可以用其他音乐进行分析,合成较为全面的音调。这样合成的各个音调都有相应模板,比较逼真。

iOS 音乐播放器 毕业设计

1引言 1.1选题背景 随着智能手机的大众化,越来越多的人应用智能手机。相对的对手机软件的需求也就越来越多。当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高[1]。手机的一个重要的功能就是听音乐,一款好的手机音乐播放器可以更好的体现智能手机的强大。目前中国音乐播放器行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:酷我音乐、酷狗音乐、百度音乐、QQ音乐等等这些大家所熟知的音乐播放器已经在苹果软件中占据了一定的地位。智能手机的应用使现代人的生活更加的方便。 伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。而对于开发苹果应用的语言——Object-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象[2]。对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。本人根据当前的形式,决定引用这种这种技术来开发手机应用。 1.2设计目的及意义 听音乐已经成为当今社会,人们必不可少的一项娱乐活动。根据调查所得信息,本人发现最近智能手机用户对较大的音乐播放器应用的喜爱度明显下滑,而相对的那些小巧的音乐播放器反而被越来越多的用户下载使用。苹果系统的软件具有的特点就是美观、简洁、易操作。根据这些信息,设计一款小巧的基于iOS 的音乐播放器会很容易得到用户的青睐。同时本人从去年开始接触iOS,在学习了几个月后,对iOS开发有了一些理解,所以对于这次毕业设计,我就选择了基于iOS系统开发一款产品。希望通过这次毕业设计来进一步巩固自己的iOS开发水平。使自己在以后的社会竞争中更加具有优势。 1.3设计思想和目标 设计思想:自己的这款音乐播放器设计的过程是按照一般的应用开发流程进行的。自己首先调查了当今社会,人们对音乐播放器的需求,从中得出现阶段手机用户需要的是小巧、方便的音乐播放器。从而决定自己开发一款小巧的音乐播放器。在有了用户的需求后,本人开始开发属于自己的音乐播放器。在真正设计音乐播放器的过程中,本人先决定了音乐播放器的整体框架结构,应用的图片出

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

基于Android的手机音乐播放器的开题报告

题 基于Android的手机音乐播放器的设计与实现 目 (字体要求为小4号宋体,20磅行距,参考文献按照科技论文规范格式书写) 1.课题研究立项依据(所选课题的来源、科学意义、目的,国内外研究现状) 在最近几年里,移动通信和互联网成为当今世界发展最快、市场潜力最大、前景最诱人的两大业务。它们的增长速度都是任何预测家未曾预料到的。迄今,全球移动用户已超过15亿,互联网用户也已逾7亿。中国移动通信用户总数超过3.6亿,互联网用户总数则超过1亿。这一历史上从来没有过的高速增长现象反映了随着时代与技术的进步,人类对移动性和信息的需求急剧上升。越来越多的人希望在移动的过程中高速地接入互联网,获取急需的信息,完成想做的事情。所以,移动互联网的出现是历史的必然。 而Android是移动互联下诞生的产物。Android:是Google于2007年11月推出的一款开放式源代码的手机操作系统,它的出现打破了传统的封闭式手机操作系统,任何人都可以根据自己的喜好来修改自己手机的操作系统,并且可以将操作系统的功能进行修改。这也是Android最为吸引人的地方。 现今社会人们生活压力越来越大,所以人们更注重精神的需求。人们需要放松,需要释放,需要发泄,而音乐则是调节人们心情的一大神器。现今流行的音乐播放器主要有Xmms,RealPlayer,Xmovie,QuickTime,Mplayer等。Xmms是X—Window系统下最流行的多媒体播发器之一,大多数Linux版本都捆绑了该产品最为Linux下标配音频播放器,Xmmxs可以播放MP3、MOD、Wav等多媒体文件,而且只要提供相应的插件,它还可以支持更多的多媒体类型;Xmovie它是最早作为电视节目的播放软件,播放界面非常简单,集合没有其他多余的控制功能;RealPlayer在地宽带下支持音频、视频多媒体的低损失传输,同时具有优秀的流媒体在线播放功能;QuickTime是苹果公司开发的流式音视频解决方案,也是出现较早的流媒体文件格式之一。MPlayer是Linux上的电影播放器,功能十分强大,能够播放众多格式的文件。由此可以看出:目前,媒体播放器主要趋向以下几个方向:首先,支持多样格式化。其次,可扩展姓。如今播放器的功能越来越强大,如何使在现有的基础上使功能更全面,也是人们接受的一个原因。本文的音乐播放器便是基于Google Android手机平台的播放器应用软件。 本文主要是对Android系统上的一款音乐播放器应用程序的设计与实现进行讨论。本论文正是采用Android技术,利用Java语言和Eclipse编程工具对音乐播放器进行设计与编码。

音乐播放器毕业设计

摘要 在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于Java Applet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和 Applet的工作原理,最后说明系统需要实现的功能。 音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。 本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。 关键词: JAVA;Eclipse;模块化; Applet;

Abstract In the information,the rapid development of technology today,the multimedia technology is becoming more and more attention.This paper makes comparison of the detail to the current use of more music player.By reading a plurality ofliterature,analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player.This paper mainly introduces the design of a Java based Applet to achieve music player.And the key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of Java technology and Applet,finally indicated that the system needs to realize the function. The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the au thor's life experiences and feelings. A good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation. The player is using java language and eclipse editing tools. Giving a detailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. The music player set to play, pause, stop, fast forward, rewind, a nd the next one, on a volume adjustment functions with one good performance. Th e player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the dev elopment process is Waterfall model. The first phase is the project of comprehensi ve and careful needs analysis, accurately making the project schedule and clearin g each stage of the task. The second phase of the project is sub-module coding. T he third stage, the project testing and system integration testing. key words:JAVA ;Eclipse;Modularization; Applet;

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);

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*; public class MusicPlayer implements ActionListener, Serializable,ControllerListener { private static final long serialVersionUID = 1L; private JFrame frame = null; private JPanel controlPanel = null; private JButton btnPlay = null; private JButton btnPre = null; private JButton btnNext = null; private JScrollPane listPane = null; private JList list = null; private DefaultListModel listModel = null; private JMenuBar menubar = null; private JMenu menuFile = null, menuAbout = null, menuMode = null; private JMenuItem itemOpen, itemOpens, itemExit, itemAbout; private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom; private ListItem currentItem = null; private static Player player = null; private boolean isPause = false; private int mode; private int currentIndex; private ImageIcon iconPlay = new ImageIcon("d:\\"); private ImageIcon iconPre = new ImageIcon("d:\\"); private ImageIcon iconNext = new ImageIcon("d:\\"); private ImageIcon iconPause = new ImageIcon("d:\\"); public static void main(String[] args) { new MusicPlayer(); } public MusicPlayer() { init(); } public void init() { frame = new JFrame(); ("音乐播放器"); (400, 300); (false); (null); ; menubar = new JMenuBar(); menuFile = new JMenu("文件");

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验 姓名: 班级: 学号: 日期:

1.2.1 简单的合成音乐 (1) 请根据《东方红》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB 中生成幅度为1 、抽样频率为8kHz 的正弦信号表示这些乐音。请用sound 函数播放每个乐音,听一听音调是否正确。最后用这一系列乐音信号拼出《东方红》片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何 由“十二平均律”计算得到各个乐音的频率: “5”——“C”: “6”——“D”: “1”——“F”: “2”——“G”:392Hz “6.”频率是“6”的一半: 代码:() f=8000; T=1/f; t8=0:T:1*; t4=0:T:2*; t2=0:T:4*; t1=0:T:8*; part1=sin(2*pi**t4); part2=sin(2*pi**t8); part3=sin(2*pi**t8); part4=sin(2*pi**t2); part5=sin(2*pi**t4); part6=sin(2*pi**t8); part7=sin(2*pi**t8); part8=sin(2*pi**t2); total=[part1,part2,part3,part4,part5,part6,part7,part8]; sound(total); 试听发现,合成后的音乐基本保持了《东方红》的音调,但声音比较沉闷,相邻乐音之间有比较明显的“啪”的杂音。 (2) 你一定注意到(1) 的乐曲中相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频分量。这种噪声严重影响合成音乐的质量,丧失真实感。为了消除它,我们可以用图所示包络修正每个乐音,以保证在乐音的邻接处信号幅度为零。此外建议用指数衰减的包络来表示。 首先尝试用折线包络,编写函数生成所需折线: function envelope = envelope_line(t) envelope(1:floor(t/8)) = linspace(0,1,floor(t/8)); envelope(floor(t/8)+1:floor(t/4)) = linspace(1,,floor(t/4)-floor(t/8))); envelope(floor(t/4)+1:floor(3*t/4)) = linspace,,floor(t*3/4)-floor(t/4)); envelope(floor(3*t/4)+1:t) = linspace,0,floor(t)-floor(3*t/4)); 对中的部分代码进行修改,调用envelope_line实现折线包络:() part1=sin(2*pi**t4).*envelope_line(t4);

电子音乐发生器报告-单片机设计实验报告

单片机设计实验报告 题目:电子音乐发生器 班级: 班内序号: 实验组号: 学生姓名: 指导教师:

电子音乐发生器

实验摘要 此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。 A b s t r a c t In this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and other functions to the presentation. In the current lot of simple music playback devices (such as greeting cards, gift of simple musical elements), such a simple circuit and rom programming principles can all be generic, and the circuit lap, the layout is simple, very suitable circuit schematic learn assembly language zero-based training program and a simple gift core part of the production reference. Throughout the system, the microcontroller uses Microchip's PIC16F877, software design involves PORTB \ PORTC \ PORTD \ PORTE used as a normal digital I / O pin functions. The experiment with the microcontroller PORTB \ D receives commands from the keyboard input information, thereby determining the LCD screen display and speakers to play the content, and then through PORTC \ D \ E output sound or subtitle information. 关键字 单片机——microcontroller 芯片——CMOS chip lcd液晶显示屏——LCD screen 输入输出端口——I / O pin 一.实验论证与比较 电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部

Matlab音乐合成实验报告

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

本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB 进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB 基本使用的目标。 第一部分 简单的合成音乐 1.1 合成《东方红》 根据《东方红》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB 中生成幅度为1,抽样频率为8kHz 的正弦信号表示这些乐音,用sound 播放合成的音乐 由图可知《东方红》的曲调定为F ,即1=F ,对应的频率为349.23Hz ,据此可以计算出其他乐音的频率,例如5对应的频率为 7/125349.232523.25f =?=,一次类推计算出第一小节各乐音对应的频率为: 乐音 5 5 6 2 1 1 6 2 在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍, 一拍的时间是0.5s ,因此各乐音的持续时间为: 乐音 5 5 6 2 1 1 6 2 而在MATLAB 中表示乐音所用的抽样频率为fs=8000Hz ,也就是所1s 钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound 函数播放即可。 根据以上分析在MATLAB 中编写如下程序: sound_1_1.m

电子音乐发生器报告单片机设计实验报告

单片机设计实验报告 2013年小学期单片机设计实验报告 题目:电子音乐发生器 班级: 班内序号: 实验组号: 学生姓名: 指导教师:

单片机设计实验报告期中检查 教师评语 指导教师签字: 年月日

单片机设计实验报告 电子音乐发生器 ――2011211****班实验摘要 此次本组制作的基于pic单片机的电子音乐发生器是具有液晶显示屏提示的音乐简单演奏、播放等功能的演示作品。在目前很多简单音乐播放器件(如贺卡、礼品中的简单音乐单元)中,这样的简单电路和rom编程原理都是可以通用的,而且电路搭接、布局简单,十分适合电路原理学习、汇编语言编程零基础训练以及简单礼品核心部分制作参考。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定lcd液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。 A b s t r a c t In this experiment,our group made this pic microcontroller based electronic music generator is a simple LCD prompts music playing, playback and other functions to the presentation. In the current lot of simple music playback devices (such as greeting cards, gift of simple musical elements), such a simple circuit and rom programming principles can all be generic, and the circuit lap, the layout is simple, very suitable circuit schematic learn assembly language zero-based training program and a simple gift core part of the production reference. Throughout the system, the microcontroller uses Microchip's PIC16F877, software design involves PORTB \ PORTC \ PORTD \ PORTE used as a normal digital I / O pin functions. The experiment with the microcontroller PORTB \ D receives commands from the keyboard input information, thereby determining the LCD screen display and speakers to play the content, and then through PORTC \ D \ E output sound or subtitle information. 关键字 单片机——microcontroller 芯片——CMOS chip lcd液晶显示屏——LCD screen 输入输出端口——I / O pin

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/ 学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development

音乐播放器实验报告

一、实验项目名称 基于单片机的音乐播放器 二、实验目的 Ⅰ设计方案 设计一个基于AT89C51系列单片机的音乐盒,利用按键控制切换演奏出不同的音乐。蜂鸣器发出某个音调,与之对应的LED灯亮起。使用两个按键,一个用来切换歌曲,另一个切换LED的变化花样。Ⅱ研究内容 ①电路有两种模式:演奏音乐模式和花样灯模式 A 演奏音乐模式:演奏完整的一首歌曲,LED随着音乐变化; B 花样灯模式:LED变化出各种花样,蜂鸣器随着发出“滴滴”声; ②按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲; 按下按键2进入花样灯模式,再按切换LED花样,共三种花样。Ⅲ总体方案图 a组成框图: 音乐盒的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如下所示:

b功能结构图: Key1负责切换播放歌曲,共两首。分别是祝你生日快乐和寂寞沙洲冷;Key2负责切换LED显示花样,共3种:顺序显示,由两边向中间移动然后向两边移动,循环显示。 三、实验器材 Windows7 操作系统Proteus仿真软件 keil4软件AT89C51单片机 共阴极数码管开关电容晶振 电阻发光二极管蜂鸣器 四、实验要求 (1)以单片机为主控处理器,用蜂鸣器播放歌曲;

(2)系统要求有选择上一首、下一曲功能; (3)两个按键,可在播放和显示花样中进行切换; (4)用一个键控制花样类型的显示功能; (5)用LED灯闪烁“伴奏”。 五、实训基本原理(附原理图、源程序清单) 1 硬件设计 ①LED显示电路设计与原理 LED显示电路是由8个LED发光二极管组成,连接方式是共阳极,LED接到单片机的P1口,若是低电平,可使LED亮。发光二极管的亮灭是由内部程序控制的,8个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮灭。 ②硬件电路图及其功能介绍 1)电路中用P3.2、P3.3 控制键; 2)P1.0~P1.7控制LED; 3)P2.3控制蜂鸣器; 4)电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

Matlab音乐合成实验报告

课程设计《音乐合成》实验报告 专业:测控技术与仪器 班级:测控11-2 班 姓名:谷晓峰 学号: 11034010219 指导教师:贺婷 广东石油化工学院计算机与电子信息学院

信号与系统课程设计 -------利用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.25s y(0.25

音响放大器的实验报告

音响放大器的实验报告 篇一:实验5 音响放大器报告 东南大学电工电子实验中心 实验报告 课程名称:电子线路实践 第5次实验 实验名称:院(系):专业: 姓名:学号: 实验室:103实验组别: \同组人员: \ 实验时间:XX年6月3日评定成绩:审阅教师: 实验五音响放大器设计 【实验内容】 设计一个音响放大器,性能指标要求为: 功能要求话筒扩音、音量控制、混音功能、音调可调(选作) 额定功率≥0.5W(失真度THD≤10%) 负载阻抗10Ω频率响应fL≤50Hz fH≥20kHz 输入阻抗≥20kΩ话音输入灵敏度≤5mV 音调控制特性(扩展) 1kHz处增益为0dB,125Hz和8kHz 处有±12dB的调节范围 1. 基本要求 功能要求话筒扩音、音量控制、混音功能额定功率≥0.5W(失真度THD≤10%) 负载阻抗10Ω频率响应fL≤

50Hz fH≥20kHz 输入阻抗≥20kΩ话音输入灵敏度≤5mV 2. 提高要求 音调控制特性 1kHz处增益为0dB,125Hz和8kHz处有±12dB的调节范围。 3. 发挥部分 可自行设计实现一些附加功能【实验目的】 1. 了解实验过程:学习、设计、实现、分析、总结。 2. 系统、综合地应用已学到的模拟电路、数字电路的知识,在单元电路设计的基础上,利用multisim软件工具设计出具有一定工程意义和实用价值的电子电路。 3. 通过设计、调试等环节,增强独立分析与解决问题的能力。【报告要求】 (1) 根据实验内容、技术指标及实验室现有条件,自选方案设计出原理图,分析工作原理,计算元件参数。 1)音响放大器电路包含4个模块:话音放大器、混合前置放大器、音调控制器及功率 放大器。电路设计框图如下: 2)各级电路增益分配 3)话音放大器 由于话筒的输出信号一般只有5mV左右,而输出阻抗达到20k。所以话音放大器的作用是不失真地放大声音信号(最

简单音乐播放器数电实验

数字电路与逻辑设计综合设计实验报告 实验名称:简易音乐播放器 姓名:

班级:班 班内序号:27 一、设计任务要求 设计制作一个简易乐曲播放器。 1)播放器内预存3首乐曲; 2)播放模式:顺序播放、随机播放,并用数码管或LED显示当前播放模式; 3)顺序播放:按内部给定的顺序依次播放3首乐曲; 4)随机播放:随机产生一个顺序播放3首乐曲; 5)用数码管显示当前播放乐曲的顺序号; 6)设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放; 7)设置Next和Previous键,按Next键可以听下一首,按Previous键回到本首开始; 8)选做:用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次播放乐曲; 9)选做:自拟其它功能。

二、系统设计 1)设计思路 首先音乐有音高和节拍两个因素。音高可以通过对时钟信号不同的分频得到不同频率的信号进而发出不同的音,节拍可以定义一个音符计数器,计数器的每一个值对应一个音高。对播放的控制包括播放/暂停、复位、上一首、下一首、本首重放、顺序播放/随机播放,用一个状态机,共播放和暂停两个状态,另外歌曲的切换以及暂停都是利用音符计数器赋不同的值或保持不变来实现。音高的显示是通过不同的音符对应不同的点阵row和col的值来实现的。歌曲号是通过音符计数器的值来得出并送到数码管显示的。播放、暂停、顺序、随机这些的显示是通过对状态和模式变量的判别进而送到LED显示的。 2)总体框图 50M

3)分块设计 共分为9个模块。Div1,div2,div3都是用来分频的,分别是将50mhz变为1mhz,将1mhz变为4hz,将1mhz变为2hz。Rand模块用来产生随机数,用于随机播放模式。Keycontrol是核心模块,用来实现顺序播放、随机播放、播放/暂停、上一首、下一首、本首重放、复位、显示顺序或随机播放状态、显示播放/暂停态。Melody模块是将音符计数器的每一个值与一个音高相对应,即记录曲谱。Index模块是用melody模块传来的音高信号通过查表得到它所对应的音高的分频数,然后将这个分频数送给speaker模块,以发出不同的音,另外对应不同的音它还对点阵进行不同的输出,进而显示出音高。Speaker模块接收index模块送来的分频数,利用分频数对时钟信号进行分频,进而发出不同的音,另外它还接收keycontrol模块送来的暂停态的标志,以保证在暂停态的时候不发出声音。Shownumber模块通过对音符计数器值的判断确定现在播放的是哪首歌,进而输出不同的歌曲号。

基于Android系统的音乐播放器的设计与实现毕业论文(2)

基于Android系统的音乐播放器的设计与实现 摘要:进入21世纪的数字时代,网络发展十分的迅猛,在现今工作压力大的社会下,娱乐随之兴起,各种各样的网络游戏、娱乐软件像雨后春笋一样以不断更新的方式进入我们的生活,丰富了我们的业余时间。这些游戏能在不同的操作平台上进行安装,且其安装、操作简单适合每一位玩家,让所有的玩家都能畅玩一番。 然而在所有的操作系统中,Android系统无疑不是其首选的。在Android平台上发布的酷狗、酷我、百度影音等等播放器,以其简单快捷的操作,好看的画面,舒适的结构,强大的功能所折服我们。本文通过Android技术的研究,实现了自主设计的一款音乐播放器,完成了本地音乐的加载、最近音乐播放的加载、正在播放页面的实现、上一曲、下一曲、暂停、播放、继续播放、进度条、时间显示等等这些功能。本款音乐播放器采用TabHost进行总框架的布局,其他部分则采用相应的布局方式,使这款播放器看上去丰富,形象点。同时这款播放器操作简单、实用、结合了Android课中所学到的很多知识,即对知识的一个总结。本音乐播放器的设计遵循企业软件的工程思想,开始模拟了客户来公司洽谈某项业务,完成需求分析、界面设计、编写代码、进一步社交、产品的维护、用户需求。这一系列的流程来一步步的制作这款播放器。 关键字:Android、播放器、客户、操作、流程 Abstract:Digital era in twenty-first Century, network development is very rapid, in today's stressful society, along with the rise of various kinds of entertainment, network game,entertainment software like bamboo shoots after a spring rain as to continuously update the way into our lives,enrich

相关文档
相关文档 最新文档