下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

学习使用VisualBaisc6.0实现五线谱作曲工具的方法

作者:课课家教育     来源: http://www.kokojia.com点击数:1517发布时间: 2016-12-27 08:18:01

标签: VisualBaisc6.0编程代码开发工具

大神带你学编程,欢迎选课

  今天小编要为大家带来的教程就是:学习使用VisualBaisc6.0实现五线谱作曲工具的方法。在这篇教程中,小编主要是向大家介绍使用VisualBaisc环境实现五线谱作曲的一种可视化编辑工具,主要的目的就是在于和大家探讨一下数字音乐技术的基本原理。

  一、前提概要

  现在针对一些数字化音乐教学的需要,已经提出了基于VisualBaisc环境开发五线谱作曲工具的可行性,并且还对其中的关键问题以及技术原理这两个方面给出了一个具体的解决方法,从而实现了一个基本的可视化作曲工具。从功能上说这还是一个原型系统,在这个基础上面大家还可以进一步的扩展功能,比如说音色选择、多行编辑、乐器选择等等功能。不得不说的就是,这样对于一般音乐教育工作者是具有很好的启发性。

  大家也可以看到一种情况,就是现在在很多的数字化音乐教学过程中都是需要使用到非常多的作曲以及编辑软件的。其实有很多的音乐教育工作者对于怎样开发自己的数字音乐工具非常的感兴趣,然而一般的计算机类书刊对于这种类型的问题介绍以及探讨相对来说还是比较少的。那么小编在这篇教程中主要就是尝试着从这一个领域做一些原理性的研究工作,方便提供给音乐教育工作者以及其他相关的爱好者扩展、发挥,可以起到这个抛砖引玉的作用。那么在这篇教程中,小编就会以业余程序员最为熟悉的开发工具VisualBaisc(VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。)作为平台,开发设计了一个最简单最基本的五线谱编辑工具。另外一个方面,小编还实现了数字音乐的播放、合成、读写以及保存。

  二、设计可视化图形界面

  首先我们要做到就是在VisualBaisc环境中建立一个新的窗体,当我们建立成功以后还要将其进行保存处理。接下来我们就要在窗体中建立工具条以及菜单,为了简单方便起见,小编会使用Option控件组来实现工具条(在这里,我们就需要将风格设置成为Graphical的模式),并且还要将事先已经做好的图标加载到控件上面去。下面的那张图像,呈现出来的就是五线谱作曲工具的主界面。大家在图像中,应该可以看到有两个控件。那么其中的一个Picture1控件就是作为一个可视化编辑工具的客户操作区,第二个Picture2控件中所加载的位图就已经包含了作曲过程中所需要使用到的基本音符。在整一个操作过程中,小编会通过使用位图提取的方式来获取相对应的音符,接着就将其插入到所需要的位置中去。VisualBaisc环境中的设计界面,如下图:

学习使用VisualBaisc6.0实现五线谱作曲工具的方法_VisualBaisc6.0_编程代码_开发工具_课课家

  三、实现五线谱作曲功能

  大家可以看到在工具条上面的五个Option控件构成了一个控件组,我们可以根据Option控件自己本身的特性,其中一个选中的时候,其它的控件就会自动的设置成为非选择项,那么大家在操作起来的时候就会变得非常方便了。当我们在选中其中的一个音符图标以后,就会自动触发相对应的事件。整个事件处理的编程代码,如下图:

整个事件处理的编程代码

  其中Yinfu是一个整型数,还是一个全局变量来的。如果我们想要知道究竟是哪一个音符按钮被选中的话,那么仅仅只需要通过控件组中的索引Index就可以知道了。为了方便大家记录作曲过程中的操作,所以就特意定义了一个二维数组Music,这个二维数组主要的功能就是用来存放数据的。那么光标点取在Picture1客户区中的坐标经过圆整以后,可以作为数组的列和行的序号,数组元素记录所选的音符。在整一个处理过程,我们可以放在Picture1控件的MouseDown事件中进行,具体的编程代码如下图:

Picture1控件的MouseDown事件中

  当应用程序在运行的时候,我们首先要做的就是通过主窗体里面的FormLoad事件在Picture1的客户区绘制出五线谱的五条平行的水平线,那么作曲的人就可以根据不同的音高在相对应的位置进行插入音符的操作了。那么插入音符的过程是通过什么来实现的呢?没错,就是使用到上面的DisplayNotes函数来进行实现的。接下来只要使用Windows系统里面的API(即应用程序接口,就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令)函数Bitblt所具有的内存数据传送的功能把Picture2中位图的一部分提取出来并且还要按照一定的变换以后插入到Picture1的客户区制定位置。具体的编程代码如下图:

Picture2中位图的一部分

  五线谱作曲工具的最终运行出来的结果,如下图:

五线谱作曲工具的最终运行出来的结果

  小编结语:

  通过这篇编程语言教程,不知道大家是否已经学习使用VisualBaisc6.0实现五线谱作曲工具的方法?其实相对来说,方法还是比较简单的。有兴趣的朋友可以一下来学习一下哟!课课家教育,你的编程天堂。

赞(24)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程