乐谱绘制系统的方法研究与实现毕业论文(编辑修改稿)内容摘要:
音调的数字记录信息,而其中大量的信息符号均未被保留下来。 于是,人们就 又提出了大量的音乐符号标注,可是因为自身的局限性,都只能流逝在漫长的历史长河中令人惋惜。 所以很多商用的记谱软件都拥有属于自己的一套记录音乐的数据存储格式,都存在不可避免的局限性和封闭性,只能偏居一隅。 然后,一颗彗星以崛起之势冲向了星海,那就是MusicXML 的诞生。 由 Recordare 公司发布的 MusicXML,其优点非常明显,因为它基于当时已经很成熟的 XML 技术,对于网络的扩展性做得十分到位。 而且 MusicXML 结构清晰,便于阅读,对于音乐文件的记录描述也是十分详尽而规范 [7]。 在之后的十几年发展中, MusicXML 技术已经被很多种应用软件所支持,其势态之锐令人振奋。 上面就是对国内外音乐打谱系统及其发展历史的简约概述。 需要注意的是,对于在线乐谱的线上处理功能其上所有提到的记谱客户端软件均不支持,而且在线记谱插件也不允许用户进行在线编辑绘制,功能较为单一,并不实用 [8]。 用另一句话说就是,到目前为止,似乎还不存在这样一款既能支持用户在线编辑、可自由导入导出市面上多数文件格式的音乐文件以及支持各种可扩展的音乐打谱软件,而这正是本文的研究方向。 武汉工程大学 毕业论文 5 项目研究主要内容 本文主要的目标是研究出一种通俗 易用的,既能满足大多数业余音乐爱好者对平时生活中美妙声乐的录制编辑,也能面向专业的音乐教育系统的一个功能非常强大,可在线自由编辑,且用户可添加自我标注的音乐记谱软件。 其研究的主要内容如下: 1. 对国内外几家比较知名的音乐学府使用的记谱软件以及其对乐谱软件的应用场景和功能需求进行调查和研究,以此作为本文的研究方向,并编写需求文档。 2. 根据文档上面的需求,分析并制作出一部实现上面所有功能的音乐记谱软件,最低标准是可支持在线播放、在线编辑、在线标注,而且可以支持 MusicXML 文件格式并加以自我扩展。 3. 依据设计的音乐记谱软件客户端,实现一种在线的记谱插件,对于音乐教育系统可应用于多种场景。 基本章节安排 本文主要分为五个章节,其余四章节内容如下: 第二章:对项目所运用到的技术进行一定综述。 介绍本文中各项技术的社会背景、应用范围和发展现状等,以及将其与类似的技术相互对比,阐述之间的优缺点,最后说明它相对其他技术所特有的优势。 第三章:系统设计。 对比较主流的音乐记谱软件进行综合调查和分析后,通过需求文档设计出系统的整体框架以及相应的功能模块。 第四章:系统功能实现。 以 第三章为基础,通过已有的设计方案进行功能实现。 第五章:总结与展望。 对本文已经实现的功能进行分析总结,并找出存在的一些隐患和缺陷,然后根据乐谱需求提出相应的改进方案,方面日后的多次扩展和改进工作。 武汉工程大学 毕业论文 6 武汉工程大学 毕业论文 7 第二章 相关技术综述 当今社会技术飞速发展,尤其是数字化技术则是如雨后春笋般涌出,而作为乐谱软件开发者,选择更适合该系统的技术显得尤为重要。 该系统设计到的一个对乐谱数据存储的读取格式和保存手段,即在原有的格式基础上进行一定程度上的扩充和自定义,更方便今后的开发工作。 本章将对项目 中即将使用到的关键技术进行详细的讲述,并对相关技术对比说明。 开发语言及工具 开发语言 本项目所使用的开发语言有 Java、 HTML。 Java 语言是一种面向对象程序设计的开发语言,它具有十分优秀的安全性、高效性、强移植性 [9]。 Java 语言于 1995 年由 Sun Microsystems 公司的 Games Gosling 和他的同事共同研发,后来由于内部因素,于 20xx 年被 Oracle 公司收购。 Java 是由四大基本部分组成: Java 基本语法、 Java 文件格式、 JVM 虚拟机和 Java API[10]。 Java 著名的三大体系有 Java SE、 Java EE、 Java ME,其中 Java SE 属于标准版, Java EE 为企业版,而最后者是微型版,三者面向的服务对象都有所不同。 那么 Java 语言有何特征呢。 首先,它的学习成本非常低。 Java 当中抛弃掉了存在于 C 和 C++当中很难让人理解的特征,比如多继承、运算符重载之类的,尤其重要的是, Java 语言中没有出现指针,这对大部分学习者来说不能不是一种福音,并且 Java 也非常人性化的进行内存自我管理,使用者根本不必担心垃圾堆积导致的内存泄露等问题; Java 是全方位支持面向对象的编程语言。 它虽然不支持多继承,但在另一方面却发明了接口这种神奇的技术,通过接口,开发者可以间接实现多继承,并不关心内部代码的实现情况,使得开发模块化,自由灵活程度更高,对日后的测试和维护也是大有裨益; Java 语言是很健壮的。 由于 Java 程序对于异常的处理做的相当到位,所以错误的发生概率也较低,而且由于 Java 语言是强制类型语言,所以系统的执行效率也会更高,避免了很多问题,尤其难得的是 Java 对垃圾回收方面也考虑在内,这些都保证了 Java 程序的健壮性;同时 Java 语言支持多线程, 并且是动态的。 HTML 语言,有人说它是通向 WEB 技术世界的钥匙,有了它就可通过超文本标签来实现自己想在网页上实现的一切功能。 我们知道 web 浏览器的作用是通过读取 HTML文档的内容将其显示在网页客户端,没有 HTML,那么网页上很多功能基本就无法实现。 所以通过反复思考,最终选择 Java 和 HTML 作为本次设计的主要语言。 武汉工程大学 毕业论文 8 开发工具 本次设计所使用到的开发工具主要是 MyEclipse 以及 IE 浏览器。 MyEclipse 是Eclipse 的组件开发集合,它的功能十分强大,应用十分广泛和成 熟,特别是对各种开源类产品 的支 持相 当融 洽。 现在 MyEclipse 支 持很 多功 能, 比如有 JSP,Java Servlet,AJAX,Struts, hibernate, spring 以及 JDBC 等。 MyEclipse 从发布到现在的MyEclipse 20xx 版本,经历了大大小小的改进工作,如今的最新版本已经成功支持HTML jQuery 和 JavaScript 等。 伴随着 MyEclipse 20xx 对 HTML5 的支持,用户还可以自由的添加音频、视频、动态图等到项目之中,为自己的项目开发出更强大功能更复杂的应用程序出 来。 IE( Inter Explorer,网络探索者),是由微软公司推出的一款网页浏览器。 曾经IE 在全球的使用普及率高达百分之九十,后来又被 Google 发布的 Google Chrome 所超越,居于第二。 到目前为止,它的最新版本已经到了 Inter Explorer 11,此版本在速度和界面方面有了很大的改善。 技术选择 乐谱数据格式选择 对于乐谱来说,最重要的无疑是对音乐数据存储格式的选择,这样才能更好的支持乐谱文件的读取和保存。 在音乐领域,总体来说业内支持率的比较高的 有 MINI 和MusicXML。 然后还可重新设计出一种更为实用的格式,但这种方式明显不利于跨平台交互,所以基本可忽略。 MINI 和 MusicXML 的开发效率都比较高,而且它们的结构复杂度也比较低。 MINI 格式是作为最基本的对比格式形式存在的,它只支持音高信息,对于符号方面的信息就完全不支持了,所以显而易见的,并不适合本项目。 而 MusicXML是完全基于 XML 技术的,由于 XML 技术在互联网技术中已经属于一种新兴的高发展技术,其应用市场十分广泛,其技术也发展的十分成熟,所以 MusicXML,它的开发效率很高,其扩展 性也比较好,尤为重要的是,对于乐谱符号的覆盖率也非常广。 通过以上对比,本系统终于采用了功能最为强大的 MusicXML 作为最终的乐谱格式存储和交换。 界面类库选择 考虑到本系统使用的开发语言是基于 Java 平台的,对于设计到的图形用户界面开发, JavaADK 给我们提供了两种版本的开发工具,即 AWT 和 Swing。 众做周知, AWT是最原始的图形界面开发类库,它最开始所使用的是基于 Linux 的开发平台,其内的许多图形符号只能依托于本地操作系统中,也就是说,开发者所使用的操作系统中有多少图形符号,那 么开发者就只能通过 AWT 间接获取到想要使用的符号。 想来这种缺陷也武汉工程大学 毕业论文 9 是显而易见的,一旦本地操作系统中并不包含项目中即将使用到的图形,那么只能自己手动绘制了,画坐标,描点,颜色填充之类的,想想就觉得挺麻烦,那么 AWT 就可不做考虑了。 最后,考虑到本系统所要开发的软件是基于用户客户端的,并且支持在线编辑等一些列的操作,所以在技术选择上,一个十分重要的指标就是支持从用户客户端到网页浏览器上的兼容度和扩展性。 然后我们想到的就是 Flash。 从开发效率上来说, Flash 在图形用户界面编程上采用的是可视化控件,就是可 通过控制组件直接操作界面,所以其开发效率比较高。 而 Swing 就要相对低一些了,不过由于它是纯手工代码生成,所以其灵活度也是非常好的,另一方面,由于本系统的记谱繁复程度较高,因此主要的工作量并不在图形界面设计上,而是将重心转移到逻辑层的设计上边,这样此消彼长下,对于开发效率的要求也就不那么高了。 从学习成本和开发成本的角度上讲, Swing 的学习成本是最低的,只需要浏览器装有 JRE,便可自主学习;又考虑到本系统的跨平台性,以 Java 语言为基础的 Swing 无意识不二选择。 相关技术综述 Swing组件 要想了解 Swing 技术,那么先认识一下 AWT 组件是必不可少的。 简单的说, AWT是 Java 最早的用于图形化可视界面应用程序的开发包,是一种抽象窗口组件工具包。 而Swing 是为了解决 AWT 所存在的问题而新开发的包,所以它肯定是以 AWT 为基础的。 AWT 是 Abstract Window ToolKit(抽象窗口工具包 )的缩写形式,而这个包就为用户提供了一套与本地图形界面之间交互的接口。 AWT 里面的图形函数和本地操作系统所提供的图形函数之间有着点对点映射的关系,我们把它称之为 peers。 也就是说当我们在构建图形用户界面的时候,我们实际是在利用操作系统当中所存在的图形库。 由于在不同操作系统中提供的功能是不同的,即在平台之间的统一性并不协调。 为了实现 Java语言当中所宣称的“一次编译,处处运行”的伟大理念, AWT 不得不忍痛割爱,只能牺牲掉部分功能来实现其平台的无关性了,换句话说, AWT 所提供的可视化图形功能其实是所有通用平台上系统们的交集,所以局限性是显而易见的。 由于其是依靠本地的方法来实现其功能的,所以我们又往往把 AWT 控件称之为重量级组件。 而 Swing 则是在 AWT 的基础上, 自行构建的一套新的可视化图形界面系统类库,它提供了 AWT 所提供的所有可使用的方法,并用最纯粹的 Java 代码对 AWT 的功很多能进行了很大规模的扩充。 举个很常见的例子,并非所有的操作系统都会提供用户对树形结构控件的支持,而 Swing 里面就利用 AWT 里最基本的作图方法对树形结构进行了全方位的模拟和实现。 而因为 Swing 控件是纯 Java 代码编写而成,所以它的移植性非常好,支持多平台,它完全并不依靠本地方法来实现图形操作功能,我们通常把 Swing称之为轻量级控件。 武汉工程大学 毕业论文 10 既然说到 Swing 所提供的内部方法,那么就不 得不提到我们常用的 MVC 设计模式了, Swing 内部就是使用这种模型进行实现的。 MVC,即 Model View Control 的缩写,它在软件工程里边是一种非常常用的设计模式,可用来将业务逻辑、界面展示和核心控制三者分离开来,达到将系统分成各个不同的层面的效果,既可以降低层面与层面之间的耦合性,又可以是我们的开发模块化,增强程序的灵活性,便于以后的测试和维护等工作。 从字义看来, MVC 模式由三部分组成:模型、视图和控制。 模型:通常我们称之为数据模型,其内封装了大量的数据操作和关于对业务逻辑的一系列操作。 比如简单的登陆功能,我们一般不直接将方法写到控制层里,而是创建一个接口,在业务逻辑里实现登陆具体方法,最后在控制层中直接调用登陆接口即可,所以大部分情况,模型层接受控制层的命令进行相关逻辑操作。 视图:顾名思义,就是显示图片文字等数据,经常直接与用户进行交互。 Java 注重的模块化操作,尊重独立和灵活,所以一般在视图层是不会涉及业务逻辑操作的。 通常情况下,从视图层传出的数据经由控制层调用模型层中的逻辑处理方法来进行操作,当数据变化时,就要通知模型层进行相应的变更。 控制:即控制器,相当于人体大脑的 神经中枢,控制着整个系统的一整套流程走向,它将视图和模型整合串接起来,响应发生的事件并发出命令。 XML 技术 XML(Extensible Markup Language,可扩展标记语言)是由 W。乐谱绘制系统的方法研究与实现毕业论文(编辑修改稿)
相关推荐
本 KTV 设计的风格是现代装修风格,是在室内布置、线形、色调及家具、陈设的造型等方面, 吸取现代 装饰 “ 形 ” 、 “ 神 ” 的特征。 现代风格起源于 1919年成立的鲍豪斯学派,该学派处于当时的历史背景,强调突破旧传统,创造新建筑,重视功能和空间组织,注意发挥结构构成本身的形式美,造型简洁,反对多余装饰,崇尚合理的构成工艺,尊重材料的性能,讲究材料自身的质地和色彩的配置效果
,成渝高速之旁,以其十分优越的自然、人文景观特点,受到政府的高度重视,但在湖南张家界、海南三亚、多姿多彩的云南及风景美丽如画的九寨沟的四大夹击之下,市场份额还是显得较为紧凑,但只要在定位上走出同质化,以前瞻性、大气魄、联动型的眼光进行开发建设,充分挖掘文化,变劣势为优势,就能将项目很好的融入到整个大西南旅游之中,形成四面合围,旅游重心向乐贤半岛转移之势态。
,并运用流体分析软件对排气系统整体内流场的工作情况进行分析研究,得到排气系统内流场的分布状况,根据得到的相应数据,对排气系统的性能作出评价; 2. 根据排气系统在现实状况中的外界以及内部条件,在运用软件分析内流场时,根据相应的条件,设定初始条件根据给定的条件分析出来的结果,来判定排气系统设计的最佳方案; 3. 简单介绍 CFD 的理论,并简述了计算 CFD 中常用的几种湍流模型
备料区及弃料区。 当边坡及底部开挖达到设计高程时,预留 10cm 保护层,然后采用人工开挖。 土方明挖应从上至下分层分段依次进行,严禁自下而上或采取倒悬的开挖方法,施工中随时作成一定的坡势,以利排水,开挖过程中应避免边坡稳定范围形成积水;不允许在开挖范围的上侧弃土,必须在边坡上部堆置弃土时应确保开挖边坡的稳定,并经监理人批准。 使用机械开挖土方时, 实际施工的边坡坡度应适当留有修坡余量
目建设条件。 原材料供应及外部配套条件 第七章 乐器配件加工项目工厂技术方案 主要研究项目应采用的生产方法、工艺和工艺流程,重要设备及其相应的总平面布置,主要车间组成及建构筑物型式等技术方案。 乐器配件加工项目组成 .生产技术方案 生产工艺流程 组装工艺流程 设备方案 生产流水线基本配置 测试流水产线基本配置 第八章 乐器配件加工项目总图运输及公用工程 总平面布置应根据项目各单项工程,工艺流程
3~5 mm 绿豆砂保护层 ; 高分子防水卷材防水层 ; 20 厚 1: 3 水泥砂浆找平层 ; 1: 8 水泥膨胀珍珠岩 (3%找坡 ); 120mm 厚现浇钢筋混凝土楼板, 15厚混合砂浆抹底 ;喷大白浆二道。 沈阳工业大学本科生毕业设计 5 楼面: 地面为 30mm 厚釉面砖装饰; 120mm 厚现浇钢筋混凝土板, 20mm厚混合砂浆抹底 ,喷大白浆二道。 混凝土等级为 C30, f