コンテンツクリエイターのための
著作権フリー音楽クリップ生成システム

FMC3 (Free Music Clip for Creative Common)
「えふ・えむ・しーきゅーぶ」

2005-2006 produced by Yoichi Nagashima (ASL)


概要

FMC3とは

FMC3(Free Music Clip for Creative Common、発音は「えふ・えむ・しーきゅーぶ」)とは、 FLASHやショートムービーなどのコンテンツを制作するクリエータ/デザイナが、 著作権について心配することなく音楽トラックの素材として自由に利用できる、 「コンテンツクリエイター共同体のためのフリー音楽クリップ」の事です。
今回、2005年上期
IPA 未踏ソフトウェア創造事業 (竹林PM) に採択・助成され、多数のフリー音楽クリップを生成するシステムを開発する機会を得ました。 これに感謝し、未踏プロジェクト採択テーマの目的でもあるコンテンツデザインの普及のため、 FMC3生成プログラムをソースごとフリー公開するとともに、 サンプル集(FMC3、および活用したFLASH作品集)を公開いたします。

このサイトの構成

とりあえずFMC3を聞いてみたい、実際にこれを使ったFLASHを見てみたい、という人は、 「まずはサンプル」へどうぞ。 MP3ファイルをクリックして音楽を聞いたり、FLASHファイルをクリックして鑑賞してみて下さい。

FLASHやショートムービーなどのコンテンツを制作するクリエータ/デザイナで、 FMC3をコンテンツのサウンドトラックとして実際に使ってみたい人は、 (1)「サンプルFMC3を使う」へどうぞ。

サンプルから選ぶより、生成プログラムをダウンロード/インストールして、 自分の手元でどんどんオリジナルのFMC3を作ってみたい、という人は (2)「自分の手元でFMC3を生成する」へどうぞ。 このフリーソフトはMacintosh(OSX)版と、WindowsXP版(ただし若干の外付け装置が必要)とがあります。

自動「お任せ」生成されたFMC3そのままでは飽き足らず、 「テンポ」「音色」「バランス」「ニュアンス」「表現」などをアレンジしたい、という人は (3)「FMC3でのアレンジ」へどうぞ。

作曲やアレンジに興味があり、生成されたFMC3のMP3サウンドそのままでは飽き足らず、 より本格的にMIDIデータをアレンジしたりサウンドにエフェクトを加えたり、とさらに仕上げたい人は (4)「FMC3をさらにアレンジする」へどうぞ。

たった100文字で全てを表現するFMC3パラメータをメイルなどで交換して、 音楽クリップの輪を広げたい人は (5)「FMC3パラメータを交換する」へどうぞ。

FMC3の音楽的な解説資料としては、 「FMC3パラメータ解説とFMC3生成アルゴリズム詳解」 があります。音楽理論や音楽情報処理プログラミングなどに興味のある人はどうぞ。

どうしてFMC3は著作権についてまったく心配することなく音楽トラックの素材として自由に利用できるのか、 について知りたい人は、 「著作権フリーの理由」へどうぞ。

FMC3に関連した標準MIDIファイル操作のためのユーティリティ集として、 「FMC3パラメータ埋込み」「FMC3パラメータ抽出」「MIDIファイル16進ダンプ」について知りたい人は、 「FMC3ユーティリティ」へどうぞ。

FMC3の開発に関連した音楽情報科学関係などの情報(リンク)もまとめましたので、興味のある人は、 「参考資料/リンク」へどうぞ。

作曲やプログラミングに興味があり、FMC3生成システムのソースを読んで、 これを改良改造したいという奇特な人は、 資料「FMC3パラメータ解説とFMC3生成アルゴリズム詳解」とともに、 「FMC3生成プログラムを改良改造したい人へ」、 そして「ソースプログラム」へどうぞ。


まずはサンプル

スタイル MP3サウンド FMC3パラメータ* 標準MIDIファイル FLASH等作品例 作家名
16beat ICMC1999.mp3 ICMC1999.txt ICMC1999.mid Movie(MP4)
Web(Shockwave)
YN
shuffle ICMC2000.mp3 ICMC2000.txt ICMC2000.mid Movie(MP4)
Web(Shockwave)
YN
shuffle NIME03.mp3 NIME03.txt NIME03.mid Movie(MP4)
Web(Shockwave)
YN
8beat NY2003.mp3 NY2003.txt NY2003.mid Movie(MP4)
Web(Shockwave)
YN
16beat ICMC2003.mp3 ICMC2003.txt ICMC2003.mid Movie(MP4)
Web(Shockwave)
YN
8beat Louvre2004.mp3 Louvre2004.txt Louvre2004.mid Movie(MP4)
Web(Shockwave)
YN
shuffle Orsay2004.mp3 Orsay2004.txt Orsay2004.mid Movie(MP4)
Web(Shockwave)
YN
16beat ICMC1998.mp3 ICMC1998.txt ICMC1998.mid Movie(MP4)
Web(Shockwave)
YN
shuffle Paris2001.mp3 Paris2001.txt Paris2001.mid Movie(MP4)
Web(Shockwave)
YN
8beat Kassel.mp3 Kassel.txt Kassel.mid Movie(MP4)
Web(Shockwave)
YN
16beat MMroom.mp3 MMroom.txt MMroom.mid Web(Shockwave) YN
8beat body0803.mp3 body0803.txt body0803.mid body0803.swf gon
shuffle body1217.mp3 body1217.txt body1217.mid body1217.swf gon
16beat body1610.mp3 body1610.txt body1610.mid BODY1610.SWF gon
8beat nagasm001.mp3 nagasm001.txt nagasm001.mid sample1.swf YN
16beat 0032-16.mp3 0032-16.txt 0032-16.mid animalweight.swf gon
16beat 0077-16.mp3 0077-16.txt 0077-16.mid animalgun.swf gon
16beat body1602.mp3 body1602.txt body1602.mid animalgraph.swf gon
8beat nagasm004.mp3 nagasm004.txt nagasm004.mid    
8beat nagasm007.mp3 nagasm007.txt nagasm007.mid    
8beat nagasm010.mp3 nagasm010.txt nagasm010.mid    
8beat nagasm013.mp3 nagasm013.txt nagasm013.mid    
8beat nagasm016.mp3 nagasm016.txt nagasm016.mid    
8beat nagasm019.mp3 nagasm019.txt nagasm019.mid    
8beat nagasm022.mp3 nagasm022.txt nagasm022.mid    
8beat nagasm025.mp3 nagasm025.txt nagasm025.mid    
8beat nagasm027.mp3 nagasm027.txt nagasm027.mid    
8beat nagasm030.mp3 nagasm030.txt nagasm030.mid    
shuffle nagasm002.mp3 nagasm002.txt nagasm002.mid    
shuffle nagasm005.mp3 nagasm005.txt nagasm005.mid    
shuffle nagasm008.mp3 nagasm008.txt nagasm008.mid    
shuffle nagasm011.mp3 nagasm011.txt nagasm011.mid    
shuffle nagasm014.mp3 nagasm014.txt nagasm014.mid    
shuffle nagasm017.mp3 nagasm017.txt nagasm017.mid    
shuffle nagasm020.mp3 nagasm020.txt nagasm020.mid    
shuffle nagasm024.mp3 nagasm024.txt nagasm024.mid    
shuffle nagasm029.mp3 nagasm029.txt nagasm029.mid    
16beat nagasm003.mp3 nagasm003.txt nagasm003.mid    
16beat nagasm006.mp3 nagasm006.txt nagasm006.mid    
16beat nagasm009.mp3 nagasm009.txt nagasm009.mid    
16beat nagasm012.mp3 nagasm012.txt nagasm012.mid    
16beat nagasm015.mp3 nagasm015.txt nagasm015.mid    
16beat nagasm018.mp3 nagasm018.txt nagasm018.mid    
16beat nagasm021.mp3 nagasm021.txt nagasm021.mid    
16beat nagasm023.mp3 nagasm023.txt nagasm023.mid    
16beat nagasm026.mp3 nagasm026.txt nagasm026.mid    
16beat nagasm028.mp3 nagasm028.txt nagasm028.mid    
8beat body0801.mp3 body0801.txt body0801.mid    
8beat body0805.mp3 body0805.txt body0805.mid    
8beat body0806.mp3 body0806.txt body0806.mid    
8beat body0811.mp3 body0811.txt body0811.mid    
8beat body0815.mp3 body0815.txt body0815.mid    
8beat body0819.mp3 body0819.txt body0819.mid    
shuffle body1204.mp3 body1204.txt body1204.mid    
shuffle body1207.mp3 body1207.txt body1207.mid    
shuffle body1212.mp3 body1212.txt body1212.mid    
shuffle body1218.mp3 body1218.txt body1218.mid    
shuffle body1220.mp3 body1220.txt body1220.mid    
16beat body1608.mp3 body1608.txt body1608.mid    
16beat body1609.mp3 body1609.txt body1609.mid    
16beat body1613.mp3 body1613.txt body1613.mid    
16beat body1614.mp3 body1614.txt body1614.mid    
16beat body1616.mp3 body1616.txt body1616.mid    
8beat 90sec0801.mp3 90sec0801.txt 90sec0801.mid    
shuffle 90sec1201.mp3 90sec1201.txt 90sec1201.mid    
16beat 90sec1601.mp3 90sec1601.txt 90sec1601.mid    
8beat 90sec0802.mp3 90sec0802.txt 90sec0802.mid    
shuffle 90sec1202.mp3 90sec1202.txt 90sec1202.mid    
16beat 90sec1602.mp3 90sec1602.txt 90sec1602.mid    
8beat 90sec0803.mp3 90sec0803.txt 90sec0803.mid    
shuffle 90sec1203.mp3 90sec1203.txt 90sec1203.mid    
16beat 90sec1603.mp3 90sec1603.txt 90sec1603.mid    
8beat 90sec0804.mp3 90sec0804.txt 90sec0804.mid    
shuffle 90sec1204.mp3 90sec1204.txt 90sec1204.mid    
16beat 90sec1604.mp3 90sec1604.txt 90sec1604.mid    
8beat 90sec0805.mp3 90sec0805.txt 90sec0805.mid    
shuffle 90sec1205.mp3 90sec1205.txt 90sec1205.mid    
16beat 90sec1605.mp3 90sec1605.txt 90sec1605.mid    
8beat 90sec0806.mp3 90sec0806.txt 90sec0806.mid    
shuffle 90sec1206.mp3 90sec1206.txt 90sec1206.mid    
16beat 90sec1606.mp3 90sec1606.txt 90sec1606.mid    
8beat 90sec0807.mp3 90sec0807.txt 90sec0807.mid    
shuffle 90sec1207.mp3 90sec1207.txt 90sec1207.mid    
16beat 90sec1607.mp3 90sec1607.txt 90sec1607.mid    
8beat 120sec0801.mp3 120sec0801.txt 120sec0801.mid    
shuffle 120sec1201.mp3 120sec1201.txt 120sec1201.mid    
16beat 120sec1601.mp3 120sec1601.txt 120sec1601.mid    
8beat 120sec0802.mp3 120sec0802.txt 120sec0802.mid    
shuffle 120sec1202.mp3 120sec1202.txt 120sec1202.mid    
16beat 120sec1602.mp3 120sec1602.txt 120sec1602.mid    
8beat 120sec0803.mp3 120sec0803.txt 120sec0803.mid    
shuffle 120sec1203.mp3 120sec1203.txt 120sec1203.mid    
16beat 120sec1603.mp3 120sec1603.txt 120sec1603.mid    
8beat 120sec0804.mp3 120sec0804.txt 120sec0804.mid    
shuffle 120sec1204.mp3 120sec1204.txt 120sec1204.mid    
16beat 120sec1604.mp3 120sec1604.txt 120sec1604.mid    
8beat 120sec0805.mp3 120sec0805.txt 120sec0805.mid    
shuffle 120sec1205.mp3 120sec1205.txt 120sec1205.mid    
16beat 120sec1605.mp3 120sec1605.txt 120sec1605.mid    
8beat 120sec0806.mp3 120sec0806.txt 120sec0806.mid    
shuffle 120sec1206.mp3 120sec1206.txt 120sec1206.mid    
16beat 120sec1606.mp3 120sec1606.txt 120sec1606.mid    
8beat 120sec0807.mp3 120sec0807.txt 120sec0807.mid    
shuffle 120sec1207.mp3 120sec1207.txt 120sec1207.mid    
16beat 120sec1607.mp3 120sec1607.txt 120sec1607.mid    
8beat 0001-08.mp3 0001-08.txt 0001-08.mid    
16beat 0002-16.mp3 0002-16.txt 0002-16.mid    
shuffle 0003-12.mp3 0003-12.txt 0003-12.mid    
shuffle 0004-12.mp3 0004-12.txt 0004-12.mid    
8beat 0005-08.mp3 0005-08.txt 0005-08.mid    
shuffle 0006-12.mp3 0006-12.txt 0006-12.mid    
16beat 0007-16.mp3 0007-16.txt 0007-16.mid    
shuffle 0008-12.mp3 0008-12.txt 0008-12.mid    
shuffle 0009-12.mp3 0009-12.txt 0009-12.mid    
16beat 0010-16.mp3 0010-16.txt 0010-16.mid    
16beat 0011-16.mp3 0011-16.txt 0011-16.mid    
16beat 0012-16.mp3 0012-16.txt 0012-16.mid    
8beat 0013-08.mp3 0013-08.txt 0013-08.mid    
16beat 0014-16.mp3 0014-16.txt 0014-16.mid    
shuffle 0015-12.mp3 0015-12.txt 0015-12.mid    
shuffle 0016-12.mp3 0016-12.txt 0016-12.mid    
8beat 0017-08.mp3 0017-08.txt 0017-08.mid    
8beat 0018-08.mp3 0018-08.txt 0018-08.mid    
shuffle 0019-12.mp3 0019-12.txt 0019-12.mid    
8beat 0020-08.mp3 0020-08.txt 0020-08.mid    
shuffle 0021-12.mp3 0021-12.txt 0021-12.mid    
16beat 0022-16.mp3 0022-16.txt 0022-16.mid    
16beat 0023-16.mp3 0023-16.txt 0023-16.mid    
shuffle 0024-12.mp3 0024-12.txt 0024-12.mid    
shuffle 0025-12.mp3 0025-12.txt 0025-12.mid    
16beat 0026-16.mp3 0026-16.txt 0026-16.mid    
shuffle 0027-12.mp3 0027-12.txt 0027-12.mid    
shuffle 0028-12.mp3 0028-12.txt 0028-12.mid    
8beat 0029-08.mp3 0029-08.txt 0029-08.mid    
shuffle 0030-12.mp3 0030-12.txt 0030-12.mid    
16beat 0031-16.mp3 0031-16.txt 0031-16.mid    
8beat 0033-08.mp3 0033-08.txt 0033-08.mid    
8beat 0034-08.mp3 0034-08.txt 0034-08.mid    
8beat 0035-08.mp3 0035-08.txt 0035-08.mid    
shuffle 0036-12.mp3 0036-12.txt 0036-12.mid    
8beat 0037-08.mp3 0037-08.txt 0037-08.mid    
shuffle 0038-12.mp3 0038-12.txt 0038-12.mid    
16beat 0039-16.mp3 0039-16.txt 0039-16.mid    
8beat 0040-08.mp3 0040-08.txt 0040-08.mid    
16beat 0041-16.mp3 0041-16.txt 0041-16.mid    
shuffle 0042-12.mp3 0042-12.txt 0042-12.mid    
16beat 0043-16.mp3 0043-16.txt 0043-16.mid    
16beat 0044-16.mp3 0044-16.txt 0044-16.mid    
16beat 0045-16.mp3 0045-16.txt 0045-16.mid    
8beat 0046-08.mp3 0046-08.txt 0046-08.mid    
16beat 0047-16.mp3 0047-16.txt 0047-16.mid    
8beat 0048-08.mp3 0048-08.txt 0048-08.mid    
shuffle 0049-12.mp3 0049-12.txt 0049-12.mid    
8beat 0050-08.mp3 0050-08.txt 0050-08.mid    
16beat 0051-16.mp3 0051-16.txt 0051-16.mid    
16beat 0052-16.mp3 0052-16.txt 0052-16.mid    
16beat 0053-16.mp3 0053-16.txt 0053-16.mid    
8beat 0054-08.mp3 0054-08.txt 0054-08.mid    
16beat 0055-16.mp3 0055-16.txt 0055-16.mid    
8beat 0056-08.mp3 0056-08.txt 0056-08.mid    
shuffle 0057-12.mp3 0057-12.txt 0057-12.mid    
shuffle 0058-12.mp3 0058-12.txt 0058-12.mid    
16beat 0059-16.mp3 0059-16.txt 0059-16.mid    
8beat 0060-08.mp3 0060-08.txt 0060-08.mid    
8beat 0061-08.mp3 0061-08.txt 0061-08.mid    
16beat 0062-16.mp3 0062-16.txt 0062-16.mid    
16beat 0063-16.mp3 0063-16.txt 0063-16.mid    
shuffle 0064-12.mp3 0064-12.txt 0064-12.mid    
8beat 0065-08.mp3 0065-08.txt 0065-08.mid    
8beat 0066-08.mp3 0066-08.txt 0066-08.mid    
shuffle 0067-12.mp3 0067-12.txt 0067-12.mid    
shuffle 0068-12.mp3 0068-12.txt 0068-12.mid    
16beat 0069-16.mp3 0069-16.txt 0069-16.mid    
8beat 0070-08.mp3 0070-08.txt 0070-08.mid    
16beat 0071-16.mp3 0071-16.txt 0071-16.mid    
shuffle 0072-12.mp3 0072-12.txt 0072-12.mid    
8beat 0073-08.mp3 0073-08.txt 0073-08.mid    
8beat 0074-08.mp3 0074-08.txt 0074-08.mid    
16beat 0075-16.mp3 0075-16.txt 0075-16.mid    
8beat 0076-08.mp3 0076-08.txt 0076-08.mid    
8beat 0078-08.mp3 0078-08.txt 0078-08.mid    
8beat 0079-08.mp3 0079-08.txt 0079-08.mid    
16beat 0080-16.mp3 0080-16.txt 0080-16.mid    
shuffle 0081-12.mp3 0081-12.txt 0081-12.mid    
8beat 0082-08.mp3 0082-08.txt 0082-08.mid    
shuffle 0083-12.mp3 0083-12.txt 0083-12.mid    
8beat 0084-08.mp3 0084-08.txt 0084-08.mid    
shuffle 0085-12.mp3 0085-12.txt 0085-12.mid    
スタイル MP3サウンド FMC3パラメータ* 標準MIDIファイル FLASH作品例 作家名
* 「FMC3パラメータ」ファイル(*****.txt) は110バイトのplain textファイルで、 先頭に「NAGASM2005」という予約文字列があり、これに続く100文字が、 それぞれの音楽クリップを生成したFMC3パラメータとなっています。 このたった100文字により、元のFMC3を復元して、 さらに"Advanced Control Panel"等で再アレンジする事も可能な、 いわば「圧縮されたFMC3音楽生成情報」です。

