用Java JFugue进行快速音乐编程

ZDNet软件频道 时间:2006-09-12 作者:Builder |  我要评论()
本文关键词:javatrend
JFugue是一个用于音乐作曲的Java API。和其它的音乐API不同,它能够让您用数据字符串来指定音符、乐器、和弦,以及其它音乐数据,而不需要进行底层的MIDI操控。

JFugue是一个用于音乐作曲的Java API。和其它的音乐API不同,它能够让您用数据字符串来指定音符、乐器、和弦,以及其它音乐数据,而不需要进行底层的MIDI操控。它和其它快速应用程序开发环境类似,只不过是专门用于音乐编程的。在JFugue环境里,音乐编程现在相对简单,您不一定需要了解音乐理论知识;您可以在Java应用程序正在运行的时候用JFugue来演奏音乐,或者把音乐保存为MIDI文件。

列表A向您显示了一个演奏音阶中乐符的简单JFugue应用程序(example1.java):

列表A
importorg.JFugue.*;
public class Example1
{
        public static void main(String[] args)
        {
                Player player = new Player();
                Pattern pattern = new Pattern("C D E F G A B");
                player.play(pattern);
                System.exit(0);
        }
}

音乐字符串

JFugue使用了“音乐字符串(Music String)”的概念——它用来指定音符、乐器变化,以及演奏音乐所需要的其它数据。这个音乐字符串是一个由字符组成的文字串,其中的每一组字符都代表着一条音乐命令。音乐命令可以是下面几种类型中的一种:

  • Notes和chords——用来指定将要演奏的音符或者和弦,以及音值;
  • Tempo——用来指定乐曲的速度;
  • Voice——用来表示音符演奏的声部;
  • Instrument change——用来更换演奏音符的乐器或者音色;
  • Controller messages——用来设置MIDI控制器事件,例如平衡等;
  • Variables——用来定义其它命令所使用的值。

现在就让我们来看看这些命令吧。

Notes您可以用#和b字符分别表示一个音符是升半音还是降半音。除了用音符字母来指定音符之外,还有两种其它的方式来指定音符。一个是使用“音符值(note value)”,它是一个表示音符的数值。MIDI有128个音符,编号是从0到127。第60号音符是Middle-C。要指定音符值,就要在一个方括号里加上数值,比如[60]。第二种方式是使用“打击乐器名(percussion name)”。在MIDI里,第10个声部(Voice 9,声部的编号从0开始)被保留给打击乐器。在这个声部,您可以演奏多种不同的打击乐器声音,而且您可以通过在方括号里指定打击乐器名来表示它们,例如[Hi_Bongo]。

OctaveMIDI能够演奏超过10个八度音阶的音符。要表示八度音阶,就要使用数字0到9。例如,有一个位于第6个八度音阶的A音符,它就要被表示为A6。如果您没有指定八度音阶,那么默认的音阶是Octave 5。

DurationDuration用来表示音符演奏的音值。如果您不输入音值,那么默认的就是1/4个音符。下面这些值都是允许的:全音值(“w”)、半音值(“h”)、1/4音值(“q”)、1/8(“i”)、1/16(“s”)、1/32(“t”)、1/64(“x”)和1/128音值(“n”)。您可以通过在音值字符后面加上一个点(“.”)来表示一个点音值。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134