カテゴリー
Windows XP

UWSC

UWSC は umiumi さん作の Windows 自動化ソフト(キーボードマクロツール)です。Cakewalk や Finale などは専用のスクリプトがあって、操作を自動化できるのですが、そういった機能を持たないアプリケーションもたくさんあります。僕は特に midiom を使用する場合に活用しています。

Finale で作曲したデータを midiom で編集する前に、余分なごみデータを削除して、Gate の編集に専念するところから始められるスクリプトを作ってみました。Finale で出力した mid ファイルを Cherry で読み込み、分解能を 480 に変更して SMF のエクスポートを行った後 midiom で読み込み、名前が消えている一番上のトラックを N とリネームしておけば、このスクリプトを使えます。ウインドウ上部のツールバーが、下図のようになっていないと使えませんので、これもチェックしておいて下さい。

あとは、下記のスクリプトを使ってデータのごみ掃除ができます。僕以外に使う人がいるとも思えませんが、僕自身の備忘録も兼ねて一応書かせていただきました。

// midiom 用スクリプト
// Finale で出力したデーターの Nintendo DS 向けの成型
// 2008/05/25 Kudo Shinsuke
// ==================================================

// このスクリプトを実行する前に、
// Finale で出力した MIDI ファイルを Cherry で読み込み、
// 分解能を 480 に設定して標準 MIDI ファイルをエクスポートし、
// それを midiom に読み込んでから作業を開始しなければなりません。
// また、マクロを適用するときには、該当トラックの一番先頭のイベントを
// 表示させておかなければなりません。
// さらに、トラック名「N」の Expression データ避難用のトラックを
// 用意しておかなければなりません。
// マクロの実行が終わったら、Gate の編集を行って下さい。

// midiom の ID 取得
// ~~~~~~~~~~~~~~~~~
midiom=GetID("midiom")

// Program の Bank 削除
// ~~~~~~~~~~~~~~~~~~~~
MouseOrg(midiom)
// midiom のウインドウ座標をマウス座標の基準とする。
BTN(LEFT,CLICK,80,208,100)
// トラックの一番最初のイベントがあるはずの座標をクリックする。
KBD(VK_TAB,CLICK,100)
// キーボードの TAB をクリック(押してすぐはなす)。
KBD(VK_RETURN,CLICK,100)

// ピッチベンドレンジ変更データを削除
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// CC100 を削除
KBD(VK_H,Click,100)
SendStr(GetID("サーチ","#32770",100),"/d CC,100,,,",1)
// 「サーチ」ダイアログボックスにテキスト「/d CC,100,,,」を書く。
// 第三引数の「1」は、
// 1 番目のエディットコントロールに書き込むことを指定している。
KBD(VK_RETURN,CLICK,100)

// CC101 を削除
KBD(VK_H,Click,100)
SendStr(GETID("サーチ","#32770",100),"/d CC,101,,,",1)
KBD(VK_RETURN,CLICK,100)

// CC006 を削除
KBD(VK_H,Click,100)
SendStr(GETID("サーチ","#32770",100),"/d CC,006,,,",1)
KBD(VK_RETURN,CLICK,100)

// CC038 を削除
KBD(VK_H,Click,100)
SendStr(GETID("サーチ","#32770",100),"/d CC,038,,,",1)
KBD(VK_RETURN,CLICK,100)

// Volume を Expression に変換したうえでコンプレスする
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KBD(VK_H,Click,100)
SendStr(GETID("サーチ","#32770",100),"CC:CC,007:011,,,:$3/2+64",1)
KBD(VK_RETURN,CLICK,100)

// Volume 100 を加える
// ~~~~~~~~~~~~~~~~~~~
KBD(VK_OEM_2,CLICK,100)
KBD(VK_V,CLICK,100)
BTN(LEFT,CLICK,280,208,100)
KBD(VK_NUMPAD1,CLICK,100)
KBD(VK_NUMPAD0,CLICK,100)
KBD(VK_NUMPAD0,CLICK,100)
KBD(VK_RETURN,CLICK,100)

// Expression のカット
// ~~~~~~~~~~~~~~~~~~~
KBD(VK_H,CLICK,100)
SendStr(GETID("サーチ","#32770",100),"/t CC,011,,, ",1)
KBD(VK_RETURN,CLICK,100)

// トラックの移動
// ~~~~~~~~~~~~~~
KBD(VK_OEM_1,CLICK,100)
KBD(VK_LEFT,CLICK,100)
KBD(VK_N,CLICK,100)
KBD(VK_RETURN,CLICK,100)

// Expression データの貼り付け
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
KBD(VK_CTRL,DOWN,100)
KBD(VK_V,CLICK,100)
KBD(VK_CTRL,UP,100)

コメントを残す