使い方(1) サンプルFMC3を使う

FLASHのサウンドトラックとしてFMC3を使うのはとても簡単です。 「まずはサンプル」にある「MP3サウンド」 というのをクリックして、気に入ったものを手元にダウンロードして使って下さい。

あくまで希望ですが、制作したFLASHの冒頭か最後に、 音楽素材はFMC3によるものだ、 という「music : FMC3」というようなキャプション、 そして「http://suac.net/FMC3/」というリンクなどを入れていただけると、 とても嬉しいです。表記は「FMC3」でも結構です。

あくまで希望ですが、FMC3をサウンドトラックに使用したFLASH作品が出来た場合には、 Webサーバに置いて、

    • FLASHのSWFファイルの置かれたURL
    • FMC3のMP3ファイルの置かれたURL
を、「そのFMC3を生成したパラメータ」(100文字の文字列)とともにメイルにて、 長嶋までお知らせいただけると幸いです。 このサイトの上記の「サンプル」のリストのトップに加えて、活用例として紹介したいと思います。(^_^)

使い方(2) 自分の手元でFMC3を生成する

FMC3生成ソフトウェアのダウンロード
FMC3生成ソフトウェアの推奨環境として、ここではMacOSX(10.3.9以降)版を中心に紹介します。 まず最初に、こちら からダウンロードして解凍して下さい。 Stuffitの解凍でトラブルがあった場合には、MacOSXでZIP圧縮したこちら を試して下さい(ZIPですがWindows用ではありません)。 Windows XP版の場合には、こちら からダウンロードして解凍して下さい。 フォルダの中にあるファイル類は移動・消去などしないでそのままにして下さい。 フォルダの中にある「FMC3***」という実行プログラム(拡張子 *.app / *.exe)をダブルクリックすると起動します。 これ以降、この「FMC3生成ソフトウェア」を単に「FMC3」と呼びます。

FMC3を起動する
FMC3を起動すると、以下のような画面になります。 これがFMC3のメインスクリーンで、これで全て「お任せ」でどんどん音楽クリップを生成します。

Windows XP版の場合には以下のようになります。この画面例では後述のAdvanced Control Panelも開いています。

MIDI環境の設定
FMC3を使うための、MIDI環境の設定を行います。 「File」メニューの中の「Midi Setup...」というのを選びます。

出て来たMIDI Setup画面の中を、下図のように指定します。 クリックしたり、ドラッグすれば簡単に出来ます。「a」「b」に注意して下さい。 "IAC Driver IAC Bus 1"という項目が並んでいない場合には、 いちばん左下の「System Setup...」というボタンで、 システム環境設定メニューから登録(「有効」にマーク)して下さい。 この環境設定は最初に一度だけ行えば、設定状態は記憶されます。

Windows XPの場合
Mac OSXは「内部MIDIバス」を持つのでこれでOKですが、Windows XP版の場合にはOSにこの機能がありませんので、 以下のような対応が必要になります。 まず、「USB-MIDIインターフェース」を用意して下さい。 Windows XP用のドライバに対応していれば何でもOKです。 ここでは、「Roland UM-2」の例を紹介します。 ダウンロードフォルダの中に、Roland UM-2対応のUSBドライバのインストーラもありますが、 基本的にはメーカのサイトから最新版を入手して下さい。 そして、ドライバを指示に従ってインストールして、MIDIインターフェースをパソコンに接続して、 その「MIDI IN」と「MIDI OUT」とを、MIDIケーブルで繋いで下さい。 これで準備は完了です。 下図のように、Mac OSX版とほぼ同じように、 MIDIインターフェースの入出力(ここでの例ではUM-2の2系列のうちのNo.1)を「MIDI port a」と設定し、 出力としてさらにパソコンの内蔵音源を「MIDI port b」と設定して、他は「ナシ」とします。 Windows XP版ではこの「入出力をケーブルで繋いだMIDIインターフェースを外付けする」必要がある点だけが、 Mac OSX版との違いで、FMC3のための他のセッティングや機能は全て同等です。

OverDriveの設定
「Edit」メニューの中の「Overdrive」という項目を、以下のように「チェックが入った状態」にします。 これがOFF(チェック無し)だと、音楽がモタった演奏になります。 この設定は記憶されない(起動中のみ有効)ので、FMC3を起動した時には必ず確認して下さい。 この設定をON(チェック有り)しているのに音楽がモタった演奏になる場合には、 残念ながらマシンパワーの限界(^_^;)ですので、新しいパソコンで試してみて下さい。

ステップ(1) - スタイルを指定
まず最初に、画面に「1st : Style」とあるボタンをクリックします。 これで、36通りのいずれかのスタイルパラメータがランダムに選ばれます。 表示される数字(0-35)は、大きいほどベースのフレーズが複雑な音から選ばれます。 「8ビート」「シャッフル」「16ビート」のどのスタイルにしたいかが決まっている場合には、 この数字の横のスイッチで指定することもできます。 このスタイルを選択するたびに、「テンポ」「音色」その他の演奏パラメータも、 システムが適当な値にランダム設定します。

ステップ(2) - 「尺」を指定
次に、画面に「2nd : Duration」とあるブロックを設定します。 「Intro」は、ゼロだと無し、1か2だと、1小節ないし2小節のイントロが付きます。 「duration」とは音楽クリップ本体部分の長さで、 30秒・45秒・60秒・90秒・120秒・180秒の6種類のいずれかを指定します。 なお、実際には音楽演奏の小節単位なので、これは「およその時間」です。 「Ending」のボタンに「×」印があれば(クリックでON/OFF)、 最後に「お任せ」のエンディングが付きます。

