『教育用G3Xパッチメイカー』(Step 13 ペダル機能の巻)
先頭へ1つ前へ次へ

 /    (^)  (^) \   

今回はエクスプレッションペダルの設定をプログラミングするyo
これはこれでまた独自のルールがあるので覚えておいてくれw(上から笑)
UNIT (1st) (2nd) (3rd) LEVEL
NR Thrsh
DRIVE Gain1 Tone
AMP Gain2 Tube Cab
CHORUS Rate Depth Mix1
DELAY Time FB Mix2
REVERB Decay Tone2 Mix3
EX-PEDAL  Input Vol  Output Vol  Auto Assign  Off PATCH LEVEL
Contents of patch group file 

Just copy this data and paste it to ".g3xa" file of Edit&Share on any text-editing software.

【解説】

画面が少し変わっているのに気付いたかな? いくつかのパラメータの後ろにラジオボタンがついているだろ。それから、
リバーブの下の行に「EX-PEDAL」という項目が出来て、ここにも4つのラジオボタンが設置されてるよ。あと、地味だけど
全体のPATCH LEVELも設定できるようにしたよ。これまで100固定にしてたんだけどね。

ペダルコントロール対応のパラメータの後ろにラジオボタンをつけているので、そのうちのどれかをチェックしておけば、
作られるパッチはすべてそのパラメータがペダルにアサインされるyo これは、パッチメイカーProにも無い直接指定シス
テムだよ。これが実現できたのは強引な画面設計によって、共通するパラメータを整理してユニットをしぼったからだねw
では、JavaScriptの当該部分を見てみようか。

      //パッチレベルを書き込む
      PLEV=edu.plev.value;
      px=px+"<Module6><Prm0>"+PLEV+"</Prm0>";
      //エクスプレッションペダルのアサインを書き込む
      if(edu.elements[36].checked==true)pdl=128;      //Input Volumeの場合
      if(edu.elements[37].checked==true)pdl=144;      //Output Volumeの場合
      if(edu.elements[38].checked==true)pdl=112;      //Auto Assignの場合
      if(edu.elements[39].checked==true)pdl=0;      //Offの場合
      if(edu.elements[3].checked==true)pdl=18;      //NRのThrshの場合
      if(edu.elements[7].checked==true)pdl=34;      //DRIVEのGain1の場合
      if(edu.elements[12].checked==true)pdl=50;      //AMPのGain2の場合
      if(edu.elements[18].checked==true)pdl=67;      //CHORUSのRateの場合
      if(edu.elements[21].checked==true)pdl=68;      //CHORUSのMix1の場合
      if(edu.elements[26].checked==true){      //DELAYのFBの場合
         pdl=83;      //通常ユニットの場合
         if((DLU==6)||(DLU==59))pdl=85;    //PitchDlyかDynaDelayの場合
      }
      if(edu.elements[28].checked==true)pdl=84;      //DELAYのMix2の場合
      if(edu.elements[34].checked==true)pdl=100;     //REVERBのMix3の場合
      px=px+"<Prm3>"+pdl+"</Prm3><Prm4>0</Prm4><Prm5>2015</Prm5></Module6>";


Module6にパッチ全体のレベル(Prm0)やエクスプレッションペダルのアサイン先(Prm3)とその上限下限値(Prm4-5)が割
り当てられているのはStep4で解説したとおりだよ。新しく作ったPATCH LEVELのセレクトからvalueを読み込んでPrm0
に書き込んでいるyo とにかくややこしいのはペダルのアサイン先の指定方法だよw(大苦笑) たとえばInput Volume
の場合と書いてる行を見るとpdlという変数に128を代入しているね。これがDRIVEのGain1の場合の行を見ると34を代入
しているね。この128とか34とかいう数値はどこから出てくるのかというのが疑問だよね。これが、実は下の表のような
仕組みで数値が決められているんだyo(難解笑)
Prm2Prm3Prm4Prm5Prm6Prm7Prm8Prm9Prm10...
Module0181920212223242526
Module1343536373839404142...
Module2505152535455565758...
Module3666768697071727374...
Module4828384858687888990...
Module59899100101102103104105106...
No Assign=0   Auto Assign=112
Input Volume=128   Output Volume=144
Prm0に相当する位置を基準にして16の倍数からスタートしてカウントしているから、Prm2の位置だと18とか34とか中途 半端な数から始まってる印象になるんだよなw(呆れ笑) しかも、Module1ってのは見かけ上先頭から2個目のユニット だし、Prm2ってのも見かけ上は先頭のパラメータだから、この件に精通しているボクでも数字がこんがらがってわかりに くいことこの上ないyo(大苦笑) この分かりにくさを教訓にして、ボクのデータベース関数は参照番号の十の位をパラメ ータ番号と一致させることにより、無用な混乱を避けるように工夫したというわけだよw(他山の石笑) ま、そういうわけで上の表と、マニュアルに掲載されてるパラメータの順番とをにらめっこしながら参照していけば、それ ぞれの数値がそこに入ってる意味がわかるyo(疲れ笑) ところで、上のJavaScriptでこういう表現があるよね。 if(edu.elements[36].checked==true)pdl=128; これは、eduという名前のform(住所みたいなものだよって説明したやつw)の中の、何個目のパーツかというのを左上 から順番に数えたときに、0番からスタートして36番にあたるパーツが、チェックされてるかどうかを判定しているよ。ここ ではInput Volという文字の直後にあるラジオボタンがチェックされてるかどうかを見て、されてる(true)なら変数pdlに128 を代入するという処理になってるよ。ラジオボタンは便利なんだけど、checkedの処理がイマイチめんどくさいのが難点 なんだよne DELAYのFBの場合というところでは、PitchDlyとDynaDelayだけFBのパラメータがPrm5(他のはPrm3)に割り当てられ ているので、この両者の場合のみ変数pdlの値を2だけ大きくしているよ。上の表で数値を確認してみてne 最後の行ではペダルアサインの上限下限値(Prm4-5)も設定してるんだけど、なぜか0と2015で固定してるねw これは パラメータいっぱいの値を割り当てる場合に使える荒技だよ。最小値は常に0からスタートするのがEdit&Shareのデータ のルールだから、0が入るのは当然だねw(妥当笑) 最大値のほうは、そのパラメータがもてる上限を上回る値が入っ ていた場合は自動的にその最大値が入ってるものとみなしてくれる仕様のようなんだw なのでG3Xのペダルコントロー ル対応パラメータ中で最大の値をもつものの値を入れておけば何が来てもOKということになるわけだyo それが2015 というわけだyo(含み笑) これで、ややこしかったけどペダルのアサインも完了したねw あと改良しておきたい点として爆音対策があるよ。つくっ たパッチグループを次々と切り替えて演奏してみると、Gainの大きいパッチは音量がかなりデカく感じるし、逆にGainの 小さいパッチはやや音量不足に感じるんじゃないかな? その都度いちいちパッチレベルつまみを調整したり、ギターの ボリュームを回したりしてると思うけど、これもプログラム内でできるだけ補正するようにしたら手間が省けるし耳も傷め ないよね。というわけで、次Stepでは自動音量補正機構を組み込んでみるyo
先頭へ1つ前へ次へ