No.49 SC-88でランダムなパンは?(sf-2)に対するコメント

No.50
タイトル(TITLE):ランダムパンポット

氏名(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]

         cdefgrgrafag4r4afag4r4

         [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 cdefgrgrafag4r4afag4r4

         [loop]

}

.play

---------------------------------------------------------

このリストは,ランダムパンポットを

内部機能として持たないGM音源でも使えます。



ポイントは[ARCCx.SYNC]ですね。

Z-MUSIC Ver.3.0で実装された新しいARCCモード

「キーオンごとに波形を進行させる」モード

を使っています。



一度,Ver.3.0も使ってみてください。


Z-MUSIC BBSへ戻る
ホームページへ戻る