ステップ(3) - 自動作曲開始 !
最後に、画面に「3rd : Compose」とあるボタンをクリックします。 これで、システムは他のFMC3パラメータをランダムに生成して、 さらにその結果をそのまま聞くことができます。 画面には刻々とコードネームが表示されます。 演奏が気に入らない場合には、スペースキーでストップできます。

ステップ(4) - 微調整とリプレイ
音楽クリップのもっとも重要なキャラクターである「テンポ」とそれぞれのパートの「音色」は、 演奏していない時に、下図のスライダとボタンで自由に変更することができます。 この変更結果を聞く場合には、画面の「Replay」ボタンをクリックして、 気に入るまで何度でも変更(アレンジ)して試すことができます。 具体的に「テンポ」を変えてみたサンプルが 「FMC3でのアレンジ」にあります。 なお、「Compose」ボタンをクリックすると、ドラムやベースのパターンその他、 作曲の多くのパラメータがまた新たにランダム生成されてしまうので注意して下さい。

All Windows Activeの設定
全て「お任せ」でFMC3を作る場合にはこれは省略可能です。 次の "Advanced Mode" を使いたい場合には、 「Window」メニューの中の「All Windows Active」という項目を、以下のように「チェックが入った状態」にします。

"Advanced Mode"
メインスクリーンの下部にある「(Advanced Control Panel)」という部分をクリックすると、 下図のように新しいウインドウがさらに出て来ます。 これは、演奏していない時に、FMC3の音楽的要素(ニュアンス)のパラメータを色々と変更(アレンジ)できるパネルです。 具体的に「バランス」「ニュアンス」「表現」などを変えてみたサンプルが 「FMC3でのアレンジ」にあります。

FMC3をMIDIファイルとして保存する
試しに生成してみたFMC3が気に入った場合には、 メインスクリーンの右下にある「save SMF」というボタンをクリックします。 以下のように「保存するファイル名と場所」を聞いてきますので、 Formatを「MIDI file」に、ファイル拡張子を「.mid」にして保存します(最初だけ「Save As : 」の中の拡張子が「.txt」となっている場合があるので注意)。 保存されたMIDIファイルをダブルクリックするかQuickTimeプレーヤにドラッグドロップすれば、QuickTimeプレーヤですぐに再生(音質良好)できます。 これをMP3サウンドファイルにする方法は、次の「使い方(3)」の最初のところにあります。 なお、「FMC3パラメータ」ファイルは、 演奏を行うと必ず "nagasm.txt" という名前で更新(上書き)保存されますので、 ここで保存したMIDファイルと名前を揃えておくと、後で混乱しないでしょう。
MacOSXの場合、FMC3アプリケーションを起動して自動作曲させた1回目は、 まだ内部音源などのUnixプロセスが起動準備完了していないために、 音楽がスタートするまでに待たされたり、レコーディング結果を「Save As :」でMIDIファイルに書き出しても、 冒頭に空白が入ったり長さが異常に短かったりします。 これは、FMC3アプリを終了せずに、さらに「Compose !」で自動作曲をしてみると、 2回目あたりから正常になるようです。 いわば、生ビールサーバーの最初の1杯目は泡ばっかりなので捨てるのと同じで(^_^;)、 最初の演奏はダミーで捨てて、その後に本番の美味しいものをお楽しみ下さい。


使い方(3) FMC3でのアレンジ

FMC3で出来るアレンジ
自動で「お任せ」生成されたFMC3のデータそのままでは飽き足らず、 「テンポ」「音色」「バランス」「ニュアンス」「表現」などをアレンジしたい、 という人のために、FMC3が持っているアレンジ機能について、 具体的なサウンドサンプルとともに紹介します。 まず最初に、適当に自動生成してみた これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) を聞いて下さい。 以下で紹介するサンプルは全て、このイントロ無しの12秒ほどのクリップ(「元サンプル」と呼びます)を使います。 つまり、既に「Compose !」ボタンで自動作曲が完了しているので、 以下で紹介するアレンジ例のサンプルは、全て「元サンプル」から、 パラメータをちょっとだけ変えて「リプレイ」ボタンによってチェックしたものです。 「Compose !」ボタンをクリックすると、ドラムやベースやコードなどが全て新たに自動生成されて、 まったく別の新しい音楽クリップとなります。

テンポを変えてみる
「元サンプル」のテンポは、FMC3メイン画面内のテンポスライダーが「middle」よりやや遅いあたり、 数字として「101BPM」(4分音符が1小節に101個のテンポ)とありました。 そこでテンポを「80BPM」にしてリプレイしてみた(他のパラメータは全てそのまま)のが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。
また、テンポを「123BPM」にしてリプレイしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。ちょっとテンポを変えてもだいぶ雰囲気、イメージは変わります。
他のパラメータは全てそのままで、テンポを最も遅い「50BPM」にしてリプレイしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。また、テンポを最も速い「200BPM」にしてリプレイしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 このように、イメージを変えるためのアレンジの第一歩としては、 「まずテンポをちょっと変えてリプレイ」をお薦めします。

音色を変えてみる
「元サンプル」の音色は、FMC3メイン画面内の「Timbre」(各パートの音色)によれば、
  • ベース - 17. Trombone
  • アルペジオ - 12. Pizzicato Strings
  • コード - 26. Alto Sax
  • ロングトーン - 33. Shakuhachi
となっています。 そこで、他のパラメータは全て「元サンプル」のままで、とりあえずベースの音色を 「4. Slap Bass 1」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。また、ベースパートの音色を試しに 「8. Acoustic Grand Piano」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。FMC3のベースパートは一種のフレーズ演奏ですので、 ピアノにするとまたイメージが大きく変わります。
また、「元サンプル」ではアルペジオパートの音量バランスが小さく自動設定されたようであまり聞こえないようなのでパスして、 ベースを「4. Slap Bass 1」に戻して、 今度はコードパートの音色を「34. Pad(Polysynth)」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。さらにロングトーン(疑似メロディー)パートの音色を「18. Tremolo Strings」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。このように、アレンジの次の一歩としては、 「各パートの音色をいろいろ変えてみてリプレイ」をお薦めします。

ベースの"Duration" - スタカートからレガートまで
ここからは "Advanced Control Panel" を使ってのアレンジとなります。 まず最初は、「Bass Duration」です。 "Duration" というのは、FMC3では「音楽クリップそのものの長さ(尺)」としても使っていますが、 ここでの"Duration"とはMIDIの概念で言えば「ノートONからノートOFFまでの時間」、 つまり「1音ごとの長さ」です。 「元サンプル」から音色を
  • ベース - 4. Slap Bass 1
  • アルペジオ - 12. Pizzicato Strings
  • コード - 34. Pad(Polysynth)
  • ロングトーン - 18. Tremolo Strings
と変更して、やや短かめにあった「Bass Duration」スライダーを左端(もっとも短い)にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 スライダーをほぼ中央の「marcato」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 さらにスライダーを右端(もっとも長い)にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 このように、ベースパートのDurationをいろいろに変えることで、 音楽的「表現」の領域である、スタカート - マルカート - レガート、というアレンジも可能です。

コードパートの表現
"Advanced Control Panel" では、バッキングコードパートのアレンジ項目として
  • Chord Volume
  • Chord Duration
の2つがあります。ドラムとベースの音量は固定なのに対して、相対的なコードパートの音量が変更できます。 「Chord Volume」を目立つように敢えて上げてみて、 さらに違いが判りやすい音色として「元サンプル」から音色を
  • ベース - 4. Slap Bass 1
  • アルペジオ - 12. Pizzicato Strings
  • コード - 4. Percussive Organ
  • ロングトーン - 18. Tremolo Strings
と変更して、コードパートのDurationスライダーを左端(もっとも短い)にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 スライダーをほぼ中央の「marcato」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 さらにスライダーを右端(もっとも長い)にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 このように、コードカッティングパートのDurationをいろいろに変えることで、 音楽的「表現」の領域である、スタカート - マルカート - レガート、というアレンジも可能です。

アルペジオパートの表現
"Advanced Control Panel" では、アルペジオパートのアレンジ項目として
  • Arp. Volume
  • Arp. Interval
  • Arp. Duration
の3つがあります。 ドラムとベースの音量は固定なのに対して、相対的なアルペジオパートの音量が変更できます。 「元サンプル」ではたまたま、ある幅をもってランダムに選ばれる「Arp. Volume」が小さかったので、 ほとんど聞こえません。 そこで他パートの音量バランスをやや下げ、「Arp. Volume」を目立つように敢えて上げてみて、 さらに違いが判りやすい音色として「元サンプル」から音色を
  • ベース - 4. Slap Bass 1
  • アルペジオ - 26. Accordion
  • コード - 4. Percussive Organ
  • ロングトーン - 18. Tremolo Strings
と変更してみた(「Arp. Duration」はかなり長いレガート状態)のが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 そして「Arp. Duration」スライダーをほぼ中央の「marcato」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 さらにスライダーを左端近く、かなり短くしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。
アルペジオパートだけにある「Arp. Interval」とは、アルペジオの1音1音の時間的な間隔です。 「Arp. Duration」を中央付近に戻して、「fast」にあった「Arp. Interval」パラメータを「middle」にしてみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 さらに「Arp. Interval」スライダーを右端近く、かなり長く(slow)してみたのが、 これ (対応するFMC3パラメータファイルは これ、 SMF形式のMIDIファイルは これ) です。 このアルペジオの間隔は音符の長さ(テンポとともに変化)に関係なく、絶対的な時間として設定されます。 このように、アルペジオパートのパラメータいろいろに変えることで、音楽的「表現」領域のアレンジが可能です。

ロングノート(疑似メロディー)パート
ロングノート(疑似メロディー)パートについては、メイン画面に「音色」、 Advanced Control Panelに「Melo Volume」というスライダーがあり、 固定のドラムとベースに対する相対的な音量が変更できます。


使い方(4) FMC3をさらにアレンジする

MIDファイル → AIFF/WAVファイル → MP3ファイル
FMC3がテスト演奏のたびに常に生成するのは、100文字パラメータファイル "nagasm.txt" だけです。 ここで「save SMF」ボタンにより、任意の名前の標準MIDIファイル "*****.MID" と保存できます。 これを、FLASHでサウンドトラックとして取り込むためには、MP3形式のサウンドファイルに変換します。

Macであれば、 QuickTime によって、MIDデータはリバーブ(残響)の加わった高品位のサウンドファイル(AIFF/AIF)に「書き出し」できます。 3000円ですのでProユーザとなりましょう。 AIFFファイルであれば、Macに標準添付されている iTune によって、短時間で一気にMP3ファイルに変換できます。

Windowsの場合にも、「MID」「WAV」「convert」などのタームでサーチすると、 多数のフリーウェアやシェアウェアが提供されています。 例えば、下の Midi2Wav は、任意のMIDIファイル(SMF形式)を入力として、 さらにライン入力やマイク入力などの補助入力をミキサーでミックスしながら、 高品位のWAVサウンドファイルに録音(変換)するというものです。

また、下の MID Converter は、MIDIファイル(SMF形式)を多数同時に指定入力して、 高品位のMP3あるいはWAVサウンドファイルに一括変換する、というものです。 これだと、iTuneなどを使わずに、FLASHに使えるMP3が一発で得られます。

MIDファイルをシーケンサでアレンジする
標準MIDIファイル(****.mid)のデータは、 いわゆる「MIDIシーケンサ」というソフトウェアによって、自在にアレンジできます。 音楽知識があれば、FMC3はアレンジによって飛躍的に拡張できます。 シーケンサはあまりに多いので、自分でお気に入りを探して下さい。 例えば これとか これとか この中のどれかとか これとか これとか この中のどれかとか これとか これとか この中のどれかとか これとか これとか この中のどれかとか これとか これとか この中のどれかとか これとか これとか この中のどれかとか この中のどれかとか などがあります。

MIDIシーケンサにFMC3のMIDデータを取り込んでアレンジすると、 特定のパートをOFFにしたカラオケにしたり、 特定のパートのフレーズを自分のオリジナルに変更したり、 新しいオリジナルのパートを加えたり、 とい事が自在に可能となります。 この場合、出来た音楽データは、FMC3を利用しているので、 100%がこのアレンジャーの著作物である、とは言えません。 素材としての提供、再利用による活用、というのは基本的にFMC3も望んでいることですので、 どこかに「FMC3を利用」とでもクレジットしていただければ嬉しいです。

