蛞蝓式CALprograms vol.2/CAKEWALK ---------------------------------------------------------------------------- HOWTO2.TXT 蛞蝓なめちゃん odasan@ma.catv.ne.jp ---------------------------------------------------------------------------- ● 利用の手順 (1)解凍する。 ・NAMECAL2.LZH を解凍すると、下記の 28 個の file が現れます。 GlissV.CAL 両端の音と分割数を指定し、pitch bend していきます。 桁あふれして負の値になることがあるのを修正。 BendBN.CAL ふたつの音の前の方を pitch bend します。 つないだときに、duration 値が変になるのを修正。 Cress.CAL 指定した変化幅で、velocity 値をしだいに上げます。 DeCress.CAL 指定した変化幅で、velocity 値をしだいに下げます。 DelCont.CAL 指定した Controler 番号の無駄な値を削除します。 ClCont.CAL 無駄な Controler を一括削除します、 ClWheel.CAL 無駄な Wheel (Pitch bend) を削除します。 CCCircA.CAL 凸形のふっくら円弧で controler を描きます。 CCCircB.CAL 凹形の鋭い円弧で controler を描きます。 CCSin.CAL 正弦曲線で controler を描きます。 CCLinear.CAL 直線で controlerを 描きます。 _CCCurve.CAL 上記の CAL の本体ですが、単独では使えません。 PBCircA.CAL 凸形のふっくら円弧で Pitch bend を描きます。 PBCircB.CAL 凹形の鋭い円弧で Pitch bend を描きます。 PBSin.CAL 正弦曲線で Pitch bend を描きます。 PBLinear.CAL 直線で Pitch bend を描きます。 _PBCurve.CAL 上記の CAL の本体ですが、単独では使えません。 _CircleA.CAL CCCircA.CAL / PBCorcA.CAL 用データです。 _CircleB.CAL CCCircB.CAL / PBCorcB.CAL 用データです。 _Linear.CAL CCLinear.CAL / PBLinear.CAL 用データです。 _Sin.CAL CCSin.CAL用データです。 _Sin2.CAL PBSin.CAL用データです。 RandTime.CAL イベントのタイミングをランダムに後ろにずらします。 tick の近いイベントは間隔を保ったまま移動できます。 DurCut.CAL 前の音の duration を短くして同音連打を避けます。 Trill.CAL Trill を作ります。 VibHand.CAL Hand Vibrate を作ります。 README.TXT 最初に読むべき file です。 HOWTO2.TXT 使い方のヒント等です。 (この file ですね) (2) フォルダに入れる。 ・Cakewalk には、"Thin Channel Aftertouch.cal" だの "Major 7th Chord.cal" だのというサンプルの CAL program が添付されています が、上記の file も同じフォルダに入れてください。 ・CALBAR をお使いの方は、CALBAR と同じフォルダに入れてください。 (3) 編集対象の範囲を指定する。 ・トラック、譜面、ピアノロール、イベントリスト等のウィンドウ上で、 処理したい範囲を指定します。 ・このとき、複数の track にまたがる指定をすると、処理結果が怪しくなる ことがあります。なるべく 1 トラックずつ指定しましょう。 指定した track はトラックウィンドウで黒くマークされますが、それ以 外の track に ハイライトがあると、その track も選択されているとみ なされ、結果としてそっちの track に書込まれることがあります。 (4) 実行する。 ・Ver 6.0 では 「編集」メニューの一番下に「CALプログラム実行」という のがあります。ここを選択すると、file 選択になりますから、実行する program を選び、実行します。 ・Ver 7.0 では「ツール」メニューの中にあります。 ・CALBAR を使っている方は、登録しておくと一発で使えて便利ですね。 ・CAL を使ったことのない方は、しっかりマニュアルの該当個所を読んで おきましょう。 ・下記の program では、実際上 UNDO ができませんので、ご注意ください。 CCCircA.CAL CCLinear.CAL CCCircB.CAL ClCont.CAL CCSin.CAL DurCut.CAL (forEachEvent) 外でどっさり書込んでいるか、または loop 内で (forEachEvent) を指定しているからです。 ・また、下記の program は実行完了までに時間がかかります。 ClCont.CAL DurCut.CAL ---------------------------------------------------------------------------- ● 以下、各 program の概要と使い方メモを記します。 CAL program は text file ですから、editor で読んだり修正したりできます。 下記 CAL program の使い方、注意点は、それぞれの program の冒頭に注釈行を 入れて説明してあります。詳細はそちらをご覧くだされ。 (1) Vol.1 不具合の修正 ・GlissV.CAL 桁あふれして負の値になるのを修正しました。 ・BendBN.CAL つないだときに、duration 値が変になるのを修正しました。 ・いずれも、使い方の詳細は Vol.1 の説明をご覧ください。 (2) クレッシェンド/デクレッシェンド ・クレッシェンドやデクレッシェンド(ディミヌエンド)は、曲の抑揚をつけ るために用いられますが、これを expression で表現すると、音量だけし か変化しないため、緊張感が伴わない嫌いがあります。 ・バイオリンや管楽器のように、長い音が鳴っている間に変化させるときに は expression を使うしかないのですが、短い音の連続である場合には、 velocity を変化させると、音色変化を伴いますので、リアルな演奏になり ます。 ・ピアノロールウィンドウでは、直線やフリーハンドで velocity の連続的 な変化を描くことはできますが、それまでの velocity 値は消されてしま います。 ・この CAL program は、リアルタイム入力や、Vol.1 の Merihari.CAL など で既に書込まれている velocity 値を生かしながら、音符の位置に応じて velocity を増加(減少)させるものです。 ・たとえば velocity 100 のベタ打ちデータがあったとして、 4/4 で 1 小節 (TimeBase=120 で 480 tick)を範囲指定して、増加量を 16 とすると、1 拍 めの velocity はそのまま(+0)で 100、2 拍めは +4 で 104、3 拍めは +8 で 108、4 拍めは +12 で 112 になります。4 拍めの 119 tick あたりに音 符データがあると、それは +16 で 116 ですね。 ・Cress.CAL と DeCress.CAL は実は同じ program で、初期値が違うだけで す。Cress.CAL を呼び出して 負の値を指定すれば ディクレッシェンドに なりますし、Decress.CAL を呼び出して 正の値を指定すれば クレッシェ ンドになります。 (3) 無駄なイベントの削除 ・Cakewalk ではあまりないようですが、同じ controler 番号で、同じ値が 連続して入ってしまうことがあります。後ろの指定は無駄ですね。pitch bend も同様です。 ・そこで、 重複して指定されている後ろの controler や pitch bend を削 除する CAL program を作りました。 ・DelCont.CAL は、controler の番号を指定して、その番号の controler 値 だけをチェックし、無駄な値を削除します。 ・ClCont.CAL は、すべての番号の無駄な Controler を一括削除します。 まず、指定範囲内で使われている controler 番号の最小と最大を調べて、 その範囲にある controler は全部チェックしますから、実行に時間がかか ります。 ・ClWheel.CAL は無駄な Wheel (Pitch bend) 値を削除します。 ・いずれも、クリップの位置が重複して設定されているときには、うまく削除 できないことがあります。クリップ毎に実行するか、トラックごとにクリッ プを結合してから実行しましょう。 (4) コントローラを曲線で描きます。 ・Singer Song Writer だと controler や pitch bend を曲線で描くことが できます。Cakewalk では直線かフリーハンドしか描きようがなかったの ですが、この CAL で、いろんな曲線を描けるようにしました。 ・実行 program は、下記の 4 つを用意しました。 CCCircA.CAL 凸形のふっくら円弧を描きます。 CCCircB.CAL 凹形の鋭い円弧を描きます。 CCSin.CAL 正弦曲線を描きます。 CCLinear.CAL 直線を描きます。 ・controler 番号と step 値は、これらの program 中の変数値を editor で 直接書換えて変更します。 ・上記の program では、メインルーチンである _CCCurve.CAL とそれぞれの 曲線に応じたデータファイルを include して実行します。 すべて同じディレクトリに入れておいてください。 ・_CCCurve.CAL は、コメント部分を書換えれば単独でも実行できますが、 なるべく上記 4 つの program から呼び出す形で使いましょう。 ・曲線はそのつど計算するのではなく、別に数表を用意して、対応する値を 読んできます。 今回用意しているのは下記の 4 種です。 _CircleA.CAL 凸形のふっくら円弧のデータです。 _CircleB.CAL 凹形の鋭い円弧データです。 _Sin.CAL 正弦曲線データです。 _Linear.CAL 直線データです。 これらは単独では使えません。 ・この CAL の形式で数表を用意すれば、これ以外の曲線を描くこともできま す。描きたい曲線 y=f(x) の 逆関数 x=g(y) を使います。 y を 0 から 128 まで変化させたとき、x が 100000 から 0 に変化するよ うに調整します。それぞれの x の値を t000 から t128 に初期値として 書込みます。 (5) ピッチベンドを曲線で描きます。 ・上記同様、ピッチベンドを曲線で描きます。 ・実行 program は、下記の 4 つを用意しました。 PBCircA.CAL 凸形のふっくら円弧を描きます。 PBCircB.CAL 凹形の鋭い円弧を描きます。 PBSin.CAL 正弦曲線を描きます。 PBLinear.CAL 直線を描きます。 ・初期設定では 128 本のベンドイベントを書込みます。短い時間で指定する と毎 tick に書込まれてしまいます。これを間引くには、program 中の変 数 step を editor で直接書換えて変更します。 ・上記の program では、メインルーチンである _PBCurve.CAL とそれぞれの 曲線に応じたデータファイルを include して実行します。すべて同じディ レクトリに入れておいてください。正弦曲線のみ _Sin2.CAL を使います が、他は _CCCurve.CAL と共通です。 ・_PBCurve.CAL は、コメント部分を書換えれば単独でも実行できますが、 なるべく上記 4 つの program から呼び出す形で使いましょう。 ・曲線はそのつど計算するのではなく、別に数表を用意して、対応する値を 読んできます。 今回用意しているのは下記の 4 種です。 _CircleA.CAL 凸形のふっくら円弧のデータです。 _CircleB.CAL 凹形の鋭い円弧データです。 _Sin2.CAL 正弦曲線データです。 _Linear.CAL 直線データです。 これらは単独では使えません。 ・この CAL の形式で数表を用意すれば、これ以外の曲線を描くこともできま す。描きたい曲線 y=f(x) の 逆関数 x=g(y) を使います。 y を 0 から 128 まで変化させたとき、x が 100000 から 0 に変化するよ うに調整します。それぞれの x の値を t000 から t128 に初期値として 書込みます。_Sin.CAL と _Sin2.CAL の違いはよく分かりません。 きゃははは。 (6) イベントのタイミングをランダムにずらす RandTime.CAL ・RandTime.CAL は、イベントのタイミングをランダムに後ろにずらします。 ただずらしただけでは、順序が入れ替わったりする可能性がありますから、 tick の近いイベントは間隔を保ったまま移動できるようにしています。 ・たとえばせっかく 1 tick ずつ発音タイムをずらしたギターストロークな どは、先頭の音の移動先に、間隔を保ったままでまとめて移動できます。 発音の直前に controler や wheel がある場合も、ノートオンと順序が入 替わらないようにできます。 ・要するに、指定した tick 以下の間隔でイベントが続いているときは、そ のままの間隔を保つようにしておるわけで、初期値では 8 ですが、この値 を -1 にすると、同一 tick にある和音もそれぞれがランダムに動きます。 (7) 同音連打を回避する DurCut.CAL ・同音連打というのは、同じ channel で同じ高さの note が同時に鳴ること です。copy and paste を繰り返していると、いつの間にかどっさりできて しまったりします。Vol.1 で音高に応じて発音タイミングをずらす CAL program を発表しましたが、duration を長くとっていると、ずらしたため に同音連打が発生することがありました。 ・DurCut.CAL は、同音連打があった場合、前の音の duration を次の音の 直前まで短くします。初期値では次の音の note on と前の音の note off が同じ位置になりますが、変更可能です。 ・同じ高さの音が複数、同一 tick に存在する場合は、最後に読まれたもの を残して、他は削除します。 ・トラックが複数のクリップに分割されていると、トラック全体を選択した ときにうまくいかないことがあります。クリップ毎に実行するか、トラッ ク全体をひとつのクリップに結合してから実行しましょう。 (8) 2音が交互に鳴る Trill を作る Trill.CAL ・Trill を作ります。たとえば全音符の E5 を選択して実行すると、 E5 D#5 E5 D#5... が十六分音符とか三十二分音符で繰り返されます。 ふたつの音の長さは、program 中で、tick を単位として指定します。 ・高さの差も同様に program 中で変数を書換えて指定します。 E5 F5 E5 F5... や E5 E4 E5 E4... も可能です。 ・使うたびに Editorでパラメータを書換えるのは面倒ですから、よく使う 設定は、別名で保存しておくと、一発で使えて便利です。 (9) ハンドビブラートを作る VibHand.CAL ・揺れはじめまでの時間と周期を指定し、Hand Vibrate を作ります。 ・ハンドビブラートというのは、ギターでフレットを押さえた左指を弦の 張られている方向に こねこね して、音を揺らすことです。 ・複数の音を選択して実行すると、それぞれの音にビブラートがかけられ ます。 ---------------------------------------------------------------------------- ● File Name について。 ・Windows95 では、長い file 名が使えますし、space も使えます。 検索しやすいように、適当に名前を変えてお使いください。 ・また、同じ program でも設定値を変えて、別の名前にした方が分かり やすいこともあります(Cress.CAL と DecRess.CAL のように)。 好きなように値を書換えて、好きな名前をつけてお使いください。 ● 改造/転載等について ・著作権を主張するほどたいしたことはしていないので、コピー・改造 は、好きにしてください。 ・転載は自由ですが、Nifty Serve の転載規定にしたがってください。 ・不明な点、お気づきの点がございましたら、mail ください。でも、サ ポートが必要なほど たいそうな program ではないと思います。 ---------------------------------------------------------------------------