No.49 SC-88でランダムなパンは?(sf-2)
に対するコメント氏名(NAME):西川善司
メールアドレス(MAIL ADDRESS):zenji@z-z-z.gr.jp
書込日時(DATE):99/06/24 18:16:37
最初はGS音源限定の話をします。 ランダムのパンポットは コントロールチェンジのYコマンドでは制御できません。 なぜかというとランダムパンポットという仕様は MIDI規格1.0では規定されていないからです。 で,GS音源の場合に限っては エクスクルーシブ・アドレスマップの $40 $1X $1C が各パートのパンポットパラメータになっています。 ここには 0=RANDOM 1〜64〜127 左〜真ん中〜右 というパラメータが与えられますので, ここに「0」を書き込めばそのパートを ランダムパンポットに指定できます。 Xのところには0〜Fがはいります。 0がパート1でない点に注意してください。 (楽器マニュアル参照) サンプルのリストはこんな感じになります。 (ZMSはV3用ですが,V2に簡単に直せるはずです) --------------------------------------------------------- .initialize .gs_init .assign 1,MIDI1 .track 1{ t110 @1 o4 q8 v16 L8 @i$41,$10,$42 x$40,$11,$1c,0 [do] cdefgrgrafag4r4af ag4r4 [loop] } .play --------------------------------------------------------- GM音源など,ランダムパンポットが備わっていない楽器では どうやればいいのか,という疑問もわくはずです。 これはV3で実装されたランダム波形をARCCに割り当て, これにパンポットを制御させればいいのです。 (Z-MUSIC Ver.3.0はM系列法に準拠した算術乱数発生 ルーチンを内蔵しています)。 具体的にはこんな感じになります。 --------------------------------------------------------- .initialize .gm_system_on .assign 1,MIDI1-1 .track 1 { @1 o4 q8 v16 t140 [ARCC1.WAVEFORM RANDOM] [ARCC1.LEVEL 127] /0-127の乱数を与える [ARCC1.ORIGIN 127] /基準値127-乱数(0-127)を /演算結果とする [ARCC1.CONTROL PANPOT] [ARCC1.SYNC %01000] /波形はキーオンごとに進行する [ARCC1.DELAY 0] [ARCC1.SPEED 1] /1オンごとにパンを切り換える [do] L8 cdefgrgraf ag4r4af ag4r4 [loop] } .play --------------------------------------------------------- このリストは,ランダムパンポットを 内部機能として持たないGM音源でも使えます。 ポイントは[ARCCx.SYNC]ですね。 Z-MUSIC Ver.3.0で実装された新しいARCCモード 「キーオンごとに波形を進行させる」モード を使っています。 一度,Ver.3.0も使ってみてください。
Z-MUSIC BBSへ戻る