MIDファイルをハードウェア音源で鳴らす
標準MIDIファイル(****.mid)のデータを「MIDI音源」装置に入力することで、 ソフトウェア音源よりさらに高品位のサウンドを得ることができます。 「電子楽器」「DTM」「シンセサイザー」「ROLAND」「YAMAHA」「KORG」などのタームで検索してみましょう。 ハードウェア音源、さらにエフェクタ装置などで仕上げたサウンド出力をサンプリングすれば、 WAVファイルやAIFFファイルになり、これをMP3ファイルに変換すると、FLASHのサウンドトラックに使えます。


使い方(5) FMC3パラメータを交換する

自分の手元でイケてるFMC3が出来たので友達に送りたい、 という時には、わざわざサウンドファイルにしないで、 たった100文字で全てを表現するFMC3をメイルなどで交換しましょう。 この場合、下図のように、「Compose」ボタンの下にある選択スイッチの右側をクリックして、 「read FMC3」のボタンからの入力を選ぶようにします。 これにより、「Compose」ボタンの自動作曲はスタートしなくなり、 外部に置かれたplain textファイル(FMC3パラメータファイル)を元に、 パラメータを設定して演奏(→アレンジ→再演奏)することができます。 「尺」が希望より短かったFMC3も、この方法でパラメータファイルを読み込むことで、 後で尺を延ばしたりイントロ/エンディングを付けたりできます。 選択スイッチの左側をクリックすると元に戻ります。


著作権フリーの理由

条文は煩雑ですので、本質的に関係していない部分は「・・・」と省略します。

著作権法によれば、 「第一章第一節(目的)第一条  この法律は、著作物・・・に関し著作者の権利・・・を定め、 ・・・もつて文化の発展に寄与することを目的とする」とあります。 ところで FMC3(音楽クリップ)を自動生成するのはプログラムであり、人間ではありません。 これは「第一章第一節(定義)第二条  ・・・二  著作者 著作物を創作する者をいう。・・・」 という定義によれば、「者」すなわち人間ですので、FMC3には著作者が存在しない、という事になります。 存在しない著作者の権利に関して著作権侵害などを心配するのはナンセンスです。
これは「第一章第一節(定義)(保護を受ける著作物)第六条  著作物は・・・この法律による保護を受ける。 一  日本国民・・・の著作物・・・」という部分でも確実です。 長嶋洋一オリジナルの「FMC3(音楽クリップ)自動生成プログラム」は、日本国民ではありません。 何故ならプログラムは日本国憲法が規定する「国民の義務」を果たせないからです(^_^;)。

従って、この生成プログラムの生み出すFMC3は、MIDデータやMP3データの形態だけを見ると、 交響曲やオペラやジャズのアドリブや着メロやカラオケなど、 人間の作曲家/編曲家/演奏家が作り出した音楽著作物と似ていますが、 本質的に、著作権法の対象となり得ません。 このサイトの資料「FMC3パラメータ解説とFMC3生成アルゴリズム詳解」にあるように、FMC3生成プログラムには、 内部に音楽クリップの材料となるような楽曲情報/演奏情報のデータベースを持たず、 全てアルゴリズムでリアルタイム生成するクリーンな構造となっていますので、 過去に多かった、「既存の著作物である楽曲データを切り貼り・組み合わせて楽曲を生成する」というタイプの「自動作曲ソフト」の持つ 著作権的な心配もまったく不要です。 「著作権フリー」と明言する理由は、これに尽きます。

ただし、長嶋洋一が開発した「FMC3生成プログラム」はもちろん、著作物です。 著作物ですが、著作者自身が、配布・利用などはフリーと明言します。 著作権放棄ではなくて、「FMC3生成プログラム」はフリーウェアです。 もし、これを無断で改編して「自分の作ったプログラムだ」などと言う人がいたら、 「そういうのって、とっても淋しい(;_;)」という対応をさせていただきます。 何のクレジット(出典の紹介)も無しに、 FMC3をアレンジ/利用したのに「自分のオリジナル楽曲だ」などと言う人がいたら、 「そういうのって、とっても悲しい(;_;)」という対応をさせていただきます。


FMC3関連ユーティリティ

FMC3関連ユーティリティはMacOSX(10.3.9以降)版でのみ公開しています (Windows版/Uinx版については「ソースプログラム」からC言語ソースを入手して、 適当なコンパイラで作成して下さい)。 まず最初に、こちら からダウンロードして解凍して下さい。「FMCutility」というディレクトリ(フォルダ)が出来ます。 このフォルダの中にあるユーティリティとは、「ターミナル」内で動作する以下の3つです。
  • MIDIファイル16進ダンプユーティリティ "hexdump"
  • 標準MIDIファイルFMC3パラメータ埋込みユーティリティ "NAGASM"
  • FMC3パラメータ抽出ユーティリティ "paramcheck"

FMC3関連ユーティリティは、ターミナル画面内で動作しますので、 起動コマンドなどは全て、Unixコマンドを使います。 最初に、FMC3本体が置かれたディレクトリがカレントディレクトリとなるよう移動して、 ここに関連ユーティリティもコピーしておいて下さい。 ディレクトリの移動、ファイル名の変更、ファイルのコピー/削除なども全てUnixコマンドとなりますので、 必要に応じてmanコマンドなどで参照して下さい。

FMC3ファイル16進ダンプユーティリティ

このツール "hexdump" は標準MIDIファイルに限らず、あらゆるファイルをHEX(16進)表示するものです。 下図の上段のように、Unix(MacOSX)には、同じ名前のHEXダンプツールがあります(単に「hexdump」とすると、 こちらが起動されるので注意)が、本当に16進表示するだけの味気ないものです。 そこで下図の下段のように、先頭に「./」を付けて「./hexdump (target file)」とすると、 見やすくスペーシングしたHEXダンプに加えて、そのデータが文字データだった場合にはテキスト表示するようにしました。 これにより、標準MIDIファイル中にplain text形式で埋め込まれたFMC3パラメータを可視化できます。

下図は、 "sample.mid" という名前の標準MIDIファイルを、このツールでHEXダンプしている様子です。 ファイルの冒頭に「4D 54 68 64 ・・・(MThd...)」という4バイトが見えますが、 これは標準MIDIファイルのヘッダーとして定義されている文字列です。 MIDIについては参考文献などを参照して下さい。

標準MIDIファイルFMC3パラメータ埋込みユーティリティ

このツール "NAGASM" は、標準MIDIファイルの冒頭部分にplain textのFMC3パラメータを埋め込むためのものです。 下図のように、「./NAGASM target_SMF param_TXT」とコマンドを与えると、 "target_SMF"(標準MIDIファイル、拡張子.mid)の中に、param_TXT(FMC3パラメータファイル、 拡張子.txt)の内容を埋め込んで、同じターゲットファイルに上書きします。

下図はこのツールによりFMC3パラメータを埋め込んだ標準MIDIファイルを、 HEXダンプユーティリティによって表示したところです。 FMC3パラメータはMIDI演奏情報の記述とは関係ない付加情報部分と定義して置かれていますので、 普通のMIDIシーケンスソフトなどでも問題なく取り扱うことが出来ます。

FMC3パラメータ抽出ユーティリティ

このツール "paramcheck" は、FMC3パラメータが埋め込まれた標準MIDIファイルから、 パラメータファイルを抽出作成するためのものです。 下図のように、「./paramcheck target_SMF(拡張子.mid)」とコマンドを与えると、 FMC3パラメータファイルが埋め込まれていた場合には、 "nagasm.txt" という予約名のplain textパラメータファイルを(上書き)作成します。 このパラメータはcatコマンドで確認できます。


FMC3パラメータ解説とFMC3生成アルゴリズム詳解

