基于乐谱输入的弦乐播放系统 的设计与实现-毕业论文_第1页
基于乐谱输入的弦乐播放系统 的设计与实现-毕业论文_第2页
基于乐谱输入的弦乐播放系统 的设计与实现-毕业论文_第3页
基于乐谱输入的弦乐播放系统 的设计与实现-毕业论文_第4页
基于乐谱输入的弦乐播放系统 的设计与实现-毕业论文_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(科研训练、毕业设计)题 目:基于乐谱输入的弦乐播放系统的设计与实现姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号: 指导教师: 职称: 年 月42摘 要在计算机高速发展的今天, 计算机多媒体应用领域形成了多方向、全面化、专业化的发展需求。根据目前在数字化音乐教学过程中需要用到许多曲谱编辑软件和作曲软件,许多音乐教育工作者对如何开发自己的数字音乐工具很感兴趣,我们从这一领域入手,设计和完善了基于乐谱输入的弦乐播放系统,以供音乐教育工作者和其他音乐爱好者发挥、扩展。本系统基于Visual C+环境开发,我们对其中技术原理、关键问题给出了具体的解决方法,实现了一个基本的可视化演奏工具。包括音符输入模块、播放模块、实时显示输出乐谱功能、乐谱保存和导入的读写功能。并在此基础上经过相关算法和开发工具的研究,完善了本系统。本系统界面友好,实用性强,具有方便修改、操作简单等优点。可以很好地提高乐谱编写的效率,实现无纸化编写乐谱。为广大音乐创作者与音乐爱好者提供便利,对一般音乐教育工作者也具有很好的启发性。关键词:多媒体;数字化音乐;乐谱算法;实时输出;无纸化乐谱 Abstract Nowadays, with the rapid development of computers, the field of computer multimedia application has met the demands of multi-directions, comprehensiveness and specialization. Lots of edited and composition softwares are used in the process of digital music teaching. How to develop the digital musical tools stirs interests of music teachers. We try our best to do some researching work on those fields in order to provide music educators and other amateurs with adequate space to reach their potential.According to the Visual C+ environment development performance tool, we gain the solutions to the technical principles and key questions. The stringed instrument performance software based on score is a kind of Windows application procedure software compiled. We develop and design a basic music edition tool, and have realized the digital music synthesis, the broadcast, the reading and writing. Therefore we enable the visual performance tool to come true which evokes music educators well.The software contact surface is friendly, usable, convenient to revise, easy to operate and other advantages,and improve the efficiency of music compilation which facilitates many music composers and lovers. Key word:Multimedia;Digitized;Music Algorithm;Real-time output;Paperless music 目 录第1章引言11.1音乐与计算机的结合21.1.1音乐数字化21.1.2多媒体21.2音乐乐谱播放器概述31.2.1乐谱播放器31.2.2多媒体编辑软件41.3设计环境和研究背景51.3.1乐理基础知识51.3.2数字音频71.4播放系统相关工作8第2章 弦乐播放系统总体设计92.1需求分析92.1.1功能需求92.1.2系统和相关资源需求102.2概要设计102.2.1概要设计阶段的主要任务102.2.2概要设计过程102.2.3概要设计原则102.3系统功能分析112.3.1整体软件目标112.3.2模块化设计11第3章 弦乐播放系统详细设计133.1弦乐播放系统结构设计133.1.1模块间关系133.1.2内部结构框架143.1.3基本功能的实现方法153.2弦乐演奏系统界面设计163.2.1MFC应用程序框架163.2.2定义对话框173.2.3对话框的组成183.2.4添加定位控件193.3播放功能的设计与实现203.3.1PlaySound函数203.3.2参数说明213.3.3播放实现223.4实时输出功能的设计与实现243.5对话框读写文本文件253.5.1载入文件253.5.2保存文件26第4章 系统运行结果274.1程序连接274.2运行结果27第5章 总结315.1结束语315.2领域未来的相关发展方向和扩展前景31致谢33参考文献34ContentsChapter 1 Introduction11.1.Music and Computers union21.1.1.Music Digitization21.1.2.Multimedia 21.2.Introduction to Music Performance 31.2.1.Music Player31.2.2.Multimedia Edition Softwares41.3. Design Environment and Background Research51.3.1.Basic Musical Theory51.3.2.Digital Music71.4.System Related Works8Chapter 2 System Designs92.1.Software Requirement92.1.1.Function Requirement92.1.2.System and Resource Requirement102.2.Preliminary Designs102.2.1.Primary Mission102.2.2.Design Process102.2.3.Design Principle102.3.System Function Analysis112.3.1.Orientation of the Software112.3.2.Modules Division11Chapter 3 Detailed Design133.1.Structural Design133.1.1.The Module Relates133.1.2.Internal Frame143.1.3.Realizes Method153.2.Contact Surface Design163.2.1.MFC Application Procedure Frame163.2.2.Dialog Definition173.2.3.Dialog Composition183.2.4.Controls Increase193.3.The Broadcast Functions Design and Realization203.3.1.PlaySound203.3.2.Parameter Explanation213.3.3.Broadcast Realization223.4.Design and Realization of OutPut243.5.Dialog Read-Write253.5.1.Document Load253.5.2.Document Preservation26Chapter 4 Result274.1.1.Link Library274.1.2.Movement Result27Chapter 5 Summary315.1. The Ending315.2. Development and Future Aspect31Acknowledgement33References34厦门大学本科生毕业论文第1章 引言科技发展日新月异,对音乐领域产生了很大的影响。随着计算机多媒体应用领域的多方向、全面化、专业化的发展需求,本文从对艺术、多媒体、计算机的关注入手,引出对于一款应用概念独特、技术层面值得研究、辅助于多媒体创作的微型软件产品的思索和探讨,以应用于相关领域。 在由应试教育向素质教育转轨并不断发展的今天,多媒体电脑音乐走进课堂已成为时代发展和音乐教育的需要。一台集成打谱系统5、音乐系统的多媒体电脑即可代替传统的“课本+黑板+钢琴”音乐教学模式。通常,音乐教师在黑板上写出的谱例在学生心中难以形成音响的听觉联想,而钢琴上弹出的声音转瞬即逝。借助乐谱播放系统,教师则可在课堂上即时地将课本上的谱例生成MIDI文件3,利用直观的乐谱显示功能以及实时性、动态性的特点,将谱例与实践音响同步展现在学生面前,并可迅速重新演奏或演奏乐谱中的任一片断,使学生的听觉与视觉形象融为一体。 随着数字图书馆的蓬勃发展,数字音乐图书馆2也悄然兴起。如同音乐文献资源建设是传统音乐图书馆的基础性业务工作一样,获取大量的数字化音乐内容是建设数字化音乐图书馆的核心内容。在建设过程中,必然会面临的一个突出问题就是已有音乐资源的数字化问题。传统音乐资源最主要的对象是印刷型纸介质乐谱,快速准确地将传统图书馆保存的纸质乐谱资源数字化便成为建设数字音乐图书馆的当务之急。本人受到相关算法实现的启发,寻求以不同于当前市场上已有的相关软件产品的独特度理解和阐释该问题。致力于从 “基于乐谱输入的播放器”这一类多媒体编辑软件作为启发,多角度各方面地研究这一问题。1.1 音乐与计算机的结合1.1.1 音乐数字化随着近年来电脑音乐软件的不断发展,硬件系统的不断更新,音乐数字化词已经成为了从事与音乐相关的工作者们谈论最多的话题,音乐数字化也已成为了时代的潮流。计算机音乐凭借其强大的数字优势,逐渐成为了音乐创作的主要工具,其价格相对低廉的软硬件系统的开发,也为音乐爱好者广泛参与音乐制作提供了条件。此外,在专业音乐教育领域内,计算机音乐作为辅助教学手段,所起到的作用也越来越显著。目前,专业音乐院校大都已经在电脑音乐软硬件设备方面作了大规模的投入,并不断开设相关课程。但是如何能在音乐教学中充分利用计算机音乐系统的优势、制作适合音乐教学应用的软硬件系统,仍是正在探索的课题。计算机音乐是音乐完全被计算机创造出来的一种普遍种类。 由计算机供给,就如一个乐器的功能或是一个作曲家,并且很明确干脆地修改音乐。用计算机音乐制作系统创作,以装有音乐软件的多媒体电脑为控制中心、利用MIDI技术(MusicalInstrumentDigitalInterface “乐器数字化接口”)5的数字音频系统,它集作曲家、演奏家、指挥家、录音师为一身, 可以一个人独自完成一部作品的整个创作过程。1.1.2 多媒体多媒体技术改变了计算机的使用领域,使计算机由办公室、实验室中的专用品变成了信息社会的普通工具,广泛应用于学校教育、公共信息咨询、商业广告,甚至家庭生活与娱乐等领域。 多媒体技术有以下几个主要特点: 1.集成性 能够对信息进行多通道统一获取、存储、组织与合成。 2.控制性 多媒体技术是以计算机为中心,综合处理和控制多媒体信息,并按人的要求以多种媒体形式表现出来,同时作用于人的多种感官。 3.交互性 交互性是多媒体应用有别于传统信息交流媒体的主要特点之一。传统信息交流媒体只能单向地、被动地传播信息,而多媒体技术则可以实现人对信息的主动选择和控制。4.非线性 多媒体技术的非线性特点将改变人们传统循序性的读写模式。以往人们读写方式大都采用章、节、页的框架,循序渐进地获取知识,而多媒体技术将借助超文本链接(Hyper Text Link)的方法,把内容以一种更灵活、更具变化的方式呈现给读者。 5.实时性 当用户给出操作命令时,相应的多媒体信息都能够得到实时控制。 6.信息使用的方便性 用户可以按照自己的需要、兴趣、任务要求、偏爱和认知特点来使用信息,任取图、文、声等信息表现形式。 7.信息结构的动态性 “多媒体是一部永远读不完的书”,用户可以按照自己的目的和认知特征重新组织信息,增加、删除或修改节点,重新建立链接。1.2 音乐乐谱播放器概述1.2.1 乐谱播放器乐谱播放器即为,对于输入的琴谱,采用合成的方式,建立乐器演奏仿真播放系统。基于音乐乐谱输入的播放器,也被称为电子乐谱,已经成为多媒体计算机应用领域的一个成熟的开发方向。它们基本都满足了乐谱输入、音谱对照、乐音播放、多媒体声音文件的编辑和存储等功能。在多媒体计算机体系结构下涉及多媒体制作平台工具、多媒体创作软件以及应用程序平台等层次,综合的包括了文本文件输入,多媒体模块调用、音频文件编码转换、多媒体文件播放存储等具体技术理论。即使不太熟悉音乐创作相关理论,也可以通过简单易懂的软件产品操作,进行简单的多媒体编辑和艺术创作。音乐乐谱播放器面向音乐工作者和音乐教学,任意以简谱、简线对照谱的形式分发和传播,节约宝贵的创作时间。对于音乐教学,能提高学生的音乐兴趣。另外,现在市场上已出现的打谱软件也是乐谱播放器的一种。打谱软件是专为编辑并打印乐谱、出版而开发的。乐谱编辑对于我国音乐工作者来说,要包括两个方面:五线谱与简谱。常见的五线谱编辑软件有:Encore、Finale、Sibelius等6。它们不断预置了大量的音乐专业书面符号,而且还具有强大的图文混排功能,甚至自带音序器。用它们可以制出非常专业的声乐谱、器乐谱以及管弦乐总谱;简谱软件,常见的有TT作曲家以及贝音等。这类软件基本都是基于人们日常使用十分熟悉的Windows应用程序窗口菜单界面。Windows式的标准工具栏布局可以让人很容易上手操作。比较完美的实现了标准五线谱乐谱的显示,同时支持其他包括古典音乐乐器,和声,打击乐器,电子乐等在内的各种对应乐谱模版,涵盖了几乎整个音乐创作领域所需要的所有乐谱类别。1.2.2 多媒体编辑软件多媒体编辑软件是一种高级的软件程序或命令的集合,这些命令可以支持各式各样的硬件装置与文件格式,将图形、文字、音频、影片等视听对象组合在一起,进一步提供各种对象显示的顺序及一个导向结构。这种导向结构通常是用某种特殊的电脑语言来构成以简化程序设计的过程。编辑软件的目的便是提供给设计者一个自动产生电脑码的综合环境,使设计者可以将不同的内容与各种功能结合在一起,形成一个结构完整的节目,因此多媒体编辑软件通常应包括建立,编辑,输入和输出各种形式的数据,以及将各种数据组合成为一个连续性系列的基本工作环境。一套多媒体编辑软件,所涉及的对象种类繁多,且其格式与显示的方法多不相同。要将这些对象组合在一起实非易事,故此多媒体编辑环境通常都很复杂,为了使原本复杂的多媒体工作环境变得易学,易懂,且易于操作,多媒体编辑软件提供以下几种工具来建立一个多功能的工作:l 图标或标示的视觉程序这类工具可以让设计者用鼠标按下某一个图画或声音的图标拉到制作流程上的某一位置,以便播出。例如可以让设计者按下某一图标并拉到工作台上,形成制作节目的一部分。l 可以象写剧本一样的程序语言这种语言可让设计者写出控制各种对象显示的流程,分支,及导向路径等。l 与传统语言合并的程序编辑软件系统可让设计者用传统语言如Basic Assembly或C来写程序的某些部份,来弥补该多媒体编辑软件程序上的不足。通过相关技术命令的调用融入其他语言程序及媒体的共同界面程序。l 文件开发流通的工具这个功能十分重要,它关系着对象的流通或交换。如扫描图或文本文件的输入输出。文件格式的规格,以及不同软件甚至于不同机器间便利的数据交流方法。其中尤以能拥有各种不同形式的文件规格最为重要,这些文件格式如PICS,PICT,BMP等图形文件,WAV,MID等声音文件及AVI图像文件等等。l 用户层次的切换用户可能是一套节目的阅读者,也可能是节目的作者。在读者与作者之间可能还有只要填入文本数据的用户,也有必须改变图形或声音等数据的用户,故多媒体编辑软件应让用户决定其层次或身份。l 以程序语言为基础的多媒体编辑软件。例如Microsoft公司推出的VisualBasic和Visual C+等在PCWindows环境下开发多媒体产品应用软件或产生、编辑各种新旧资源。综合了Windows的用户图形环境和高级程序语言简单、好用的特点,是一种面向对象的软件开发工具,运动建立在对象的基础之上。1.3 设计环境和研究背景1.3.1 乐理基础知识l 简谱简谱是一种比较简单易学的音乐记谱法。它的最大好处是仅用7个阿拉伯数字,就能将万千变化的音乐曲子记录并表示出来,使人很快记住;同时涉及其他的音乐元素也基本可以正确显示。简谱有字母简谱以及数字简谱两种。数字简谱以可动唱名法为基础,用1、2、3、4、5、6、7 代表音阶中的7个基本音级,读音为do、re、mi、fa、sol、la、si,休止符以O表示。音符 音符用数字符号1 2 3 4 5 6 7表示不同的音高。在钢琴键盘上可以很直观地理解音符和音高。广义上说音乐里总共就有7个音符。节拍 音乐中的音符除了有高低之分外,当然还要表示长短之分。拍子是表示音符长短的重要概念。 表示音乐的长短需要有一个相对固定的时间概念。简谱里将音符分为全音符、二分音符、四分音符、十六分音符、三十二分音符等。在这几个音符里面最重要的是四分音符,它是一个基本参照度量长度,即四分音符为一拍。这里一拍的概念是一个相对时间度量单位。一拍的长度没有限制,可以是1秒也可以是2秒或半秒。假如一拍是一秒的长度,那么二拍就是两秒;一拍定为半秒的话,两拍就是一秒的长度。 附点音符 附点就是记在音符右边的小圆点,表示增加前面音符时值的一半, 带附点的音符叫附点音符。如图1.1中所示即是简谱基本格式。图1.1 简谱的基本格式 音符的输入: 用一条横线“”在四分音符的右面或下面来标注,以此来定义该音符的长短。 对于四分(之一)音符,1(多)、2(来)、3(米)可以用键盘上的数字键直接输入。对于二分音符或全音符,音符后的短横线可以用减号输入。对于八分音符,音符下的横线可以用下划线来解决。l 五线谱 (Musical Notation) 五线谱是目前世界上通用的记谱法。在5根等距离的平行横线上,标以不同时值的音符及其他记号来记载音乐。 五线谱的每根线以及线与线之间的空间,自下而上分别称为第1线、第2线、第3线、第4线、第5线和第1间、第2间、第3间、第4间。 图1.2是一个标准的钢琴五线谱表,红色的是与五线谱音符相对应的简谱音符。高音谱号和低音谱号各自有五条线,五线谱也因此得名。五线谱记谱方式的基本概念是:音符从低到高一目了然,每一个音符都在一个固定的位置上。 图1.2 五线谱标准音符表1.3.2 数字音频数字音频,一个用来表示声音强弱的数据序列,是由模拟声音经抽样、量化和编码后得到的。数字音频以音质优秀、传播无损耗、可进行多种编辑和转换而成为主流,并且应用于各个方面。数字音频的编码方式就是数字音频格式。使用的不同的数字音频设备,对应着不同的音频文件格式。常见的数字音频格式:1. WAV格式,是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持。WAV格式支持许多压缩算法,支持多种音频位数、采样频率和声道,采用44.1kHz的采样频率,16位量化位数,跟CD一样,对存储空间需求太大不便于交流和传播。WAV支持各种取样频率和样本精度的声音数据,并支持声音数据的压缩。WAV文件由许多同类型的文件构造块组成,其中最重要的是两个文件构造块是格式块(Format Chunk)和声音数据块(Sound Chunk),前者包含描述波形的重要参数,例如采样频率和采样精度等;后者则包含实际的波形声音数据。WAV文件的数据量可以用如下公式推算:WAV文件数据量(b/s)=采样频率(Hz)x量化位数(位)x声道数/82. MIDI是Musical Instrument Digital Interface的缩写,又称作乐器数字接口,是数字音乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、数字合成器及其它电子设备交换音乐信号的方式,规定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可以模拟多种乐器的声音。MIDI文件就是MIDI格式的文件,在 MIDI文件中存储的是一些指令。把这些指令发送给声卡,由声卡按照指令将声音合成出来。MIDI文件本身只是一堆数字信号,不包含任何声音信息,它记录的是在音乐的什么时间用什么音色,发多长的音等等,需要音源的支持发声,因此相同的MIDI文件在不同的音源设备上播放结果会完全不一样。MIDI文件体积相当小,所以很适合传播。3.WMA (Windows Media Audio) 是微软在互联网音频、视频领域的力作。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。1.4 播放系统相关工作本文就基于乐谱输入的弦乐播放系统的关键技术,分析了系统的需求,对系统有了大概的了解,在此基础上经过相关算法和开发工具的研究,实现和完善了此系统。根据软件工程开发的原理,对开发过程进行了详细的描述,从开始的总体设计,到详细设计及实现过程,论文的工作内容组织如下:第一章介绍了系统开发的背景、系统研究的现状、项目开发的意义,概述了乐谱输入播放系统的背景知识和研究方法。第二章介绍了播放系统的开发框架,对需求进行了详细的分析,了解开发使用的技术基础和原理,使开发更为明确,为系统的下一步开发奠定基础。第三章介绍了播放系统的详细设计,基于第二章的总体设计和需求,对各个部分的实现进行详细的分析,重点介绍了关键部分:声音播放输出功能的PlaySound算法。第四章介绍系统的运行结果,进行了结果展示,并对各个功能进行介绍。第五章对全文进行总结,介绍了系统的应用情况 ,并对下一步的研究工作进行了展望。2 第2章 弦乐播放系统总体设计2.1 需求分析2.1.1 功能需求软件定位: 微型应用软件涉及领域: 多媒体播放,曲谱创作,音乐教学,数字音乐图书馆软件规模: 开发人员1人,开发时间3个月,代码量1000行左右。软件功能概述:1.基于乐谱输入的弦乐播放软件,也可作为音乐创作的支持辅助工具。2.从界面的数字按键选择,直接明了的对应简谱中央音区音阶,进行乐音的播放。3.乐谱的文件保存和导入功能。4.乐谱的实时修改,清空删除,和输入换行功能。5.实现输入乐谱的实时输出显示。6.简捷明了的用户界面和提示说明。软件特点概述:1.绿色软件,无需安装直接运行可执行程序。实现功能封装。2.基于Windows窗口类的构建,界面熟悉、操作简单、易于上手,由八个按钮对应乐谱1、2、3、4、5、6、7、1 的音符,明了易懂。3.实现乐谱的文件导入和实时播放功能。软件用户定位:1.音乐启蒙教育,包括电脑和音乐基本原理的教学者。2.经常进行乐谱浏览、音乐资料查阅,富于灵感需要随时随地演示构思的音乐创作者。3.传统音乐资源最主要的对象是印刷型纸介质乐谱,用户可借助本软件,帮助节约纸质乐谱,建设音乐文献资源。 2.1.2 系统和相关资源需求运行系统 Windows系列相关操作系统。开发环境l 硬件 500MHz以上CPU、512M内存、160G硬盘。l 软件 Microsoft Visual C+6.0。针对开发环境和操作系统架构,有的计算机系统需要安装Microsoft Visual C+6.0 后才能正常运行该软件。其他资源 完整的一套乐谱标准八度音符音频文件作为素材库和基础播放元素。界面装饰等图片文件。2.2 概要设计2.2.1 概要设计阶段的主要任务1.审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,系统的进度计划,审定后进入设计。2.确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据模式,确定测试方法与策略。3.编写概要设计,测试计划,选用相关的软件工具来描述软件结构。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。2.2.2 概要设计过程概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。2.2.3 概要设计原则1.将软件划分成若干独立成分的依据。2.如何表示不同的成分内的功能细节和数据结构。3.如何统一衡量软件设计的技术质量。2.3 系统功能分析2.3.1 整体软件目标开发的弦乐播放系统所达到的功能如表2.1:表2.1 系统目标设计功能模块 实现的内容和功能输入模块 点击音符按钮,对于输入的琴谱音符,采用合成的方式,建立乐器演奏仿真播放系统。提供各种简谱上的音符,写谱时提供修改功能。实现乐谱的实时修改,输入清空和删除。输入换行功能,便于查看浏览乐谱。显示模块 基于实时乐谱输入,可进行实时输出,反复试听。人性化的用户界面,简单而良好的操作性,实用性强。乐谱的保存和导入功能,实现音乐资源保存和写谱的无纸化。帮助文档 完善的软件功能介绍说明文档。退出系统。系统扩展 良好的可扩展性,可针对多声部配合,乐谱打印功能,增加多种乐器功能,混音功能等方向进行进一步深入扩展。2.3.2 模块化设计根据以上分析,考虑将整个系统分解成如图2.1模块结构图,并且在系统的开发过程中,尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。 图2.1 系统功能模块结构图如图2.1所示,整个弦乐播放系统,主要分成四大模块。1.显示模块。实现用户的基本界面、显示八个基本的音符按钮、以及乐谱实时输出的显示。2.输入模块。主要完成音符、节拍和附点符号的选择输入。实现音乐的采样等功能。输入模块允许用户依据音乐理论的基本框架,进行具有一定次序顺序和实际意义的符号输入。输入模块还支持输入换行功能。输入清空,实现乐谱的修改。3.播放模块。同样是该软件系统的基本构成模块之一,能直观地接受到各种谱曲的音效以及反映作品的直接效果。播放模块负责根据所选择的具体音频文件类型,进行对应的音频文件播放。4.文件读取模块。将乐谱文件保存成文档,和乐谱文档的导入功能,可将写好的谱成功保存,即时导入,方便快捷。实现音乐资源保存和曲谱创作的无纸化。3 第3章 弦乐播放系统详细设计3.1 弦乐播放系统结构设计3.1.1 模块间关系1.系统具有如下几块主要工作区:输出浏览栏:基于简谱格式,可以动态地在上面显示对应谱符等。编辑栏.即乐谱输入按钮,可进行实时输出,反复试听,产生对应效果。对应符号和乐音存储库和对照表:这是系统重点,基于乐谱输出音符的基础。文档读取栏.将乐谱文件保存成文档,和乐谱文档的导入,读取。2.完善的音符相关符号,进行良好的声音表现3.当前程序作为主体框架,在统一的程序流程风格和接口基础上,可以良好地支持其他功能模块的扩展。4.建立功能介绍和使用说明文档。本章就基于乐谱输入的播放系统的结构要点进行阐述,从总体规划、细节实现两方面简要分析其包含的普适原理和特征。 图3.1系统流程图根据以上需求,画出如图3.1系统流程图。基于用户的行为模式,给出用户的基本操作流程。打开系统后,基于浏览界面的条件下,用户选择界面的八个基本音符和节奏按钮,进行曲子的创作,播放音效。用户可清空已输入的音符,重新进行创作。用户将已有的曲谱文件导入,进行乐谱的察看,并保存曲谱为文档文件。最后关闭系统。3.1.2 内部结构框架根据系统总体结构分析,目前用户对于基于乐谱输入的演奏系统的基础需求可以分为由界面显示功能、输入功能、文档读取功能、播放功能、保存功能等构成,其具体又可划分若干细节功能。其内部结构框架可以参照图3.2所示。底层简谱显示界面符号与发音对照表音符播放功能主工具栏输入功能输出功能音符输入乐谱保存节奏输入其他工具乐谱导入 图3.2系统内部结构框架如图3.2, 显示界面的设计包括用户操作界面和乐谱显示两个子模块设计。用户界面子模块用来提供用户与系统良好的人机交互界面。输入模块允许用户依据音乐理论的基本框架,进行具有一定次序顺序和实际意义的符号输入。主要完成音符、小节线、节拍和附点符号的选择输入。输入模块还支持乐谱导入功能。播放模块负责根据所选择的具体音频文件类型,进行对应的音频文件播放。一方面囊括了系统基础的音频素材库 ,以供对应乐谱乐音文件的使用调用,另一方面则是针对基于用户不同的输入产生即时的不同音效的音乐播放,以及整个音乐乐谱文件的连续播放。3.1.3 基本功能的实现方法如图3.3,反映了各个功能以及各功能实现所采用的方法。图3.3 模块分工及功能实现图 1.界面设计采用MFC AppWizard创建框架程序。AppWizard可以用来生成初步的框架文件(代码和资源等)。资源编辑器用于帮助直观地设计用户接口。 ClassWizard用来协助添加代码到框架文件。最后,编译,则通过类库实现了应用程序特定的逻辑。2.播放功能的实现上,采用了PlaySound函数的调用,即播放模块利用了WindowsAPI(Application Program Interface)所提供的播放Wave格式声音的函数,来进行对应的音频文件调度播放,以实现对声音的播出功能。3.而为了实现输入与播放的对应对照,在输入模块和播放模块之间还需要加入一个对应理解的机制,使用户输入和音频播放能够一一对应,从而调用所需要的音频文件进行播放。4.乐谱的导入与保存,采用的是TXT文件的读取与写入的方法。3.2 弦乐演奏系统界面设计界面设计采用MFC AppWizard创建框架程序,它的窗口界面,基本操作和一般Windows窗口的操作类似,简单易懂。采用菜单加按钮模式。在界面设计上,遵循以精为主的方针。全部的窗体都在以小为主。在最小的界面上,实现最多的功能。3.2.1 MFC应用程序框架MFC,微软基础类(Microsoft Foundation Classes),是用于在C+环境下编写应用程序的一个框架和引擎。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。MFC的类可以处理许多标准的Windows编程任务。借助AppWizard可以创建出非常灵活的应用程序框架。l AppWizard可以用来生成初步的框架文件。l 资源编辑器用于帮助直观地设计用户界面。l 编译并连接类库实现了应用程序特定的逻辑。当利用MFC AppWizardexe创建一个工程时,它能够自动生成一个MFC应用程序的框架。MFC框架使用消息映射机制将Windows消息和特定的C+函数联结起来。可以将消息映射添加到任何由MFC的CCmdTarget类派生出来的类中。MFC AppWizardexe向导提供了一系列的对话框,在对话框中提供了一些不同的选项。通过选择不同选项,可以创建不同类型和风格的MFC应用程序,并可定制不同的程序界面窗口。例如,程序是单文档、多文档应用程序还是基于对话框的程序,是否支持数据库操作,是否可以用Active X 控件以及是否具有联机帮助等。MFC类库中的类是以层次结构的方式组织起来的,几乎每个子层次结构都与一具体的Windows实体对应。良好的体现了封装和继承的面向对象概念,一方面封装了具有Win32应用程序编程接口、应用程序概念、ODBC和DAO数据访问等功能的类,另一方面抽象众多类的共同特性,设计出一些基类作为实现其他类的基础。3.2.2 定义对话框对话框实际是一个窗口,在MFC中,对话框的功能被封装在了CDialog类中,CDialog类是CWnd类的派生类。对话框分为模态对话框和非模态对话框两种。本系统采用的是非模态对话框。即当对话框被弹出时,一直停留在屏幕上,用户可以进行其他操作,对话框所在的应用程序可以被执行。创建Visual C+应用程序中的对话框通常分为两个阶段。第一个阶段是设计阶段,包括创建对话框模板并向其中添加所需的控件。第二个阶段是编程阶段,包括编写C+源代码将对话框及其控件与类和函数相连。如图3.4,使用AppWizard为应用程序创建一个基于对话框的工程。图3.4 创建基于对话框的应用程序3.2.3 对话框的组成一个对话框由以下两部分组成。1.对话框模板资源。对话框模板用于指定对话框的控件及其分布,Windows根据对话框模板来创建并显示对话框。2.对话框类。对话框类用来实现对话框的功能。由于对话框行使的功能各不相同,因此一般需要从CDialog类派生一个新类,以完成特定的功能。 相应地,对话框的设计有两个主要方面,即对话框模板的设计和对话框类的设计。修改对话框属性(Dialog Properties)是对话框设计中的一项基本任务。属性对话框中的General标签下还提供了一些其他选项,包括设置对话框中使用的字体。X Pos和Y Pos可以设定打开对话框的位置。这个位置与它的父窗口有关。对话框单位指的是对话框中使用的尺寸度量方式。3.2.4 添加定位控件 控件是独立的小部件,在与对话框的交互过程中,控件担当着主要角色。首先用AppWizard建立一个对话框程序。当在资源编辑器中打开对话框模板时,Developer Studio会加载一个Layout菜单。工具栏之一是对话框工具栏(Dialog toolbar),如图3.5所示。 图3.5 添加和定位控件 控件添加后,进入resource view编辑界面,修改控件属性。ClassWizard编写控件事件。 在view菜单下,可以设立控件和事件,控件和变量之间的对应关系。图3.6 修改控件属性如图3.6,在对话框中建立八个基本音符的按钮控件。通过属性,依次改控件的名字分别为1 、2 、3 、4 、5 、6 、7、 1 。如图3.7,编辑界面,为播放界面添加按钮,标签,组框等其他组件。本播放器的基本界面实现。图3.7 编辑界面3.3 播放功能的设计与实现在Visual C+程序中对声音的编程通常有以下几种方法:1.用Windows提供的API函数。Windows API提供了三种不同的方法来实现音频文件的播放:l PlaySound函数,它可以通过单行编码来播放.WAV各式的声音;l MCI(The Media Control Interface),可以播放100k以上的文件,Visual C+对MCI进行了良好的封装,提供一个完整的播放多媒体的类MCTWnd;l 低级音频设备。用这些设备可以运行完全控制音频数据的应用文件。但这种方法实现起来非常复杂,非专业人员难以完成。2.Cwave类。3.ActiveX控件。3.3.1 PlaySound函数本播放系统的开发,即采用了PlaySound函数调用的编程方法,播放模块利用了WindowsAPI(Application Program Interface)函数程所提供的函数来进行对应的音频文件调度播放,以实现对声音的输出功能。以下对PlaySound的方法进行具体的介绍。PlaySound是Windows API提供的一个播放Wave格式的声音的函数。此函数有两个限制,一是必须将声音数据完整地载入物理内存,二是数据格式必须被所配置的某一音频驱动器支持,PlaySound比较适用于100K以下的文件。这个函数的定义在mmsystem.pas文件中。3.3.2 参数说明PlaySound函数的原型如下。BOOL PlaySound(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound); 各参数说明:pszSound :指定了要播放声音的字符串,该参数可以是 WAVE 文件的名字或 WAV 资源的名字,或是内存中声音数据的指针,或是在系统注册表 WIN.INI 中定义的系统事件的声音。如果该参数为NULL则停止正在播放的声音。hmod :是应用程序的实例句柄,当播放 WAV 资源时要用到该参数。否则它必须为NULL。fdwSound :是标志的组合,若成功则函数返回TRUE,否则返回FALSE。参数值如表3.1 所示。表3.1 参数fdwSound播放标志 含义描述SND_APPLICATION 用应用程序指定的关联来播放声音。SND_ALIAS pszSound参数指定了注册表或 WIN.INI 中的系统事件的别名。SND_FILENAME pszSound 参数指定了 WAVE 文件名。SND_ASYNC 用异步方式播放声音,PlaySound函数在开始播放后立即返回。SND_LOOP 重复播放声音,必须与 SND_ASYNC 标志一起使用。SND_MEMORY 播放载入到内存中的声音,此时 pszSound 是指向声音数据的指针。 SND_RESOURCE pszSound参数是WAVE资源的标识符,这时要用到hmod参数。SND_SYNC 同步播放声音,在播放完后 PlaySound函数才返回。例如:在 C:WINDOWS|MEDIA 目录下有一名为 data.wav 的声音文件,调用 PalySound() 函数播放声音文件的方法: 方法:直接播出声音文件: PlaySound(“C:windowsmediadata.wav”,NULL,SND_FIMENAME|SND_ASYNC); 方法:把声音文件加入到资源中,然后从资源中播放。用户在资源视图中选择Import命令,然后加入Tada.wav文件,该文件就加入到了wave资源中。假定声音资源的 ID 为: IDR_DATA ,则用下面调用播放此声音:PlaySound(LPCTSTR)IDR_DATA,AfxGetInstanceHandle(),SND_RESOURCE|SND_ASYNC);另外,用 PlaySound 还可以播放系统声音,Windows启动的声音是由SystemStart定义的系统声音,可用下述方法播放:PlaySound(“SystemStart”,NULL,SND_ALIAS|AND_ASYNC);3.3.3 播放实现本系统中,有八个基

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论