基于钩子技术的键盘乐谱输入播放系统按键奏鸣曲软件毕业论文.docx
《基于钩子技术的键盘乐谱输入播放系统按键奏鸣曲软件毕业论文.docx》由会员分享,可在线阅读,更多相关《基于钩子技术的键盘乐谱输入播放系统按键奏鸣曲软件毕业论文.docx(36页珍藏版)》请在冰豆网上搜索。
基于钩子技术的键盘乐谱输入播放系统按键奏鸣曲软件毕业论文
本科毕业论文
(科研训练、毕业设计)
题目:
基于钩子技术的键盘乐谱输入播放系统
——按键奏鸣曲软件
姓名:
学院:
软件学院
系:
软件工程
专业:
软件工程
年级:
学号:
指导教师:
职称:
年月
基于钩子技术的键盘乐谱输入播放系统
——按键奏鸣曲软件
[摘要]多媒体编辑软件是一种高级的软件程序或命令的集合,这些命令可以支持各式各样的硬件装置与文件格式,将图形、文字、音频、影片等视听对象组合在一起,进一步提供各种对象显示的顺序及一个导向结构。
音乐乐谱输入系统则是其中的一种。
根据总体系统结构分析,目前音乐乐谱输入播放系统软件的功能设计主要可以通过显示模块、编辑模块、音频文件操作模块和播放四大模块构成,其具体又可划分若干细节功能模块。
按键奏鸣曲是基于键盘输入的微型乐音播放系统软件,也可作为音乐创作的支持辅助工具。
从键盘数字按键输入,直接对应简谱中央音区音阶,进行乐音的播放,据有简捷明了的用户界面和提示说明。
在响应用户键盘输入部分,为了保证软件对于焦点无论在不在本软件,都可以正常播放的特性,采用了“钩子技术”监控键盘信息交换来加以实现,而不是普通的响应按键信息的方法。
播放模块则使用播放函数sndPlaySound来进行对应的音频文件调度播放。
界面部分利用MFCAppWizard创建应用程序框架来进行实现。
本文不只是单纯的软件产品分析,而是综合的对于产品所涉及领域、行业基础、成熟同类、发展前景等全方面的探讨论述,更是基于现实问题、分析探讨问题以至最终从独特的角度解决问题的一个连贯的思维过程,也希望以此启发其他更多的软件从业人员,创造出更多新颖、独特、符合人性化需求的软件产品。
[关键词]多媒体编辑软件键盘乐谱输入的音乐播放软件键盘监控钩子技术音频文件播放MFCAppWizard应用程序框架思维过程
Abstract
Themultimediaeditingsoftwareisasetofseniorsoftwareprogramsandcommands.Itsupportskindsofhardwareandfileformatstocombinetheimages,texts,audios,moviesintooneunit,whichprovidesasequenceoradirectedconstructionforallobjects’displaying.Oneinstanceisjustthemusicalplayerbasedonnotesinput.Asthegeneralanalyseofsystemfunctions,thiskindofsoftwarealwayscanbeconstructedasfourfunctionmodules:
appearance,editing,processingandplaying,whicharedividedintomorespecificparts.
KeyboardSoundisamicromusicalplayerbasedonkeyboardinput,whichalsocanbetreatedasanassistanttoolformusiccreation.Usersinputmusicalnotesdirectlyfromthenumberbuttonstoplaysoundeffectasnumberedmusicalnotationwiththeinstructionontheinterface.Inordertomaketheproductaffectivewithoutbeingfocused,asuserscanalwaysplaysoundfromkeyboardevendoingotherthingsfromotherwindows,thissoftwareuseatechniquenamed“Hooks”tomonitortheinformationexchangebetweenpcmemoryandthekeyboardratherthanthesimplecommonmethodsofkeyboardmessagesoftwareusesfuction“sndPlaySound”toplayaudiofilesandbuildwholesystemwithMFCAppWizardframework.
Thispaperisnotjustasimpleproductintroductionbutratheracomplexstudyaboutthebackground,aspectanddevelopmentofthewholeindustryofmusicalnotesplayingsoftware.Whatmore,itisajourneyofthoughtfromdiscoverthepracticalproblem,toresearchit,thentoresolveitonauniquepoint.Theauthorwishmoresoftwareengineerscouldgetinspirationfromthissoftwaretocreatmorebrilliantproductsasthecommanneed.
[Keywords]MultimediaeditingsoftwareMusicalplayerbasedonnotesinputMonitorofthekeyboardHooksAudioplayMFCAppWizardframeworkJourneyofthought
Contents
引言
计算机作为当今科技的产物存在于现今的文化之中,已经不能单纯地认定它只是一种技术工具,它也是联系人与信息世界的中介,是这种文化的一个界面。
人们通过与计算机的交流来学习和把握这个世界,计算机不仅在于沟通了科学与艺术,更重要的是它联系起艺术设计的传统与未来,它融入了传统的艺术形式又包含了电子世界的独特语言,在现实中发展又改变着现实。
如果说十几年前人们对计算机还停留在深不可测的认识阶段,今天,计算机则已渗入到社会生活的每一个角落。
随着计算机软硬件技术的不断提高,计算机图形用户及人机交互方法的出现,加之专业艺术设计人员的参与,计算机已成为当今艺术创作和艺术设计的重要组成部分。
平面广告设计、建筑三维图形、三维动画、出版印刷、音效制作、动画视频等无一不见计算机的踪迹。
同时,计算机这一新的设计工具,对当今艺术创作设计的观念和方法也带来巨大而深远的影响。
人,在用自己智慧的结晶冲击着自己精神的领域,不断拨开意识中微妙的云雾,而又勤恳地开拓着广阔的崭新思维疆界,去一览潜藏在内心的奇异创作视野。
伴随着无数专业娴熟技艺超群的艺术家,亦或顶礼膜拜心存向往的艺术朝圣者对各种多媒体应用软件的数量和质量提出更多、更好、更高的要求,计算机多媒体应用领域形成了多方向、全面化、专业化的发展需求。
既需要可以满足精深全面的职业需求,能将艺术奇思妙想的火种熊熊点燃的专业化软件,又需要可以满足艺术爱好者降低艺术入门门槛渴望的,喜闻乐见、信手拈来又实用方便的娱乐小品。
本文就是基于这样一背景,从对艺术、多媒体、计算机的关注入手,带着或多或少人文学科的风格气息探讨软件系统在音乐创作领域的发展、态势和前景,引出对于一款应用概念独特、技术层面值得研究、辅助于多媒体创作的微型软件产品的思索和探讨。
算是抛砖引玉,作为多媒体应用软件领域创新的一点尝试和研究,希望激发更多计算机从业人员以及相关爱好者的探索兴趣,为丰富艺术创作软件园地做一些小小的贡献。
第一章概述
1.1计算机多媒体概述
1.1.1媒体的概念
媒体(Media)即媒介、媒质,它是信息的载体。
媒体在计算机领域有两层含义:
一是以存储信息的实体,如磁带、光盘和半导体存储器等,中文译为媒质;另一类是指传递信息的载体(即计算中的数据),如数字、文字、声音、图形和图像等,中文译为媒介。
计算机多媒体技术中所说的是指后者。
根据国际电信联盟(ITU)和国际标准化组织制定的媒体分类标准,媒体可分为六类:
(1)感觉媒体(PerceptionMedium):
直接作用于人们的感觉器官,从而产生直接感觉的媒体,如语言、音乐、自然界中的各种声音、各种图像和动画、文字等。
(2)表示媒体(RepresentationMedium):
为了传送感觉媒体而人为研究出来的媒体。
借助于此种媒体,便能更加有效地存储感觉媒体或将感觉媒体在不同地域之间传送。
如语言编码、电报码和条形码等。
(3)显示媒体(PresentationMedium):
用于通信中时电信号和感觉媒体之间产生转换用的媒体,如输入\输出设备,鼠标器、键盘、显示器和打印机等。
(4)存储媒体(StorageMedium):
用于存放某种媒体的媒体,如纸张、磁带、磁盘和光盘等。
(5)传输媒体(TransmissionMedium):
用于传输某些媒体的媒体。
常用的如电话线、电缆和广纤等。
(6)交换媒体(ExchangeMedium):
在系统之间交换数据的手段与类型,他们可以是存储媒体、传输媒体或者是两者的结合。
1.1.2多媒体与多媒体技术的涵义
多媒体译自英文Multimedia,该词是由Multia和Media构成的复合词,与之对应的是单媒体(Monomedia)。
从字面上看来多媒体是两种或两种以上媒体的有机集合体,或说由单媒体复合而成的有机集成体。
因此人们将文本、音频、图形、图像、动画和视频的综合体笼统成为“多媒体”。
事实上,由于计算机技术和数字信息处理技术的实质性发展,才使我们拥有了处理多媒体信息的能力,使得“多媒体”成为一种现实。
所以现在我们说的多媒体已不再是单纯的字面含义,更多的是指处理它的一套技术和方法,即“多媒体技术”一词的同义语。
多媒体技术(MultimediaComputingTechnology)是指使用计算机综合处理文本、声音、图形、图像、动画和视频等多种不同类型媒体信息的技术,其实质是通过进行数字化采集、获取、压缩\解压缩、编辑、播放等加工处理,再以单独或合成形式表现出来的一体化处理技术。
这种综合处理多媒体信息的突出特点除了信息载体的多样化外,还有两个关键特性,既集成性和交互性。
信息载体多样化是对计算机而言的,也被称为信息媒体的多维化。
这一特性不仅使计算机所能处理的信息时空范围扩大,而且使人与计算机的交互具有更广阔的、更加自由的空间。
人类对信息接受的5个感觉(视、听、触、嗅、味)空间中,前三个占了95%以上的信息量,因此信息多样化及其与空间、时间的相关性使计算机更加人性化。
集成性一方面指把单一的、零散的媒体有效的集成在一起,即信息载体的集成,它使计算机信息空间得到相对的完善,并能充分得到利用。
另一方面,集成性还充分表现在存储信息的实体集成。
多媒体信息由计算机统一存储和组织,使得1+1>2的系统特性得到体现,应该说集成性是系统的一次飞跃。
交互性将为用户提供更加有效的控制和使用信息手段,也为了多媒体技术的应用开辟了广泛的领域。
交互性不仅增加用户对信息的注意力和理解,延长了信息的保留时间,而且交互活动本身也作为一种媒体加入了信息传递和转换的过程,从而能使用户获得更多信息。
另外,借助交互活动,用户可参与信息的组织过程,甚至可控制信息的传播过程,从而使用户研究、学习所感兴趣的方面,并获得新的感受,这是许多使用户只能被动接受信息的单媒体(如书报、电影等)所无法比拟的。
1.1.3多媒体计算机系统层次结构
当我们研究计算机上基于多媒体特性的相关软件产品时,多媒体计算机系统体系结构是我们必须加以认识和考虑的。
多媒体计算机系统与一般计算机系统结构原则上是相同的,即由底层硬件系统和其上层软件系统组成。
软、硬件功能分配及界面的确定也是多媒体计算机体系结构包含的内容之一。
硬件具有原子性质,软件具有信息性质;软、硬件在逻辑功能上具有等效性,在发展上具有同步性。
多媒体计算机系统只是考虑多媒体特性在系统结构各层次的内容比一般计算机系统更丰富。
图所示为层次结构的内容。
图多媒体系统的层次结构
第一层为多媒体外围设备,包括各种媒体、视听输入/输出设备及网络。
第二层为多媒体计算机硬件,主要配置与各种外部设备的控制接口卡,包括多媒体实时压缩和解压缩专用的电路卡。
第三层为多媒体驱动程序、操作系统。
该层软件为系统软件的核心,除与硬件设备打交道(驱动、控制这些设备)外,还要提供输入/输出控制界面程序,即I/O接口程序,而操作系统则提供对多媒体计算机的硬件、软件控制与管理。
第四层是媒体制作平台和媒体制作工具软件,支持应用开发人员创作多媒体应用软件。
设计者利用该层提供的接口和工具采集、制作媒体数据。
常用的有图像设计与编辑系统,二维和三维动画制作系统、声音采集与编辑系统、视频采集与编辑系统以及多媒体公用程序与数字剪辑艺术系统等。
第五层为多媒体编辑与创作系统。
该层是多媒体应用系统编辑制作的环境,根据所用工具的类型,有的是脚本语言及解释系统,有的是基于图标导向的编辑系统,还有的是基于时间导向的编辑系统。
通常除编辑功能外,还具有控制外设播放多媒体的功能。
设计者可以利用这层的开发工具和编辑系统来创作各种教育、娱乐、商业等应用的多媒体节目。
第六层为多媒体应用系统的运行平台,即多媒体播放系统。
该层可以在计算机上播放硬盘上的节目,也可以单独播放多媒体产品,如消费型电子产品中的CD-I等。
多媒体应用系统放到存储介质中,如光盘,就可以成为多媒体产品,并作为商品销售。
以上六层中,一、二层构成多媒体硬件系统,其余四层是软件系统。
软件系统又包括系统软件(如操作系统)和应用系统。
1.2多媒体编辑软件领域相关简介
1.2.1多媒体编辑软件
多媒体编辑软件是一种高级的软件程序或命令的集合,这些命令可以支持各式各样的硬件装置与文件格式,将图形、文字、音频、影片等视听对象组合在一起,进一步提供各种对象显示的顺序及一个导向结构。
这种导向结构通常是用某种特殊的电脑语言来构成以简化程序设计的过程。
编辑软件的目的便是提供给设计者一个自动产生电脑码的综合环境,使设计者可以将不同的内容与各种功能结合在一起,形成一个结构完整的节目,因此多媒体编辑软件通常应包括建立,编辑,输入和输出各种形式的数据,以及将各种数据组合成为一个连续性系列的基本工作环境。
一套多媒体编辑软件,所涉及的对象种类繁多,且其格式与显示的方法多不相同。
要将这些对象组合在一起实非易事,故此多媒体编辑环境通常都很复杂,为了使原本复杂的多媒体工作环境变得易学,易懂,且易于操作,多媒体编辑软件应提供以下六种工具来建立一个多功能的工作
(1)图标或标示的视觉程序。
这类工具可以让设计者用鼠标按下某一个图画或声音的图标拉到制作流程上的某一位置,以便播出。
例如可以让设计者按下某一图标并拉到工作台上,形成制作节目的一部分。
(2)可以象写剧本一样的程序语言。
这种语言可让设计者写出控制各种对象显示的流程,分支,及导向路径等。
(3)与传统语言合并的程序编辑软件系统可让设计者用传统语言如BasicAssembly或C来写程序的某些部份,来弥补该多媒体编辑软件程序上的不足。
通过相关技术命令的调用融入其他语言程序及媒体的共同界面程序。
(4)文件开发流通的工具。
这个功能十分重要,它关系着对象的流通或交换。
如扫描图或文本文件的输入输出。
文件格式的规格,以及不同软件甚至于不同机器间便利的数据交流方法。
其中尤以能拥有各种不同形式的文件规格最为重要,这些文件格式如PICS,PICT,BMP等图形文件,WAV,MID等声音文件及AVI图像文件等等。
(5)用户层次的切换。
用户可能是一套节目的阅读者,也可能是节目的作者。
在读者与作者之间可能还有只要填入文本数据的用户,也有必须改变图形或声音等数据的用户,故多媒体编辑软件应让用户决定其层次或身份。
(6)交互式的教学程序多媒体的节目大多是交互的,制作多媒体的编辑软件也是交互的,其相关的工具与各类弹出式菜单很多,窗口可以多重显示,故须引导用户明白这些命令菜单与多重窗口之间使用的顺序与操作方法。
1.2.2多媒体编辑软件的分类
编辑软件的种类多媒体编辑软件依照组织或安排数据的系列可以分为下列五类:
(1)以卡或页为基础的多媒体编辑软件大多数以卡或页为基础的编辑系统,都是提供一种可以将对象连接于卡或页上面的工作环境,一页或一张卡便是数据结构中的一个节点。
这类编辑系统是以面向对象的方式来处理多媒体元素,这些元素用属性来定义,用剧本来规范,而事件则以消息来贯通各层次之间的对象。
(2)以图标为基础,基于事件的多媒体编辑软件以图标为基础的编辑软件提供以视觉为主的程序环境。
在设计之初必须先用其他软件来制作各种元素,然后在此系统中建立一个流程图,在流程图中可以包括起始事件、分支、处理及结束等各种图标。
设计者可依流程图将适当的对象从所谓的图标库中按下拉至到工作区内。
这些图标可以包括菜单条的选项,图形图像,声音及运算等。
这个流程图,也是事件安排的次序,同时也表示整个节目的逻辑蓝图。
(3)以时间为基础的多媒体编辑软件以时间为基础的多媒体软件是最常见的多媒体编辑系统,所制作的节目最象电影片及卡通电影,它们大多数是以看得见的时间行列来决定事件的顺序与对象的演示段。
在这类编辑系统中都会有一个控制播出的控制面板,与录音机、录像机相似,含有倒带,(Rewind)、倒退一步(Basestep)、停止(Stop)播放(Play)、前进一步(Forward)等按钮。
(4)以程序语言为基础的多媒体编辑软件。
例如Microsoft公司推出的VisualBasic和VisualC++等在PCWindows环境下开发多媒体产品应用软件或产生、编辑各种新旧资源。
综合了Windows的用户图形环境和高级程序语言简单、好用的特点,是一种面向对象的软件开发工具,运动建立在对象的基础之上。
(5)其他各种面向专业功能的多媒体编辑软件。
具体的成熟的实例分析我们将在下一大章进行。
1.3本论文特色和要点
本文源于本科论文毕业设计命题项目:
“基于乐谱输入的播放器”扩展创作而成。
作者受到相关技术实现的启发,寻求以不同于当前市场上已有成熟软件产品的独特角度来理解阐述该问题。
本文不是单纯的软件产品分析,而是综合的对于涉及领域、行业基础、产品、前景等的全面探讨论述,更是基于现实问题、分析探讨问题以至最终从另类的角度解决问题的一个连贯的思维过程。
本文既有乐理方面的简单介绍,也有相关多媒体音频文件的播放阐述;宏观上是对于多媒体理论的实践运用、同行业成熟软件的剖析理解、对软件产品的架构设计,微观上也有针对关键技术理论的探讨和研究,启发从另一个角度思考软件工业的产品构思和实现方法。
文章总体框架为两部分,第一、二章作为项目的背景架构研究。
包括对于领域、行业、学科层次关于本软件产品的一些背景知识,作者在此抱着对文章全局性整体性的负责态度浸入了大量的笔墨对它们进行论述,尤其是其中在第二章对几款现有产品的功能叙述分析是作者投入心血写作,希望读者可以有所借鉴和领悟的。
当然如果是以考察软件成品为目的的考察者大可将这一部分直接跳过,然而如果是作为将软件产品融入整个框架体系进行认真对待,思考其实现流程背景的探索者,那么强烈建议您加以浏览,以增加对相关背景知识的了解以及对行业成熟软件状况的涉猎,便于更好的理解后叙的技术理论。
其中,第一章是对计算机多媒体和多媒体编辑软件相关背景的简单介绍,第二章是具体到基于乐谱输入的播放软件的各种基础背景知识和对于该行业成熟软件的横向比较研究。
第三,四章则引出作者想要展示的基于“钩子技术”的键盘输入乐谱音符播放系统的相关软件流程介绍及其具体编码问题。
同时在第五章对于本软件特点以及本专业同类软件发展前景作出分析。
由于作者少年曾学习乐器演奏多年,长期具有对于艺术的执著喜爱,在这样一篇艺术和科学交错的文章中,行文难免或多或少带有烂漫的人文主义风格。
然而,对于一篇理应严谨肃穆的工学论文,这并不是对于其精确性的挑战,更多的是作者渴望表达的产品设计,特别是软件产品设计,能够以人为本,从关怀人类最基础最根本需求出发的理念,希望在人类与人类智慧结晶的交流中,改造生活,体现出人文精神的价值。
第二章项目相关背景研究
2
2.1相关乐理基础知识
2.1.1简谱相关理论基础
简谱,属“文字记谱法”,在世界各地广泛流行,它来源于欧洲。
16世纪就出现的用数字代表音符的记谱法。
音符用阿拉伯数字1、2、3、4、5、6、7代表唱名do、re、mi、fa、sol、la、si来记示音高,以上下加点记示音区。
图简谱音符与钢琴键盘对照图
如图所示,图中黑色虚线框里面的音符上下都不带圆点的一般叫中音区音符。
该区中的数字1被称为中央1(标准C音)。
黄线右面的音符上边出现有圆点的,则表示要将该音升高一个音组,行话说“高8度”。
如出现加两个圆点就表示将该音升高两个音组,余类推。
在音符下边出现有圆点的,则表示要将该音降低一个音组,即“低8度”。
如出现加两个圆点就表示将该音降低两个音组,余类推。
表示音乐的长短需要有一个相对固定的时间概念。
简谱里将音符分为全音符、二分音符、四分音符、十六分音符、三十二分音符等。
在这几个音符里面最重要的是四分音符,它是一个基本参照度量长度,即四分音符为一拍。
这里一拍的概念是一个相对时间度量单位。
一拍的长度没有限制,可以是1秒也可以市2秒或半秒。
假如一拍是一秒的长度,那么二拍就是两秒;一拍定为半秒的话,两拍就是一秒的长度。
一旦这个基础的一拍定下来,那么比一拍长或短的符号就相对容易了。
用一条横线“—”在四分音符的右面或下面来标注,以此来定义该音符的长短。
表列出了常用音符和它们的长度标记:
表简谱音符时值写法对照说明表
音符名称
写法
时值
全音符
5———
四拍
二分音符
5—
二拍
四分音符
5
一拍
分音符
半拍
十六分音符
5
=
四分之一拍
三十二分音符
八分之一拍
上表可以看出:
横线有标注在音符后面的,也有记在音符下面的,横线标记的位置不同,被标记的音符的时值也不同。
从表中可以发现一个规律,就是:
要使音符时值延长,在四分音符右边加横线“—”,这时的横线叫延时线、延时线越多,音持续的时间(时值)越长。
相反,音符下面的横线越多,则该音符时间越短。
音乐中除了有音的高低,长短之外,也有音的休止。
表示声音休止的符号叫休止符,用“0”标记。
通俗点说就是没有声音,不出声的符号。
休止符与音符基本相同,也有六种。
但一般直接用0代替增加的横线,每增加一个0,就增加一个四分休止符时的时值。
2.1.2五线谱相关理论基础
五线谱目前世界上通用的记谱法。
在5根等距离的平行横线上,标以不同时值的音符及其他记号来记载音乐的一种方法。
如图所示,五线谱的每根线以及线与线之间的空间,自下而上分别称为第1线、第2线、第3线、第4线、第