「FMC3パラメータ」ファイル(*****.txt) は110バイトのplain textファイルですが、 この先頭の「NAGASM2005」という予約文字列はフォーマット確認用の形式的なものです。 これに続く100文字が、それぞれの音楽クリップを生成したFMC3パラメータとなっています。 この100文字を、以下のパラメータ解説表では0-99の「パラメータ番号[m]」として定義します。 全てのパラメータの変域は0-35の範囲の整数値(一部、将来の拡張のためのreserved areaを含む)であり、 これを0-9、さらにA-Zの36文字によって表現しています。 *印のパラメータは、自動作曲のたびに0-35の範囲からランダム生成されます。
m 名称 解説
0 Version FMC3生成プログラムのバージョン番号。
1 Revision FMC3生成プログラムのリビジョン番号。変域の関係で35を超えるとVersionが繰り上がる。
2 Ending エンディングのパターン。このパラメータのみFMC3においてランダム生成でなく、 自動作曲のたびにインクリメントされる。36種類のうち24種類を将来の拡張のためにreservedとしているため、 バージョン1では12種類ごとに同じタイプが繰り返される。
3 転調[1] 4小節単位で転調する第1ブロックの基調のoffset[0-11]。 冒頭の場合には最初のコードのroot、2周目以降は直前の第4ブロックの最後のコードのrootに対する相対音程。 価としては0-35のうち12の剰余が有効。*
4 転調[2] 4小節単位で転調する第2ブロックのoffset[0-11]。 第1ブロックの最後のコードのrootに対する相対音程。*
5 転調[3] 4小節単位で転調する第3ブロックのoffset[0-11]。 第2ブロックの最後のコードのrootに対する相対音程。*
6 転調[4] 4小節単位で転調する第4ブロックのoffset[0-11]。 第3ブロックの最後のコードのrootに対する相対音程。*
7 Style 基本となるスタイル。このパラメータを3で割った剰余nにより、「8ビート(n=2)」「シャッフル(n=1)」「16ビート(n=0)」が決定される。このパラメータを3で割った商(0-11)が大きいほど、ベースパターンの候補テーブルが持つスケールが多くのノートによって構成され、ベースのフレーズにテンションや不協和音が含まれる確率が高くなる。
8 Chord[1] m=11のパラメータと合わせて、4小節を単位とするコード進行のパターンを選択する。バージョン1においては全72種のパターンのうち53種が実装されている。*
9 イントロ(3種類) * エンディング(2種類) * Duration(6種類) により、FMC3の「尺」を決定する。このパラメータはランダム生成されない。
10 Tempo 生成されるFMC3のテンポ。m=7のスタイルを選択するたびに、選ばれたスタイルに応じた範囲内の適当なテンポがランダムに設定される。
11 Chord[2] m=8のパラメータと合わせて、4小節コード進行のパターンを選択する。*
12 Bass音色 ベースパートの音色。ベースはMIDIでは2チャンネルに割り当てられている。m=7のスタイルを選択するたびに、MIDI128音色の中でベースに適した36種類の候補から、確率的な重み付けをしつつランダムに選ばれる。
13 アルペジオ音色 アルペジオパートの音色。MIDIでは3チャンネルに割り当てられている。m=7のスタイルを選択するたびに、MIDI128音色の中でアルペジオパートに適した36種類の候補から、確率的な重み付けをしつつランダムに選ばれる。
14 カッティング音色 バッキング・コードパートの音色。MIDIでは4チャンネルに割り当てられている。m=7のスタイルを選択するたびに、MIDI128音色の中でバッキング・コードに適した36種類の候補から、確率的な重み付けをしつつランダムに選ばれる。
15 ロングノート音色 ロングノート・疑似メロディーパートの音色。MIDIでは5チャンネルに割り当てられている。m=7のスタイルを選択するたびに、MIDI128音色の中で疑似メロディー(持続音)に適した36種類の候補から、確率的な重み付けをしつつランダムに選ばれる。
16 LongNote Rhythm[1] ロングノート・疑似メロディーパートの4小節単位のリズムパターンの1小節目。1音目のパターン3種 * 1音目4拍目の有無2種 * 2音目のパターン3種 * 2音目4拍目の有無2種 = 36パターン。 *
17 LongNote Rhythm[2] ロングノート・疑似メロディーパートのリズムパターンの2小節目。*
18 LongNote Rhythm[3] ロングノート・疑似メロディーパートのリズムパターンの3小節目。*
19 LongNote Rhythm[4] ロングノート・疑似メロディーパートのリズムパターンの4小節目。*
20 LongNote Tension[1] ロングノート・疑似メロディーパートの4小節単位のテンション選択パターンの1小節目。バージョン1では2種(minor7th/dominant7th)のコード上のUST(upper structured triad)を含む30パターンの組み合わせを全て(0-29)実装した。 *
21 LongNote Tension[2] ロングノート・疑似メロディーパートの4小節単位のテンション選択パターンの2小節目。*
22 LongNote Tension[3] ロングノート・疑似メロディーパートの4小節単位のテンション選択パターンの3小節目。*
23 LongNote Tension[4] ロングノート・疑似メロディーパートの4小節単位のテンション選択パターンの4小節目。*
24 Bass Duration ベースパートの音の長さDuration(スタッカートやレガートの表現)。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、選ばれたスタイルとテンポに応じた範囲内の適当なベースDurationがランダムに設定される。
25 Chord Volume カッティング・コードパートの音量バランスを、固定されたベースとドラムに対して設定する。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、コードパートの音色とは関係なく適当な範囲のコード音量がランダムに設定される。
26 Chord Duration カッティング・コードパートの音の長さDuration(スタッカートやレガートの表現)。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、選ばれたスタイルとテンポに応じた範囲内の適当なカッティングDurationがランダムに設定される。
27 Arp. Interval アルペジオパートの音同士の時間的間隔。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、選ばれたスタイルとテンポに応じた範囲内の適当なアルペジオ音オンセット時間差(音楽のテンポとは無関係の絶対的時間)がランダムに設定される。
28 Arp. Duration アルペジオパートの音の長さDuration(スタッカートやレガートの表現)。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、選ばれたスタイルとテンポに応じた範囲内の適当なアルペジオ音Durationがランダムに設定される。なおアルペジオパートの音量バランスはm=31に組み込まれている。
29 LongNote Volume ロングノート・疑似メロディーパートの音量バランスを、固定されたベースとドラムに対して設定する。Advanced Control Parameterとして、m=7のスタイルを選択するたびに、ロングノートの音色とは関係なく適当な範囲の疑似メロディー音量がランダムに設定される。
30 LongNote Density ロングノート・疑似メロディーパートを、8小節を単位として、それぞれの小節で演奏するかしないか、という36種類の組み合わせパターン「88 44 22 11 cc 66 33 aa 55 B6 da 9a 9c 9e 9f ee dd bb 77 cd cb c7 ce cf b7 bf bd be e7 eb ec 99 96 94 8c 5a」から設定する。例えばパラメータ「9」のパターンは10番目の「B6」であり、16進数のB6すなわち2進数の「10110110」から8小節のうち1,3,4,6,7小節でだけ演奏する。*
31 Arp. Param アルペジオパートの開始ポイント4種類と、9段階に量子化された相対的な音量バランスを設定する。前者は自動作曲のたびにランダムに、後者はm=7のスタイルを選択するたびに、選ばれたスタイルとテンポに応じた範囲内の適当な範囲からランダムに設定される。
32 Arp. [1] アルペジオパートの4小節単位のパラメータの1小節目。4音コードの転回型4種 * アルペジオ音型9種 = 36パターン。 *
33 Arp. [2] アルペジオパートの4小節単位のパラメータの2小節目。*
34 Arp. [3] アルペジオパートの4小節単位のパラメータの3小節目。*
35 Arp. [4] アルペジオパートの4小節単位のパラメータの4小節目。*
36 Bass [1] m=68のベースDensityパラメータの重み付けのもと、36種類のスケールテーブルからランダムに2小節単位で生成されるベースのフレーズの第1音。m=7のスタイルに応じて選択確率は異なっている。*
37 Bass [2] 2小節単位で生成されるベースのフレーズの第2音。2番目の音といっても、それはm=7のスタイルにより「8ビート(8分音符)」「シャッフル(3連符)」「16ビート(16分音符)」と異なる。*
38 Bass [3] 2小節単位で生成されるベースのフレーズの第3音。*
39 Bass [4] 2小節単位で生成されるベースのフレーズの第4音。*
40 Bass [5] 2小節単位で生成されるベースのフレーズの第5音。*
41 Bass [6] 2小節単位で生成されるベースのフレーズの第6音。*
42 Bass [7] 2小節単位で生成されるベースのフレーズの第7音。*
43 Bass [8] 2小節単位で生成されるベースのフレーズの第8音。*
44 Bass [9] 2小節単位で生成されるベースのフレーズの第9音。m=7のスタイルで「8ビート」の場合には、ここから後ろ8音のパラメータは無効であり、2小節目のパラメータはm=52から再開される。*
45 Bass [10] 2小節単位で生成されるベースのフレーズの第10音。*
46 Bass [11] 2小節単位で生成されるベースのフレーズの第11音。*
47 Bass [12] 2小節単位で生成されるベースのフレーズの第12音。*
48 Bass [13] 2小節単位で生成されるベースのフレーズの第13音。m=7のスタイルで「シャッフル」の場合には、ここから後ろ4音のパラメータは無効であり、2小節目のパラメータはm=52から再開される。*
49 Bass [14] 2小節単位で生成されるベースのフレーズの第14音。*
50 Bass [15] 2小節単位で生成されるベースのフレーズの第15音。*
51 Bass [16] 2小節単位で生成されるベースのフレーズの第16音。*
52 Bass [17] 2小節単位で生成されるベースのフレーズの2小節目の第1音。*
53 Bass [18] 2小節単位で生成されるベースのフレーズの2小節目の第2音。2番目の音といっても、それはm=7のスタイルにより「8ビート(8分音符)」「シャッフル(3連符)」「16ビート(16分音符)」と異なる。*
54 Bass [19] 2小節単位で生成されるベースのフレーズの2小節目の第3音。*
55 Bass [20] 2小節単位で生成されるベースのフレーズの2小節目の第4音。*
56 Bass [21] 2小節単位で生成されるベースのフレーズの2小節目の第5音。*
57 Bass [22] 2小節単位で生成されるベースのフレーズの2小節目の第6音。*
58 Bass [23] 2小節単位で生成されるベースのフレーズの2小節目の第7音。*
59 Bass [24] 2小節単位で生成されるベースのフレーズの2小節目の第8音。*
60 Bass [25] 2小節単位で生成されるベースのフレーズの2小節目の第9音。m=7のスタイルで「8ビート」の場合には、ここから後ろ8音のパラメータは無効である。*
61 Bass [26] 2小節単位で生成されるベースのフレーズの2小節目の第10音。*
62 Bass [27] 2小節単位で生成されるベースのフレーズの2小節目の第11音。*
63 Bass [28] 2小節単位で生成されるベースのフレーズの2小節目の第12音。*
64 Bass [29] 2小節単位で生成されるベースのフレーズの2小節目の第13音。m=7のスタイルで「シャッフル」の場合には、ここから後ろ4音のパラメータは無効である。*
65 Bass [30] 2小節単位で生成されるベースのフレーズの2小節目の第14音。*
66 Bass [31] 2小節単位で生成されるベースのフレーズの2小節目の第15音。*
67 Bass [32] 2小節単位で生成されるベースのフレーズの2小節目の第16音。*
68 Bass Density ベースパートを自動生成するための、乱数生成における音の有無を規定する確率密度パラメータ。*
69 Drum Magic FMC3ドラムパート(ドラムキット、ビートパターン、スタイルなど)を将来的に拡張するためのreserved area。これによりFMC3の基本パターンの拡張性として、最大35種類(倍)のバラエティの可能性を留保する。バージョン1においては当面ゼロ固定である。
70 Chord [1] コード・カッティングパートのパターンの1小節目。6種のリズムパターン * 6種のノート選択 = 36パターン。 *
71 Chord [2] コード・カッティングパートのパターンの2小節目。*
72 Chord [3] コード・カッティングパートのパターンの3小節目。*
73 Chord [4] コード・カッティングパートのパターンの4小節目。*
74 Break 「尺」をおよそ黄金比に分割する部分に強制的に入るブレイクの種類。バージョン1では1/36の確率(値ゼロ)で省略される以外は、イントロ[2]のドラムソロと同じパターンである。*
75 Intro [2] 「2小節のイントロをON」にした場合に、1小節目(4分音符のリムショット4発)に続いて、スタイルごとにそれぞれ36種類のドラムソロのイントロが選択される。*
76 Drum [1] 1小節ごとに同一のパターンを繰り返すドラムパートの第1音。m=7のスタイルに応じて、バスドラムのON/OFF(2) * スネアドラムのON/OFF(2) * ハイハットのclosed/open/OFF(3) * ride/clap/OFF(3) = 36の情報を多重化している。*
77 Drum [2] ドラムパートの第2音。ベースと違ってドラムは3種類のスタイルに対応して1小節を24のタイミングに分割しているので、このパラメータはm=7のスタイルで「16ビート」の場合のみ有効である。*
78 Drum [3] ドラムパートの第3音。このパラメータはm=7のスタイルで「シャッフル」の場合のみ有効である。*
79 Drum [4] ドラムパートの第4音。*
80 Drum [5] ドラムパートの第5音。このパラメータはm=7のスタイルで「シャッフル」の場合のみ有効である。*
81 Drum [6] ドラムパートの第6音。このパラメータはm=7のスタイルで「16ビート」の場合のみ有効である。*
82 Drum [7] ドラムパートの第7音。*
83 Drum [8] ドラムパートの第8音。*
84 Drum [9] ドラムパートの第9音。*
85 Drum [10] ドラムパートの第10音。*
86 Drum [11] ドラムパートの第11音。*
87 Drum [12] ドラムパートの第12音。*
88 Drum [13] ドラムパートの第13音。*
89 Drum [14] ドラムパートの第14音。*
90 Drum [15] ドラムパートの第15音。*
91 Drum [16] ドラムパートの第16音。*
92 Drum [17] ドラムパートの第17音。*
93 Drum [18] ドラムパートの第18音。*
94 Drum [19] ドラムパートの第19音。*
95 Drum [20] ドラムパートの第20音。*
96 Drum [21] ドラムパートの第21音。*
97 Drum [22] ドラムパートの第22音。*
98 Drum [23] ドラムパートの第23音。*
99 Drum [24] ドラムパートの第24音。*
FMC3生成の基本的フロー
「FMC3生成ソフトウェア」をここでは単に「FMC3」と呼び、 その音楽クリップ自動生成のアルゴリズムを詳細に解説します(FMC3の開発環境については、 こちらを参照して下さい)。 まず、以下はFMC3の基本構造(フローチャート)です。

「100文字の36進数」であるFMC3パラメータには大きく2種類あり、「設定・変更できるもの」と「自動作曲においてランダムに生成されるもの(お任せ)」との区別が重要です。 「尺」「テンポ」「音色」「BassのDuration(Advanced Control)」などは前者で、 気に入るように変更してリプレイできます。 これに対して後者の「ドラムパターン」「ベースのフレーズ」「コード進行」「イントロ/エンディングのパターン」などは、 "Compose"コマンドのたびにシステムが乱数をもとに自動生成するので、修正はできません。 この「お任せ」はFMC3の基本ポリシーです。

FMC3パラメータは先頭に"NAGASM2005"という予約10文字の加わった110バイトのplain textファイルとして、 "nagasm.txt"という予約名で自動保存されます。 これに続いて(あるいは"Replay"コマンドを受けて)、システムはこのFMC3パラメータに基づいて、 リアルタイム自動作曲演奏(コードネームの表示付き)を行います。 コンピュータ内臓音源を用いたリアルタイム処理の関係で音色はそこそこですが、 FMC3の概形を確認できます。

このFMC3リアルタイム自動作曲演奏は、同時に刻々とMIDI演奏情報レコーダに記録されています。 演奏が終了した場合、あるいはストップしたところで、"Save SMF"コマンドにより、 この演奏情報を「標準MIDIファイル」形式(format 0)で保存できます。 MIDIファイルはQuickTime Playerなどソフトウェア音源システムにより、 より良好な音質のサウンドとして再生され、サウンドファイル(AIFF/WAV/MP3)として保存できます。 これは内部的には、ソフトウェア音源システムはリアルタイム再生に先立ってMIDIデータを「先読み」して、 時間をかけて良質の音響データに変換しているからです。

3種類の「スタイル」とテンポ
FMC3パラメータ(m=7)により、もっとも基本となる3種類の「スタイル」が決定されます。 0-35の範囲の整数値をとるパラメータ(m=7)を3で割った剰余nにより、 「8ビート(n=2)」「シャッフル(n=1)」「16ビート(n=0)」となっていて、
  • 8beat (1小節を8分音符8個に分割)
  • shuffle (1小節を3連符12個に分割)
  • 16beat (1小節を16分音符16個に分割)
