我不爱音乐 But 想开始写音乐

自从ㄚ琪发现Java的JavaSound API的伟大功能之后,开始想说了解乐谱可能是件有趣的事了,就继续往这方面找资讯,没多久又看到JFugue这个API,这个API可说是提供音乐程式设计的开源 Java API,真好,有原始码可以看说,不过这不是重点,重点是他没有JavaSound API的复杂,JFugue 让撰写音乐程式更轻松,例如下例:

Player player = new Player();
player.play("C D E F G A B");

ㄚ琪一看到这,这不就是ㄚ桀再唱诗班教乐理时的符号吗?说是符号是因为ㄚ琪完全看不懂,什么乐谱Do Re Mi只听过,但是混杂在一起看不懂,更不用谈说Do Re Mi转到这种A B C又是怎样的转法,也不懂,我只会跟着唱诗班看歌词唱四部,其它完全都不懂,但是在程式这里看到似曾相似的符号,就觉得好好玩,就很想抽空玩玩这个API,这个API有很多的功能,让ㄚ琪简单说一说:

  • Music Strings可以让你指定音符、和弦、乐器、乐曲等等。
  • 音乐可以设定在执行时演奏或是储存起来然后用MIDI档案来开启。
  • 音乐可以从外接装置:像是键盘、混音器等等,送出或是接收。
  • 音乐的格式可以用有趣的方式转换及处理
  • 支援microtonal musicintuitive rhythm tracks、anticipating musical events
  • 其他音乐的解析器跟描绘器可以容易地整合到JFugue架构中

JFugue是理想的执行音乐产生的应用程式,像是:

  • Algorithmic(准则音乐)、generative(衍生式音乐)、aleatoric(机率音乐),或 evolutionary (互动式演化算法)等音乐
  • 音乐的编辑、beat boxes(节拍盒), drum machines(鼓类乐器)
  • 爵士乐的即兴演奏、mimicking classical composers(模仿古典作曲家)、人工智慧音乐
  • Procedural synthesis(程序合成)、virtual instruments(虚拟乐器)、互动式软体玩具
  • 动态心情设定、adaptive music(适应性音乐)根据游戏状况的音乐、需要音乐技巧的游戏
  • 还有很多的应用程式,就看你的想像有多少就有多少!
  • 使用JFugue是鼓励未来的程式设计师,用音乐理论及作品来做实验。