という基本スタイルが、生成されたクリップごとに固有のテンポでずっと進行するFMC3のビートの基礎となります。

同時に、このパラメータ(m=7)を3で割った商(0-11)が大きいほど、 ベースパターンを生成するノート候補テーブルが持つスケールが多数のノートによって構成されます。 ベースラインの音候補とは、もっとも単純なものは[A]コードのルート音(オクターブ違い)だけ、 [B]ルートと5度音、・・(さらに少しずつ複雑に)・・、[C]多くのテンションノーツを含むスケール、 [D]全音音階Whole Tone Scale、・・・などで構成されていて、 パラメータ(m=7)の値が大きいほど、ベースのフレーズにテンションや不協和音が含まれる確率が高くなります。

この3種類のスタイルごとに、人間が「自然/適当だ」と感じるテンポ(メトロノーム速度)は異なります。 FMC3では、4/4のメトロノーム速度(BPM - Beats per Measure、1分間に4分音符が○個)で、 50から200までの範囲に分布する36段階の値として、以下のようにテンポを設定します。 xはパラメータ(m=10)の値、yは対応するメトロノーム速度(BPM)として、 テンポ範囲を指数関数的に等分割した(x,y)の組み合わせは

(x,y) = (0,50), (1,54), (2,58), (3,63), (4,67), (5,71), (6,76), (7,80), (8,84), (9,89), (10,93), (11,97), (12,101), (13,106), (14,110), (15,114), (16, 119), (17,123), (18,127), (19,132), (20,136), (21,140), (22,144), (23,149), (24,153), (25,157), (26,162), (27,166), (28,170), (29,175), (30,179), (31,183), (32,187), (33,192), (34,196), (35,200)
となっています。なお、BPMの値はmsec単位のタイムベース演算で小数点以下を切り捨てるために、厳密に正確なものではありません。 このテンポは画面内にかなりアバウトに「slow-middle-fast」と指定されたスライダー範囲によって表示されており、 このスライダーを操作してテンポ・パラメータを設定変更し、自動作曲ステップやReplayに進むことができます。

「尺」とIntro/Break/Ending
FMC3のパラメータ(m=9)では、音楽クリップ全体の基本となる「尺」と、 イントロ/エンディングの有無を選択します。 「尺」は6種類あり、パラメータ(m=9)を6で割った商(0-5)に応じて、順に「30, 45, 60, 90, 120, 180 (秒)」という長さです。 実際には、テンポに応じてFMC3の本体部分(イントロは除外)の長さが、 2小節単位としてこの時間を越えたところで「終了」(Ending = ONならエンディング)に進むので、 厳密に音楽クリップの長さを規定するものではありません。

イントロについては、0-35の範囲の整数値をとるパラメータ(m=9)を3で割った剰余nにより、 「イントロ無し(n=0)」「1小節イントロ(n=1)」「2小節イントロ(n=2)」となっています。 このイントロは3種類のスタイルごとに、自動作曲ステップで乱数により生成されるパラメータ(m=75)によって36種類のドラムパターンが選択され、 これが「1小節イントロ(n=1)」そのもの、あるいは「2小節イントロ(n=2)の2小節目」として使用されます。 「2小節イントロ(n=2)」の1小節目は、全てのスタイルで「4分音符のリムショット4発」となっています。

エンディングは、0-35の範囲の整数値をとるパラメータ(m=9)を6で割った剰余pが3以上であればON、 2以下であればOFFとして組み込まれています。 このエンディングは3種類のスタイルに共通で、このパラメータのみランダム生成でなく、 FMC3の自動作曲のたびにインクリメント(+1)されます。 36種類のうち24種類を将来の拡張のためにreservedとしているため、 バージョン1では12種類ごとに同じタイプが繰り返されます。 演奏が「尺」で規定した時間を越えて2小節単位の演奏が終わると、 いちばん最後に鳴っていたドミナント7thコードから完全5度下行のドミナントモーションで進んだrootのロングトーンが鳴り、 アルペジオパートの音色によるアルペジオ・スケールの繰り返しがdecresc.することで「エンディング」としています。

FMC3では、「尺」の時間をおよそ黄金比に分割する地点に「ブレイク」として、 イントロとして選択されたドラムパターンをドラムソロ(尺の長さに応じた回数)として挿入する仕様となっています。 全体のDurationを黄金比に分割する地点を変化点にするというのは、バルトークなど多くの作曲家が愛好した古典的なアイデアです。 FMC3バージョン1ではパラメータ(m=74)の値を乱数により生成し、 1/36の確率でゼロの時だけブレイク無しとして、それ以外はイントロ[2]のドラムソロと同じパターンです。

各パートの音色設定
FMC3のパラメータ(m=12)からパラメータ(m=15)までの4つに対して、 各パートごとの楽器音色を設定し、この楽器音色名を画面内に表示しています。 アップダウンボタンを操作することで、各パートの音色を設定変更して自動作曲ステップに進んだりReplayできます。

パラメータ(m=12)は「Bass音色」(MIDI2チャンネル)として、MIDI128音色の中でベースに適した36種類の候補から、 確率的な重み付けをしつつランダムに選ばれます。 具体的なベースの音色名は以下です。

0. Acoustic Bass 1. Electric Bass (finger) 2. Electric Bass (pick) 3. Fretless Bass 4. Slap Bass 1 5. Slap Bass 2 6. Synth Bass 1 7. Synth Bass 2 8. Acoustic Grand Piano 9. Bright Acoustic Piano 10. Electric Grand Piano 11. Clavi 12. Electric Guitar (muted) 13. Cello 14. Contrabass 15. Pizzicato Strings 16. Orchestral Harp 17. Trombone 18. Tuba 19. SynthBrass 1 20. Clarinet 21. Lead (square) 22. Lead (sawtooth) 23. Lead (bass + lead) 24. Pad (metallic) 25. Banjo 26. Shamisen 27. Koto 28. Vibraphone 29. Tubular Bells 30. Dulcimer 31. Drawbar Organ 32. Reed Organ 33. Harmonica 34. Acoustic Guitar (steel) 35. Electric Guitar (clean)
パラメータ(m=13)は「アルペジオ音色」(MIDI3チャンネル)として、MIDI128音色の中でアルペジオパートに適した36種類の候補から、 確率的な重み付けをしつつランダムに選ばれます。 具体的なアルペジオパートの音色名は以下です。
0. Electric Piano 1 1. Electric Piano 2 2. Celesta 3. Glockenspiel 4. Music Box 5. Vibraphone 6. Marimba 7. Dulcimer 8. Percussive Organ 9. Acoustic Guitar (nylon) 10. Electric Guitar (jazz) 11. Electric Guitar (clean) 12. Pizzicato Strings 13. Orchestral Harp 14. String Ensemble 2 15. SynthStrings 2 16. Choir Aahs 17. Voice Oohs 18. Lead (voice) 19. Pad (warm) 20. Pad (bowed) 21. Pad (sweep) 22. Koto 23. Acoustic Grand Piano 24. Honky-tonk Piano 25. Rock Organ 26. Accordion 27. Acoustic Guitar (steel) 28. Overdriven Guitar 29. String Ensemble 1 30. SynthStrings 1 31. Soprano Sax 32. Oboe 33. Clarinet 34. Pan Flute 35. Blown Bottle
パラメータ(m=14)は「バッキング・コード音色」(MIDI4チャンネル)として、MIDI128音色の中でバッキング・コードに適した36種類の候補から、 確率的な重み付けをしつつランダムに選ばれます。 具体的なバッキング・コードパートの音色名は以下です。
0. Electric Piano 1 1. Electric Piano 2 2. Clavi 3. Drawbar Organ 4. Percussive Organ 5. Rock Organ 6. Reed Organ 7. Accordion 8. Harmonica 9. Tango Accordion 10. Acoustic Guitar (nylon) 11. Acoustic Guitar (steel) 12. Electric Guitar (jazz) 13. Electric Guitar (clean) 14. Electric Guitar (muted) 15. Violin 16. Viola 17. Cello 18. Pizzicato Strings 19. String Ensemble 1 20. String Ensemble 2 21. SynthStrings 1 22. SynthStrings 2 23. Voice Oohs 24. Brass Section 25. SynthBrass 26. Alto Sax 27. Tenor Sax 28. Baritone Sax 29. Oboe 30. Bassoon 31. Clarinet 32. Pad (polysynth) 33. Kalimba 34. Fiddle 35. Shanai
パラメータ(m=15)は「ロングノート音色」(MIDI5チャンネル)として、MIDI128音色の中で疑似メロディー(持続音)に適した36種類の候補から、 確率的な重み付けをしつつランダムに選ばれます。 具体的なロングノート・疑似メロディーパートの音色名は以下です。
0. Drawbar Organ 1. Percussive Organ 2. Rock Organ 3. Church Organ 4. Reed Organ 5. Accordion 6. Harmonica 7. Tango Accordion 8. Overdriven Guitar 9. Distortion Guitar 10. Violin 11. Viola 12. Cello 13. Tenor Sax 14. Oboe 15. Bassoon 16. Clarinet 17. Ocarina 18. Tremolo Strings 19. String Ensemble 1 20. String Ensemble 2 21. SynthStrings 1 22. SynthStrings 2 23. Choir Aahs 24. Voice Oohs 25. Synth Voice 26. Trumpet 27. Trombone 28. Brass Section 29. SynthBrass 1 30. SynthBrass 2 31. Alto Sax 32. Pan Flute 33. Shakuhachi 34. Lead (voice) 35. Pad (warm)
FMC3自動作曲ブロック
「スタイル」「尺」「Intro/Ending」「テンポ」「各パートの音色」「Advanced Control Panelのパラメータ」など、 ユーザが設定したり後で変更できるFMC3パラメータ以外については、 "Compose"コマンドにより、以下の自動作曲ブロックにより生成されます。 「コード進行」「バッキングパートのパターン」などの大部分のパラメータの生成ブロック内部は、 それぞれ単純に0から35までの乱数を生成してパラメータとして格納しているだけですが、 ドラムとベースだけはここできちんと生成します。パッチを実行モード(上段)にして見るとスッキリしているようですが、 下段の編集モードにしてみると、ドラムとベースの設定状況をグラフィカルに表示/編集できるようにしてあり、 かなり複雑になっています。

ドラムパートの自動生成
FMC3ではすべての音楽クリップは4小節単位で進行し、 キーが小節単位で移動(和声進行+転調)しつつ、ベースのフレーズ生成は2小節単位で同じパターンを繰り返し、 ドラムは1小節単位で同じパターンを繰り返します。 これは多数のFLASHコンテンツの分析(詳しくは「参考文献」を参照)から得られた最大公約数的な仕様です。

ベースとドラムのリズムの分解能は、3種類の「スタイル」として、1小節を8分割した8ビート・16分割した16ビート・12分割したシャッフル、 の表現を包含するために、これらの最小公倍数である「48」分割する基本クロック(昔からMIDIの世界で定番の「タイムベース=48」そのもの)を 用いています。

以下は、FMC3のバージョン1で採用した6種類のドラム楽器、 「バスドラム」「スネアドラム」「クローズドハイハット」「オープンハイハット」「ライドシンバル」「ハンドクラップ」の ON/OFFデータを生成するブロック(パッチ)です。 個々の基本クロックのタイミングごとに、 さらに「8ビート/16ビート/シャッフル」というスタイルごとに生成確率の重み付けを変えて(この匙加減がノウハウ)、 ONかOFFか、すなわちそのタイミングで打楽器を叩くのか何もしないのか、をいちいちサイコロを振って決定しています。

これら打楽器ごとのON/OFF情報は、パラメータ(m=76)からパラメータ(m=99)までの24個の領域 (タイミングは1小節を0から47まで等分割した中から、順に「0 3 4 6 8 9 12 15 16 18 20 21 24 27 28 30 32 33 36 39 40 42 44 45」の地点) のそれぞれに、 以下のようにエンコードして表現されています。

  • バスドラムのON/OFF - パラメータを2で割った剰余
  • スネアドラムのON/OFF - 「パラメータ/2」を2で割った剰余
  • closed Hi-Hat - 「パラメータを12で割った剰余」を4で割った商が1ならON
  • open Hi-Hat - 「パラメータを12で割った剰余」を4で割った商が2ならON
  • ハンドクラップ - パラメータを12で割った商が1ならON
  • ライドシンバル - パラメータを12で割った商が2ならON
また、パラメータ(m=69)に「Drum Magic」という変数を定義し、当面は値ゼロとして設計しました。 これは将来的にあと35種類の異なったバージョンとして、打楽器の種類やビートの種類を変えた 別のドラムセクションを実現するための拡張予約パラメータです。

ベースパートの自動生成
FMC3では「Drum'n Bass」というイメージを軸に、 ベースパートでは「スケール」(個々の時間における音高方向の離散的な配置情報)によって、基本的なフレーズを生成します。 これは例えば、バッキングでCm7とかDm7/Gというコードが鳴っている時に、ベースなりピアノなりが、 あるピッチクラスからランダムに選ばれたノート(一例:C,D,Eb,F,G,A,Bb,B)を、 基本単位(16ビートなら1小節を16分割、シャッフルなら12分割したタイミング)のいずれかで鳴らしていれば、 なんとなくアドリブソロ(フレーズ/リフ)を演奏しているように聞こえる (スケールに基づく離散的情報による音高の配置だけで「それっぽくなる」)という作曲における経験則に基づくものです。

過去の自動作曲システムの失敗例の原因の多くは、調性音楽における作曲をフレーズ(メロディー)生成から始め、 それも単純/安易にメロディーの前後の音程関係などの情報をマルコフchain/遺伝アルゴリズム/ニューラルネットなどに持込む、 という点にあったと考えます。 FMC3においては、コードを構成する重要なノートとリズム的に重要なタイミング(ビート)を基幹として、 そこから低い発生頻度での逸脱を許可(テンションノートとして許容される)しつつ、 時間的関係性による配置という要素を盛り込んだ生成アルゴリズムを実装する方針をとりました。

下図は、FMC3の2小節のベースパターンのうち1小節目を生成するブロック(パッチ)です。 時間軸方向では、16ビートとシャッフルの同時演奏を排除して最大16ステップ(シャッフルの場合には先頭12ステップを利用)とし、 パラメータ(m=36)からパラメータ(m=67)までの32文字でベース2小節全ての演奏情報を乱数により選択・格納し、 ドラムパートと同様に無駄のない情報圧縮を目指しています。

音高方向についてはスケールを検討して、36データを「3オクターブ+5度」の範囲に割り当て、 Max/MSPで内部的にこれらのパラメータをtableオブジェクトに格納(休符=無音は音高ゼロと定義)しています。 下図は「スタイル」パラメータから与えられる12種類のベースtableのうち "No.5" と "No.7" の例で、 それぞれのtableにおいて、与えられた乱数を引き数としてベースの音高データをテーブルが返すので、 データの幅(占有率)がそのノートの生成確率となります。 さらに時間軸方向については、パラメータ(m=68)の1文字の36ステップを「ベース音の生成密度」パラメータとして利用して、 上記のテーブル参照を行う確率として作用させています。 これにより、ベースがたまたま同じ音高のメロディー(音列)となっても、時間あたりのノート数の分布が大きくばらつくことになり、 生成されるベースパートの単調さを解消する効果を得ています。

下図は、FMC3において実際にベースパートの演奏をリアルタイム生成するブロックです。 ベースパートの音楽的表現(スタッカートやレガート、設定によりアクセントとも知覚)として、個々の音楽クリップごとに、 ノートONからノートOFFまでの音の長さ(duration)が非常に重要です。 FMC3は「スタイル」の選択ごとに、 ランダム生成されるテンポ情報に対応した比率に一定の乱数分布の幅を持つdurationを設定しますが、 アドバンストモードのパラメータ(m=24)としてAdvanced Control Panelに表示して、 「味付け」として変更・保存できるようにしています。

コード進行の生成
FMC3では、基幹となるドラムとベースのパートに加えて、 控え目な音量ながら「アルペジオパート」と「コード(バッキング)パート」を加えることによって、 和声(コード)の感覚を音楽クリップに持ち込みました。 FMC3の生成する音楽クリップは、基本的にループを繰り返すミニマルミュージックの一種と言えます。 その単調さを解消する最大の要素は、コード進行が「バリエーションを持ち」「意外性も加味し」ながら、 しかし同時に「予定調和的に(現代音楽のような難解さ/不自然さを回避して)」展開するところにあります。 ここでは基本的にBach/Jazzの発想を継承して、局所的な暫定解決感、すなわち広義のドミナントモーションを指導原理としています。

Bachの即興パート、あるいはJazzのインプロビゼーションにおいては、近親調や平行調への和声進行とは別に、 「転調」として12平均率のどんな調にいきなり飛んでいっても(とりあえず驚いても)構いません。 転調、あるいは和声進行したその瞬間は非常にテンションの高い(違和感、不協和感)状態であっても、 「IIm7→V7(→I)」あるいはドミナント7thコードからの半音下行(V7→Iの裏進行)があれば、 そこで聴取する人間は局所的に解決(トライトーンの解消)を知覚認知し、 この短期記憶は和声進行に関するより長期の記憶まで後付けのように再解釈させて、 最終的な解決に至るテンションとして良好な印象を持ちます。 これは言い換えれば、ランダムな転調であっても局所的に広義のドミナントモーションを繰り返すことで、 その音楽は刹那的には違和感なく受け入れられる事を意味します。 FMC3のコード進行生成アルゴリズムにおいては、この知見(仮説・理論)を最大限に活用しました。

上図は、FMC3のコード進行生成ブロックです。 FMC3のバージョン1では、 パラメータ(m=8)とパラメータ(m=11)から生成される計72パターンのうち53種類(残りは将来的な拡張用にreserve)を設定して、 以下のような4小節パターンとして用意して、そこからランダムに選択することとしました。

  • Jazzコード理論の教科書にあるようなドミナントモーションの組み合わせ
  • 古典和声教科書にある近親調の範囲での和声進行
  • 「循環コード」のようによく用いられているコード進行
  • PopsやRockで定番となっているコード進行

FMC3のバージョン1の53パターンのうち24パターンを占めるドミナントモーション系のコード進行パターンとしては、 以下の単純なアルゴリズムで全ての組み合わせを実装しました。

コード進行のルール1
4小節のコード進行は、「前2小節のパターン」と「後2小節のパターン」とを連結する。
コード進行のルール2
前半の「2小節パターン」において、後ろのコードは必ずドミナント7thコードとし、 前のコードは「ドミナント7th(Secondly Dominant: II7→V7)かマイナー7th(IIm7→V7)のいずれか」とする。 そしてrootは「完全5度下行か半音下行(裏5度進行)のいずれか」の2通りで進行する。これにより2*2=4通りのパターンがある。
コード進行のルール3
4小節のうち前2小節と後2小節のパターンを連結するルールは、
  (A) 前2小節の後半のコードから後2小節の前半のコードへの隣接進行
  (B) 前2小節の後半のコードから後2小節の後半のコードへの進行(Extended Dominant)
のいずれかである。そしてrootは「完全5度下行か半音下行(裏5度進行)のいずれか」の2通りのパターンで進行する。
コード進行のルール4
後半の「2小節パターン」において、後ろのコードは必ずドミナント7thコードとする。「○→Vm7」という進行は無いので、 ルール3(A)の場合には前のコードはマイナー7thは採用されず必ずドミナント7thとする。これにより、4*2=8通りのパターンがある。
コード進行のルール5
後半の「2小節パターン」において、ルール3(B)の場合には、前のコードも「ドミナント7thかマイナー7thのいずれか」の2通りがある。 これにより、4*2*2=16通りのパターンがある。以上を組み合わせると、(A)(B)合わせて計24パターンのコード進行が生成できる。
下図は、Advanced Control Panelに表示されている、 この4小節単位のコードネームです。値はその4小節の基調(tonal center)に対する相対的なrootの音程(12の剰余)で、 値が12以上の場合には「minor7thコード」、12未満の場合には「ドミナント7thコード」となります。

このように4小節パターンで回るFMC3のコード進行は、生成された音楽クリップごとに一定であり、 最初から最後まで変わりません。 この単調さを打破するのは、4小節ごとに設定されている基調を 「次の4小節ではrootを12音のいずれかからランダムに選んで移動する」という強制転調パラメータで、 パラメータ(m=3)からパラメータ(m=6)までの4文字(4小節単位で4回の転調設定)の値(0-11)として定義しました。 下図は、Advanced Control Panelに表示されている、 この4小節単位の転調パラメータです。値は直前の4小節パターンの最後のコードのrootに対する相対的な音程(12の剰余)で、 これが次の4小節の基調(tonal center)となります。

このようにFMC3で生成される音楽クリップは、大きく16小節を単位として回っているのですが、 転調(キー[基調]の移動)は4小節ブロックごとの相対的な音程移動(直前のブロックの最後のコードのrootに対しての 相対音程として[0-11]からランダムに設定)なので、 16小節たっても元に戻るとは限りません(たまたま戻る確率の方がかなり低い)。 4小節ごとに12音のどの音程関係に転調しても、 その後のコード進行によって瞬間的な違和感がやがて解決に至るテンションという印象を持つように知覚され、 「生成パラメータは単純なのに次々と展開する音楽」 「コード進行を書き留めてみると既存の楽曲にはおよそあり得ない(ことがとても多い)」 という効果を得ることができました。

アルペジオパートの生成
上記のアルゴリズムによってコード進行(各小節ごとのコードネーム情報)が生成され、 これを用いてFMC3では、メインであるドラムとベースに加えて、 控え目な音量で「コード(和音)パート」による伴奏を付加します。 ただし基本方針として「和音の構成音を全て同時に鳴らす」というようなダサい演奏は避けたいので、 コードを構成する個々の音を時間的にずらして鳴らす「アルペジオパート」としました。

上図はその生成ブロックで、分散和音として5文字分の生成パラメータによって伴奏情報を生成します。 パラメータ(m=31)として定義したのは「各小節の1拍目のどこからアルペジオを開始するか」というスタートポイントで、 1拍目を16分音符単位に4分割し「1拍目の最初」「16分音符遅れ」「8分音符遅れ」「2拍目の最初」という4箇所として、 値を「パラメータ(m=31)を4で割った剰余」として加算します。 ここに、ドラムとベースに対してMIDIノートベロシティとして相対的に音量を下げる9段階の音量パラメータを 「パラメータ(m=31)を4で割った商」として加算し、計36パターンとして規定しています。

FMC3パラメータ(m=32)からパラメータ(m=35)として定義したのは、 ループを構成する4小節それぞれに対して、4和音である分散コードの転回系(4種)を「パラメータを4で割った剰余」、 分散和音の形状(9種)を「パラメータを4で割った商」として、以下のアルゴリズムにより計36パターンに定義しました。

アルペジオ生成ルール1
各小節には、「ドミナント7th」「マイナー7th」のいずれかのコードネームが必ず割り当てられている。
アルペジオ生成ルール2
各小節のアルペジオパートとしては、コード構成音の4音が必ず1回ずつ登場する。 そのコードのrootに対するそれぞれの音の相対音程としては、「ドミナント7th = 0, 4, 7, 10」「マイナー7th = 0, 3, 7, 10」である。
アルペジオ生成ルール3
各小節のアルペジオパートのコード構成音は、コードの転回型により場所(高さ)が異なる。 そこで、そのアルペジオの構成音の音高に対して、以下のようにここだけの名前を仮に定義する。 この名前はアルペジオパート生成アルゴリズムの解説でのみ有効である。
  ・もっとも音高の高い音 - 「top」
  ・上から2番目の音 - 「high」
  ・上から3番目の音 - 「low」
  ・もっとも音高の低い音 - 「bottom」
アルペジオ生成ルール4
コードが「マイナー7th」の場合、各小節の「パラメータを4で割った剰余」として、 ルール3で定義した転回型のそれぞれの音のrootに対する相対音程を以下のように定義する。 実際の発音は2-3オクターブ(音域に対応して適宜、折り返し)上げている。
  ・[0] : bottom=[0] low=[3] high=[7] top=[10]
  ・[1] : bottom=[-2] low=[0] high=[3] top=[7]
  ・[2] : bottom=[3] low=[7] high=[10] top=[12]
  ・[3] : bottom=[-5] low=[-2] high=[0] top=[3]
アルペジオ生成ルール5
コードが「ドミナント7th」の場合、各小節の「パラメータを4で割った剰余」として、 ルール3で定義した転回型のそれぞれの音のrootに対する相対音程を以下のように定義する。 実際の発音は2-3オクターブ(音域に対応して適宜、折り返し)上げている。
  ・[0] : bottom=[0] low=[4] high=[7] top=[10]
  ・[1] : bottom=[-2] low=[0] high=[4] top=[7]
  ・[2] : bottom=[4] low=[7] high=[10] top=[12]
  ・[3] : bottom=[-5] low=[-2] high=[0] top=[4]
アルペジオ生成ルール6
各小節のアルペジオ分散和音の時間的な順序(形状-9種)を「パラメータを4で割った商」として、 以下のように定義する。 最初の音がアルペジオの1音目として鳴り、最後の音が4音目である。
  ・[0] : bottom - low - high - top
  ・[1] : top - high - low - bottom
  ・[2] : bottom - high - low - top
  ・[3] : top - low - high - bottom
  ・[4] : bottom - low - top - high
  ・[5] : top - high - bottom - low
  ・[6] : high - top - low - bottom
  ・[7] : low - bottom - high - top
  ・[8] : high - top - bottom - low (※これだけ跳躍あり)
すなわちFMC3のアルペジオパートは、小節ごとに異なるコードに対して、 分散和音の展開系(ボイシング)、さらに分散和音の音型までそれぞれ別個に演奏していて、 電子キーボード等にある単純なパターンの繰り返しに比べて複雑なパターンを演奏しています。 パターンの先頭ポイントが16分音符単位で遅れることも、ヒューマンな味を出すための経験則から来たテクニックです。

また、パラメータ(m=27)の「Arp. Interval」として、 アルペジオパートの音同士の時間的間隔をAdvanced Control Parameterに定義しました。 これは、パラメータ(m=7)の「スタイル」を選択するたびに、 選ばれたスタイルとテンポに応じた範囲内の適当なアルペジオ音オンセット時間差 (音楽のテンポとは無関係の絶対的時間。ヒューマンな印象を演出できる)がランダムに設定され、変更が可能です。 さらに、パラメータ(m=28)の「Arp. Duration」として、 アルペジオパートの音の長さDuration(スタッカートやレガートの表現)もAdvanced Control Parameterに定義しました。 これは、パラメータ(m=7)の「スタイル」を選択するたびに、 選ばれたスタイルとテンポに応じた範囲内の適当なアルペジオ音Durationがランダムに設定される(変更可能)ので、 この表現(スタカートやレガート)により、バッキングの印象を大きく変化させることができます。

コード(バッキング)パートの生成
コード進行(各小節ごとのコードネーム情報)に対応してFMC3で生成する音楽情報として、 メインであるドラムとベースに加えて、 控え目な音量で「コード(和音)を短くカッティング演奏するパート」による伴奏も付加しました。 ただし基本方針として「和音の構成音を全て同時に鳴らす」というようなダサい演奏は避けたいので、 コード(コードネームとしてはドミナント7thコードとマイナー7thコードの2種)を構成する4音のうち、 重要な2音だけを同時に、「各小節の2拍目(必ず演奏)」と「4拍目(無し/演奏)」に2音フレーズとして短く鳴らす、 という仕様としました。 下図はその生成ブロックと、タイミング生成のサプパッチです。

パラメータ(m=70)からパラメータ(m=73)として、ループを構成する4小節それぞれに対して、 3種類のコード(バッキング)パート生成情報を以下のアルゴリズムにより多重化(総計で2*3*6=36通り)しました。 Jazzの世界では「4和音のコードの全てのコード構成音を鳴らすのはダサい」というのは常識であり、 このように演奏する音の数を限定することで、よりバリエーションを増やすメリットを得ることができました。
バッキング生成情報1
各小節(4/4)の2拍目に、基本ビート(8beat/shuffle/16beat)に応じて、以下のいずれかを演奏する。 とりうる場合は2通りであり、これを「パラメータの2の剰余」としてエンコードする。
  ・8beat の場合 - [0]8分音符を2発 - [1]8分音符+8分休符
  ・shuffleの場合 - [0]3連符のうち真ん中が休符 - [1]3連符のうち最後が休符
  ・16beatの場合 - [0]16分音符+16分休符2発+16分音符 - [1]16分音符を2発+8分休符
バッキング生成情報2
各小節(4/4)の4拍目に、基本ビート(8beat/shuffle/16beat)に応じて、以下のいずれかを演奏する。 とりうる場合は3通りであり、これを「[パラメータ/2]の3の剰余」としてエンコードする。
  ・8beat の場合 - [0]8分音符を2発 - [1]8分音符+8分休符 - [2]全て休符
  ・shuffleの場合 - [0]3連符のうち真ん中が休符 - [1]3連符のうち最後が休符 - [2]全て休符
  ・16beatの場合 - [0]16分音符+16分休符2発+16分音符 - [1]16分音符を2発+8分休符 - [2]全て休符
バッキング生成情報3
2拍目および4拍目では同一構成の2音を演奏するとして、そのコードネームに対して、 以下の6状態から演奏する。数値はそれぞれのコードネームのroot(基音)からの音程intervalである。 とりうる場合は6通りであり、これを「パラメータを6で割った商」としてエンコードする。
  ・[0] - majorコードなら[4-12] - minorコードなら[3-12]
  ・[1] - majorコードでもminorコードでも[7-12]
  ・[2] - majorコードでもminorコードでも[10-12]
  ・[3] - majorコードなら[4-7] - minorコードなら[3-7]
  ・[4] - majorコードなら[4-10] - minorコードなら[3-10]
  ・[5] - majorコードでもminorコードでも[7-10]
また、パラメータ(m=25)の「Chord Volume」として、 カッティング・コードパートの音量バランスを、固定されたベースとドラムに対して設定できるように、 Advanced Control Parameterに定義しました。 これは、パラメータ(m=7)の「スタイル」を選択するたびに、 コードパートの音色と関係なく適当な範囲のコード音量がランダムに設定され、変更が可能です。 さらに、パラメータ(m=26)の「Chord Duration」として、 カッティング・コードパートの音の長さDuration(スタッカートやレガートの表現)もAdvanced Control Parameterに定義しました。 これは、パラメータ(m=7)の「スタイル」を選択するたびに、 選ばれたスタイルとテンポに応じた範囲内の適当なカッティングDurationがランダムに設定される(変更可能)ので、 この表現(スタカートやレガート)により、カッティング・コードパートの印象を大きく変化させることができます。

ロングノートパートの生成
FMC3の開発の最後に(おまけ的に)付加したのが、 小節ごとに2音のロングトーンを一種の「疑似メロディー」のように演奏するパートです。 一言で言えば、「コード(min7thコードまたはドミナント7thコード)を構成する4音に加えて、 UST(上部構成3和音)として許容されるテンションノートを候補に追加する」というアルゴリズムです。 下図はその生成ブロックとサプパッチの一つです。

FMC3ロングノートパートの生成アルゴリズムについて解説します。 まず、パラメータ(m=16)からパラメータ(m=19)を1小節目から4小節目に対応させ、 ロングトーン・フレーズのリズムパターンを、 以下のアルゴリズムとして4小節それぞれに36パターン定義しました。
リズムのルール1
各小節ごとに、「パラメータを6で割った商(0-5)」を1音目のリズム、 「パラメータの6で剰余(0-5)」を2音目のリズムとして、データの意味付けは同一の形式とする。
リズムのルール2
1音目、2音目それぞれのリズムは、0-5の値に対して以下ように演奏する。 「引っ掛かりリズム」についてはルール3を参照のこと。
  ・[0] - 全音符
  ・[1] - 「引っ掛かりリズム」からタイで繋がった付点2分音符
  ・[2] - 4分休符 + 付点2分音符
  ・[3] - 付点2分音符 + 4分音符 (タイで繋がない)
  ・[4] - 「引っ掛かりリズム」からタイで繋がった2分音符 + 4分音符 (タイで繋がない)
  ・[5] - 4分休符 + 2分音符 + 4分音符 (タイで繋がない)
リズムのルール3
ルール2の「引っ掛かりリズム」については、パラメータ(m=7)の3種類の「スタイル」に対応して、以下とする。
  ・8beat の場合 - 8分休符 + 8分音符
  ・shuffleの場合 - 3連符のうち1と2が休符 + 3だけ音符
  ・16beatの場合 - 付点8分休符 + 16分音符
次に、パラメータ(m=20)からパラメータ(m=23)を1小節目から4小節目に対応させ、 ロングトーン・フレーズのノート(音高)情報を、その瞬間のコードのrootに対する音程として、 以下のアルゴリズムとして4小節それぞれに30パターン(全ての組み合わせ)を定義しました。
ノートのルール1
1音目と2音目では異なるノート(rootに対する音程、オクターブ関係は等価)を割り当てる。
ノートのルール2
割り当てるノートの候補のrootに対する音程は、 「4音からなるコードの構成音 : 7度/8度/10度/12度」+「その上部構成3和音(UST) : 9度/11度/13度」である。 ここからavoid noteを除外して、「ドミナント7th + 9度 + 13度」「マイナー7th + 9度 + 11度」の組み合わせを全て網羅する。
ノートのルール3
2種類のコードネーム(ドミナント7th、マイナー7th)ごとに、 第3音(10度)に相当するノートはrootに対して半音offsetで「15/16」を切り替える。
ノートのルール4
2種類のコードネーム(ドミナント7th、マイナー7th)に、 第3音以外に相当するノート(rootに対する半音offset)は共通で、 「7度 - 10」 「8度 - 12」 「12度 - 19」 「9度 - 14」 「11度 - 17」 「13度 - 21」とする。
以上のルールを単純に摘要すると、「全ての小節で必ずロングノートが鳴り続ける」という不自然な音楽に聞こえます。 そこでFMC3では、パラメータ(m=30)として「LongNote Density」を定義しています。 これは、ロングノート・疑似メロディーパートを、 8小節を単位として「それぞれの小節で演奏するかしないか」という36種類の組み合わせパターン
88 44 22 11 cc 66 33 aa 55 B6 da 9a 9c 9e 9f ee dd bb 77 cd cb c7 ce cf b7 bf bd be e7 eb ec 99 96 94 8c 5a
として設定します。 例えばパラメータ「9」のパターンは10番目の「B6」であり、 16進数のB6すなわち2進数の「10110110」となるので、 8小節ループのうち1,3,4,6,7小節でだけ、上記のアルゴリズムに対応したリズムとノートに対応した演奏を行います。 下図はその生成ブロック、およびAdvanced Control Panelで表示されているその情報の例(ここでは「E7」=「11100111」)です。

また、パラメータ(m=29)を「LongNote Volume」として、 ロングノート・疑似メロディーパートの音量バランスを、固定されたベースとドラムに対して設定しています。 これはAdvanced Control Parameterとして、パラメータ(m=7)のスタイルを選択するたびに、 ロングノート音色とは関係なく適当な範囲の疑似メロディー音量がランダムに設定され、変更が可能です。

ショートカットキー
FMC3は基本的にマウスにより操作しますが、バージョン1では、 以下のショートカットキーも定義していますので、必要に応じて活用して下さい。 なお、入力モードとして日本語入力でなく「直接入力(半角英数字)」であること、 CAPSロックをOFFにして小文字入力状態であること、に注意して下さい。

  • "s" キー → 「スタイル」ボタン
  • "c" キー → 「Compose !」ボタン
  • "r" キー → 「リプレイ」ボタン
  • "a" キー → Advenced Control Panel ウインドウの表示/非表示
  • スペースキー → 演奏ストップ(エンディング無し)

FMC3生成プログラムを改良改造したい人へ

FMC3生成プログラムのソースプログラム(version 1.02)は ここ にあります。 また、開発環境であるMax/MSP(version 4.5以降推奨)は ここ にあります。 本サイトでは、FMC3についての音楽的・技術的な情報を全て公開しています。 豊富なノウハウとこだわりはありますが、秘密はありません。 必要条件として、FMC3生成プログラムを改良改造したい人にとって、これで全て完備しています。 十分条件としては、「音楽への愛情と理解」「アルゴリズムを実現するスキル(プログラミング)」「MIDI/音楽情報科学の理解」 などがあります。ここはお任せです。 バグ情報、改良リクエスト、改良改造などについては、 メイルにて、 長嶋までコンタクトいただけると幸いです。 この場合、ペンネームで結構ですが、このサイトに公開書簡の形で紹介することを前提に、 前向きに取り組みたいと考えていますが、時間的な対応については猶予をお願いします。 「FMC3バージョン2」に向けた改訂をおおいに歓迎します。(^_^)

参考資料/リンク


ソースプログラム