☆Domino

初めて使う場合は環境設定MIDI-OUTのポートAをMicrosoft GS Wavetable Synth、音源ファイルを設定すると音が鳴るようになります。私はGSmです。

トラックは1から16の他にConductorとSystem Setupがあり、mmfに変換するときにはSystem Setupをまるまる削除してからでないと、
トラックが一つずれてしまいます。

ストリームPCMを使う場合、MA5はドラムトラックの下のノートを使用し、MA7はトラックを追加し、PortBのチャンネルを使います。

一小節目にいろいろなイベントが初期設定で入りますが、オーサリングツールに読み込ませると、
Ivent Densityがオーバーしてエラーが出るので、時差をつけてかつテンポを下げます。(Tickで300差があると他のトラックのイベントと重なりません)

キューポイントは普通のトラックのどこかでいいのでCuepoint: StartとCuepoint: Stopのイベントを入れて、ATSで編集したい部分のTickを数値入力してから読み込ませると、
ATS側でセットする必要がなくなり、キューを直ぐに変更することが可能になります。(Cherryの場合はCC254、CC255)

ツールバーや表示のレイアウト、ショートカットキーはカスタマイズして、常に使いやすさを追求します。
パソコンの画面は狭いので、不要なものはどんどん非表示にしないと無駄に時間が過ぎてしまいます。


○数値入力

イベントリストペインでテンキー入力します。
マウス入力後の微調整でTick、Gate、Vel入力が主ですが、直接入力も可能です。

Eventの欄に音程を数値化したものを入力します。C4でも72でも同じノートが入力できます。
Step値の欄で発音間隔を打ち込みます。
Gate値の欄でノートの長さを決定します。


Dominoについては別に解説サイトなどいろいろあります。
初心者になるための耳コピMIDI講座など


○ツールバーのカスタマイズ

表示/ツールバー/カスタマイズからユーザー定義ツールバー1、2に使いやすいようにアイコンを並べます。
トラックモニターバーをカスタマイズして、演奏状況を確認します。
マークバーは演奏の頭だしに必須だと思います。



トラックリスト、演奏モニター、イベントグラフペイン1、2、トラックセレクトペイン、イベントリストペインの表示切替は編集する箇所によって表示面積を素早く変更するために必要です。
Tickスナップ系、4、3連4、8、付点4、3連8、16、32、3連16分音符と、Gate系全、2、4、8、16、32、3連8分音符はアイコンが同じなので、分けてまとめます。
パターンスライス、ストロークは右クリックで出したり、メニューバーからだしてもあまり速度が変わりません。

プログラムチェンジ、コントロールチェンジの挿入はベンド幅の挿入などイベントグラフペインであまり打たない項目の打ち込みを簡略化します。
フィルター類は、後で一括変更が必要になることがあるので、置いておきます。

拍子、演奏時間の算出、MIDI機器の状態を合わせる、イベントグラフ矩形選択、
選択範囲へ直線・曲線を入力、イベントリストペインと演奏位置の同期/非同期の切り替えはあると便利なものです。
拍子で3拍子や変拍子に対応することができ、選択範囲へ直線・曲線を入力では、幅いっぱいをX等分した位置として指定し入力できます。

直線の切り替え、特に間隔設定は、着メロ作成の場合イベントデンシティをオーバーすることを見越して間引かなければならないので、必ず使います。
ヒューマナイズ、ベロシティコンプレッサは一括変更や一音のパラメータ変更より、効果的に馴染ませることができそうなので入れておきます。

トラックモニターバーのカスタマイズではパーツの横幅が設定できるほか、
オプションの値の調節方法で、右ボタン上下ドラッグで補正、右ダブルクリックで0、左ダブルクリックでイベント挿入を選択すると、
スナップを解除したり数値うちしなくても、微妙な打ち込みを簡単に行うことができます。

バーは固定しておきます。


○環境設定のカスタマイズ

・全般
演奏停止時の演奏線移動は演奏開始位置へ(スクロール無し)だと、打ち込み時のループと相性がよさそうだと思っています。
新規作成時に指定のファイルを読み込むで、あらかじめ前処理したファイルを読み込ませると効率が上がります。

・ピアノロール
縦スクロール位置の記憶、ノート配置予定枠、ノート配置・ドラッグ中のホイール動作、ノートGate調節の当たり判定、
改ページなどは、確認するともっといい設定が見つかるかもしれません。

・イベントリスト
[カーソル位置と演奏位置の同期]の動き、はON:同期OFF:演奏中は非同期。

・イベントグラフ
スナップは基本オンにセットします。


○メニューバーで役に立ちそうなもの
・イベント
ツールバーで説明しなかったものでオニオンスキンノートの複製、重複ノートGate一括補正、End of Trackの調節などは面白そうな機能です。


○ショートカットキー
ユーザー定義などを利用して、効率化します。

ctr+f レガート
短いゲート長でノートオン位置を打ち込んだ後に、範囲選択して一気に伸ばす際に利用する。

ctr+a、ctr+z、ctr+x、ctr+c、ctr+v 全選択、元に戻す、切り取り、コピー、貼り付け(デフォルト)
一般的なキー操作

r、f オクターブアップ、ダウン
SMAFの音色的にオクターブ上げたほうがよい場合があるため、倍音補強用オクターブ進行を作る場合にも利用する。

ctr+マウスのホイール
トラックの移動、修正箇所への移動はこれが効率的

ctr+トラックセレクトペインのクリック
オニオンスキンの有無をクリックだけで変更できる。修正箇所に集中しやすくなる。

Alt+sSMF書き出し(オリジナル)
SMF書き出し→オーサリングツール再読み込みなので、よく使うものとしてショートカットを作成。


ちなみにメニューバーの各項目の右側についている文字F E V I N T P K M Hはalt+Fのようにaltと組み合わせて使うショートカットです。


○曲線のカスタマイズ

ドラッグ開始A(x1, y1)終了B(x2, y2)原点O(0, 0)でのy=f(x)による曲線のカスタマイズ。
y1からy2の枠ではなく、下側にy2-y1分の空間が上下対称に広がっているように考えたり、
直線を引くにしても(x1, y1)を原点とする相対的な数式を直接書いてはいけない(平行移動が必要)ところが少し頭をひねるところ。

( y2 - y1 ) * ( x - x1 ) / ( x2 - x1 ) +( y1 )
所謂AB間を繋ぐ直線(傾き(y2-y1)/(x2-x1)の直線を(x1, y1)平行移動する、サンプルにあるのと同じ)

2 * ( y2 - y1 ) * ( x - x1 ) / ( x2 - x1 ) +( y1 - ( y2 - y1 ) )
x方向にx1、y方向にy1 - ( y2 - y1 )移動して傾きを2倍にしてみた。

y1 + (y2 - y1) * sin(2 * a * pi * xf) a回の周期を持つ基本的なサインカーブ(某掲示板の受け売り。xfって相対位置つまり(x-x1)/(x2-x1)です。)







☆Auto Hotkey

パソコン上の操作を簡略化するマクロソフト。
Windows xpならHiMacro.Exeが適していますが、7では使えないため、こちらを用います。
テキストにショートカットキーと命令文を書くことで、ルーティン作業を効率化します。

プログラミングというと内部演算的なイメージがありますが、産業用ロボットのような動作をします。


始動キー::
各種命令
return

で一連の操作をプログラミングします。
始動キーはCtrなら♯を、Altなら!を使用します。

フォルダやプログラムの起動にはRunを用います。

{例文}
Run, C:\Users\user\Desktop
デスクトップのフォルダを開く。

Run, Domino.exe, C:\Users\user\Desktop\ソフト\Domino138
Domino138フォルダにあるDomino.exeを開く。


マウスを自動操作します。

{例文2}
MouseMove, 0, 500
MouseClick, right, 0, 500
MouseClick, left, 0, 500, 2
MouseClickDrag, left, 100, 100, 200, 200 , 10
MouseClick, left, 143, 527, , ,D

マウスを特定の座標に動かす。座標をright (left)右 (左)クリックする。ダブルクリック。押しっぱなしにする(逆U)
マウスを座標(100, 100)から(200, 200)に速度10でドラッグする。速度はデフォルトで2、数字が少ないほど速く動く。

CoordMode, Mouse, Screen
マウス座標 (パラメーター1)の表現方法をScreen (絶対値表示)かRelative (アクティブウィンドウから見た相対表示、−もありうる)のどちらにするか指定します。
デフォルトは相対表示 (Window Spyで見たときの(Mouse Position)のIn Active Windowの座標)なので、
絶対値表示 ((Mouse Position)のOn screenの座標)にする場合にはこの行を先に入れなければならないようです。
どのウィンドウがアクティブになっているかや、それぞれのウィンドウの位置関係によって、クリックする座標を決定します。


ウィンドウの移動、サイズ変更、アクティブウィンドウの切り替えを行います。

{例文3}
DetectHiddenWindows, On
SetTitleMatchMode,2
WinActivate, - Windows Internet Explorer
WinWait, - Windows Internet Explorer
WinMove, , - Windows Internet Explorer, 100, 100, 1000, 1000

ネットをアクティブにする。アクティブになるまで待つ。位置を100、100にサイズを1000、1000にする。(X、Y)

WinMove, デスクトップ, , 100, 100, 1000, 1000

WinMoveはフォルダ名などの完全一致の場合前に書き、固有名が一致しないものの、ソフト名などでくくれるものは部分一致で指定します。
Window Spy( Window Title & Class )の上の行に出てくる文字を部分一致に用います。

SetTitleMatchMode,2
デフォルトは前方一致なので、この行を先に入れると部分一致になります。1, 前方一致、3, 完全一致


キーボードを自動操作してキーストロークを発生させます。

{例文4}
Send, abcdefg
abcdefgと入力する。

SetKeyDelay, 300
この行を前に入れることによりaとbの入力の間隔が300ミリ秒になります。

DetectHiddenWindows, On
複数のウィンドウを開いている場合、アクティブになっていない隠れているウィンドウを指定するには、DetectHiddenWindows, Onを先に記入します。

ControlSend,,{ESC},ahk_class xxxxxx
ahk_class xxxxx(ウィンドウ名)にESCキーを入力する。{Up}、{Down}、{Enter}、{F2}のように{}の括弧でくくることで様々なキーを表現できます。ctrは^になります。
ショートカットのリマッピングを行うことができ、後ろで開いているソフトでも、ウィンドウをアクティブにせず操作することが可能になります。
AutoHotkeyで作成した別のマクロをSend, 始動キーで呼び出すことが出来ます。


何度も同じ操作がある場合など、小さな機能の単位ごとにモジュール化しておくと、マクロが煩雑になるのを防ぐことができます。

{例文5}

Label001:
各種命令
return

のように始動キーの後の:を一つ取り除くと、ソフトの中だけで機能するモジュールを作成することが出来、

Gosub, Label001
で呼び出します。

Sleep, 100
これが行間にある待ち時間 (Wait)を規定します。マクロが速すぎる場合にこれでクロックダウンします。

Loop, 5
{
各種命令
}

同じ操作を5回ループさせます。{}中かっこで囲まれた部分が一つのまとまりになります。

If xxxx < 5
{
各種命令
}

もしxxxxが5より小さく4以下であるならば、{}中かっこで囲まれた部分が実行されます。マクロ作成の際にはかっこやスペース、不等号の記号などが半角になっていることに注意します。



□耳コピへの応用

○作成開始(5 sec、キー入力20回以上短縮、1曲に使用する回数5回以上)

Run, MA5_ATS.exe, C:\Users\user\Desktop\ソフト\MA5_AT\ATS-MA5-SMAF
Run, C:\Users\user\Desktop\編集中の楽曲
Run, Domino.exe, C:\Users\user\Desktop\ソフト\Domino138
Run, DIVIDER.EXE, C:\Users\user\Desktop\ソフト\div108\DIVIDER
Run, MCP-MA7.exe, C:\Users\user\Desktop\ソフト\mmfファイル再生
WinWait, MCP-MA7 -
Sleep, 500
DetectHiddenWindows, On
SetTitleMatchMode,2
Sleep, 100
WinMove, MA-5 Authoring Tool, , 48, 51, 874, 514
Sleep, 100
WinMove, MCP-MA7 -, , 807, 39, 494, 266
Sleep, 100
WinMove, DIVIDER, , 913, 0, 391, 465
Sleep, 100
WinMove, - Domino, , 0, 84, 1056, 678
Sleep, 100
WinMove, 編集中の楽曲, , 1036, 294, 263, 473
return


必要なソフトの起動とウィンドウの配置の指定をして、作成の準備を行わせます。
デスクトップに編集中の楽曲用のフォルダを作っています。
画面解像度が1366×768のときに、全てのウィンドウをクリックのみでアクティブにできるような配置にセットする工夫をしています。


○音量ミキサーを開く(3 sec、キー入力5回以上短縮)
Run, SndVol.exe
WinWait, 音量ミキサー
Sleep, 100
WinMove,音量ミキサー, , 300, 200, 900, 412
return


なんだかんだといってよく使われる音量ミキサーですが、手動で出すと結構手間です。横幅を広げておくのがポイントです。


○DIVIDER遠隔操作
DetectHiddenWindows, On
ControlSend,,{aaaaa},ahk_class DIVIDER
return

{aaaaa}部分が

jで耳コピ音源演奏開始、
{ESC}で耳コピ音源演奏停止
{Up}で前のループポイントへ移動
{Down}で後ろのループポイントへ移動
pで通しで演奏


ループヵ所を自由に設定できる耳コピ支援ソフト。依存しすぎるとシンコペーションや小節の頭の音を間違えます。24 bitの音源は鳴らせません。
Dominoを前面に出したまま、キーボードのみでの操作ができます。


○その他の操作の自動化

Windows7、DominoからATSへの上書き
Domino/環境設定/ショートカットキー/ファイル/SMF書き出しでショートカットを設定する。この場合はAlt+s
DominoとATS-MA5を起動した状態で一度リロードをして、フォルダなどの条件を整えてからスクリプトを開始させる。
始動キーや時間間隔(ミリ秒)、座標の微調整などはパソコンの性能に合わせてカスタマイズしてください。

(4 sec、キー入力6回以上短縮、1曲に使用する回数10回以上)

DetectHiddenWindows, On
SetTitleMatchMode,2
WinActivate, - Domino
Sleep, 100
Send, !s
Sleep, 300
Send, {Enter}
Sleep, 300
Send, {Enter}
;各トラックのEnd of Trackよりも後ろに・マークの情報が存在します。のメッセージボックス対応でEnter2回。なければ削除してください。
Sleep, 800
Send, y
Sleep, 50
WinActivate, MA-5 Authoring Tool
WinWait, MA-5 Authoring Tool
Sleep, 50
Send, ^r
Sleep, 150
Send, {Enter}
return


MA-7用変種(10 sec、キー入力15回以上短縮、1曲に使用する回数10回以上)

DetectHiddenWindows, On
SetTitleMatchMode,2
WinActivate, - Domino
Sleep, 300
Send, !s
Sleep, 300
Send, {Enter}
Sleep, 300
Send, {Enter}
;各トラックのEnd of Trackよりも後ろに・マークの情報が存在します。のメッセージボックス対応でEnter2回。なければ削除してください。
Sleep, 800
Send, y
Sleep, 300
WinActivate, MA-7 Authoring Tool -
WinWait, MA-7 Authoring Tool -
WinMove, MA-7 Authoring Tool -, , 0, 0, 653, 600
;座標指定の自動化です。
Sleep, 300
MouseClick, left, 48, 40
Sleep, 300
MouseMove, 90, 161
;ここは待ち時間が必要。
Sleep, 800
MouseClick, left, 296, 182
;上書きをするならYしないならN。
Sleep, 400
Send, N
Sleep, 400
WinMove, ファイルを開く, , 0, 0, 654, 384
;一番上のMIDIになるため、編集フォルダを考えておく。
Sleep, 400
MouseClick, left, 183, 93
Sleep, 400
MouseClick, left, 578, 340
Sleep, 400
Send, {Enter}
Sleep, 400
WinMove, Replace SMF, , 0, 0, 284, 264
;Replace内容は修正内容により自分で決定できるようにここまでの自動化とする。時間は無理に詰めないほうがスリップしない。
return


音色編集ベロシティ100化
ATSを起動すると毎回音色編集のベロシティが64になっているのが非常に面倒なので、100にするためのスクリプト。
開始マクロのMA5で音色リストを最大化して展開した後

DetectHiddenWindows, On
Sleep, 10
SetTitleMatchMode,2
Sleep, 10
winActivate, MA-5 Authoring Tool
Sleep, 1000
MouseClick, left, 380, 260, 2
Sleep, 1000
WinActivate, Voice Edit
WinMove, Voice Edit, , 0, 0, 551, 637
Sleep, 1000
MouseClickDrag, left, 473, 551, 494, 545 , 8
Sleep, 1000
MouseClick, left, 307, 619



{例文6}変数指定

HENSUU001=5
HENSUU002=aabb

変数は(スクリプト内で使用する文字)=(数字、文字)で定義します。
変数の定義には始動キーなどは必要なく、順番さえ間違えなければテキストのどこかに書かれているだけで認識します。

%xxxx%のように%でくくった場合に数字、文字として機能します。

Send, %HENSUU001%
→5

Send, dd%HENSUU002%cc
→ddaabbcc

HENSUU003=HENSUU001と置き直すことができます。→5

a=b
///////
a=c
///////
とすれば同じaでも流れの中での定義の変更に伴い別の数として扱うことが出来ます。



{例文7}変数計算、条件分岐

% 変数の式
で変数の計算が可能です。

CCDD=5555
AA=CC
BB=DD
Send,% %AA%%BB%

→5555

Send, %AA%%BB%

→CCDD


Loop,% HENSUU001
Loop,% HENSUU001+5

→5回ループ、10回ループ

HENSUU004=0
Loop, 10
{
HENSUU004=% HENSUU004+1
%HENSUU004%を含む各種命令
}

HENSUU004が1〜10まで10回繰り返す。

例えばこのループの中に
If HENSUU004 > 3のようなブロックを用意することで、何回目のループでは少し異なることをさせるなどができます。
ループの回数をカウントしている内部変数を複数用いれば、複雑な制御を少ない行数で達成することができます。

IN21=0000

IN26=0000
IN27=0001
IN30=0002

If IN21 not in %IN30%,%IN26%,%IN27%
→どれか一つでも同じものIN21=IN26がある場合実行されず
If (((IN21=0000 AND IN30=0000) AND (IN26=0000 AND IN27=0000)) = 0)
→どれか一つでも0000以外のがある場合実行
If ((1+1=3) = 0)
→1+1は3ではない(偽(0))ので実行

論理式や演算表記の条件分岐は丸括弧で括っていきます。0は偽、1は真


HENSUU1ss=7
HENSUU2ss=5
FF=2

MouseClickDrag, left, 260, 224, 260,% 224+((HENSUU%FF%ss-2)*18), 3
→MouseClickDrag, left, 260, 224, 260,% 224+((5-2)*18), 3
→MouseClickDrag, left, 260, 224, 260, 278, 3

ループ回数をカウントしている変数に関連した座標であれば、毎回座標を読み取らなくても、変数計算で表現することにより、複雑な制御を少ない行数で達成できます。
クリックする座標が割り算を含む変数計算によって小数になってもちゃんと機能します。

FF=1

Loop,% HENSUU%FF%ss
{

}

→Loop, 7

×Send,% HENSUU%FF%ssabcde ←これは無理みたいなので、

TYUUKEI=% HENSUU%FF%ss

→7

Sned, %TYUUKEI%abcde

→7abcde
変数の引き出しと文字列が混じっている出力を得たい場合は一度別の変数に置き換える方法があります。



{AutoHotkey 暴走対策}
::
Pause, On
return

AutoHotkeyの暴走はいろいろな部分がめちゃくちゃになる可能性があり、非常に危険です。
緊急停止信号用に一つキーを用意しておいたほうが無難です。一度これを実行した後はソフトを再起動(Reload This Script)します。


{構成の例1}
段々扱うスクリプトが多く、複雑になってくると、どのキーを何に対応させたのかの一覧が欲しくなります。
;を使えば、スクリプトとして認識されず、作成中のメモとして使うことが出来ます。

;始動キーの説明
変数指定
スクリプト

の順番で配置することにより視認性のアップが期待できます。

テキストで編集しようとすると疲れます。長くなったらエクセルで複数列を使用してかっこなどの対応関係を見やすくします。
テキストの保存→(Reload This Script)で修正したスクリプトに変更になります。不注意で間違わないようにします。


{構成の例2}

 


制御用とLabel用の二つを起動しておくと、わずかに効率は劣りますが、大量の操作を扱うことが出来るようになります。

制御系はLabelの変数を変更した後リロードさせる部分を担当させます。
安全装置が働くようで、自身をリロードするように組ませることはできなかったのでリロード部分のみの自動化です。
リロードすると再起動してタスクバー内でのアイコン位置が変化することがあるため、写真のように、左上を制御系、2番目をLabel用にしてから、座標指定で組みます。

制御系(Label用リロード担当)
DetectHiddenWindows, On
SetTitleMatchMode,2
Send, ^s
CoordMode, Mouse, Screen
Sleep, 300
MouseClick, left, 1299, 678
Sleep, 300
MouseClick, Right, 1147, 619
Sleep, 300
MouseClick, left, 1160, 510
Sleep, 1000
return


Label部分
cellnumb=Label1
!3::
DetectHiddenWindows, On
SetTitleMatchMode,2
Gosub, %cellnumb%
return

Label1:
Send, a
return

Label2:
Send, b
return

別にエクセルなどの表計算ソフトで、どの操作がどの番号に対応させたいか設定を決めておいて、Labelとしてスクリプトを組んでおきます。
実行したいLabel番号をcellnumbに入力し制御系でリロードを一回行わせ、始動キーを入力すれば目的のスクリプトが走ります。

ファイルを開くなどの操作のために、デスクトップにショートカットなどを集めたフォルダを作って、ファイルを開く画面に文字入力指定を適用することで、
面倒なフォルダ操作が楽になる可能性なども試しています。


{構成の例3(文字列高速生成)}
aaaaaa001
bbbbb
ccccc
aaaaaa002
bbbbb
ccccc
……

などと、少しずつ異なるスクリプトが交互に出てくる場合は表計算ソフトの文字関数、オートフィル、並べ替えをメインに大量生成できます。

aaaaaa001の行を2列に分けてオートフィルでaaaaaaと001からの連番を取得し、CONCATENATE(aaaaaaa, 001)(セル番号が入る)関数で結合し、形式指定コピペでテキストを得ます。
bbbbb、ccccccなどもコピーかオートフィルで必要数作成し、手前の列に、完成後のスクリプトで入る順番を等差数列のオートフィルで記入します。

1 aaaaaa001
4 aaaaaa002

2 bbbbb
5 bbbbb

3 ccccc
6 ccccc

一列に並べて、順番の列で並べ替えを行うと目的の文字列を得ることが出来ます。なお、セルの書式設定をテキストなどにしておかないと、自動校正で変な動作になります。
その他エクセルマクロによる高速化手段など。


{例文8}GUI
Guiを使用することにより、変数をテキストではなく、直接リアルタイムで入力、変更できるようになります。

Gui, add, text,, xxxxxxxxxxx
Gui, add, edit, vHENSUU101 limit4 w50 ym

テキストと入力ボックスの表示です。入力ボックスに打ち込んだ数字や文字がHENSUU101に格納され、他のスクリプトに影響させることができます。
limitは入力字数制限、w50は入力ボックスの幅をピクセルで指定するオプションです。ymは改列を表します。
内部でGuiのレイアウトを作成してshowで表示させます。

Gui, show,, Gui名
KeyWait, Return, D
Sleep, 1000

ここでは、すぐ閉じてしまうので、Returnを押してから1秒後に閉じるように設定しました。

Gui, submit
Gui, destroy

submitでeditに入力した変数が反映され、他のGui操作の邪魔になるので、Guiを完全に消去します。
同一のGuiに同じ変数のテキストとエディットを表示させることはできません。
いきなり変数行列のGuiを表示させても矮小な画面しか表示されないので、0000などの初期値を設定しておくといいです。



★多言語との互換性
Autohotkeyは非常に直感的な命令体系で私にも理解できましたが、ここでの感覚を別のプログラミング言語に応用したときにどうなるか気になります。

VBの変数の記述方式との互換性では

変数指定の場合Dim 変数名 As Stringの行を挿入し、
変数名 = 数字などとします。

Dim numberyear1 As String
Dim numberyear2 As String
Dim numberyear3 As String
Dim numberyear4 As String
Dim numberycount As String
Dim numberstart As String
Dim numbercount As String


numberyear1 = 2008
numberyear2 = 2009
numberyear3 = 2010
numberyear4 = 2011

numberycount = 4
numberstart = 12
numbercount = 5

定義付けに種類が存在するための行の追加であると考えられます。
年数4、毎年12番から始まる5連続のファイルを操作するなどといった制御がこのような記述で可能になると思われます。


%aaaaa%でくくっていた文字列としての扱いは""でのくくりになるなどの違いが存在します。

ソフトへの様々な種類の入力に反応して動くように指定するので、はじめに起動条件の行が増えるほか、
TextBox1.Text = TextBox2.Text

テキストボックス2に入力した文字をテキストボックス1に出力するなどの文字列操作が行えます。




{発展(作成開始リロード高度化)}
作成開始、ベロシティ100化に、初期設定MIDI読み込みと、総合オリジナル音色ファイル読み込みをセットにして作成開始スクリプトを高機能化しました。
同上のATSMA5リロードスクリプトAと、Domino→デスクトップにおいたダミーの中継用MIDIへの経路のスクリプトBを新たに新設することにより、
理論上の作成ポテンシャルが向上します。




スクリプトA(Domino⇒中継MIDI→ATS、スクリプトBで⇒をあわせる)
!a::
Send, !s
Sleep, 300
Send, {Enter}
Sleep, 200
Send, y
Sleep, 50
WinActivate, MA-5 Authoring Tool
WinWait, MA-5 Authoring Tool
Sleep, 50
Send, ^r
Sleep, 150
Send, {Enter}
return



スクリプトB(Domino→中継MIDI)
!b::
Send, !s
Sleep, 300
Loop, 6
{
Sleep, 300
MouseClick, left, 382, 80
}
Sleep, 300
MouseClick, left, 231, 237
Sleep, 300
MouseClickDrag, left, 126, 236, 252, 236 , 8
Sleep, 300
Send, newhp101
Sleep, 300
Send, {Enter}
Sleep, 300
Send, y
return



;改良作成開始スクリプト
;ソフト起動
Run, MA5_ATS.exe, C:\Users\user\Desktop\ソフト\MA5_AT\ATS-MA5-SMAF
Run, C:\Users\user\Desktop\編集中の楽曲
Run, Domino.exe, C:\Users\user\Desktop\ソフト\Domino138
Run, DIVIDER.EXE, C:\Users\user\Desktop\ソフト\div108\DIVIDER
Run, MCP-MA7.exe, C:\Users\user\Desktop\ソフト\mmfファイル再生
WinWait, MCP-MA7
Sleep, 450
DetectHiddenWindows, On
SetTitleMatchMode,2
Sleep, 50
winMove, MA-5 Authoring Tool, , 48, 51, 874, 514
Sleep, 50
winMove, MCP-MA7 -, , 807, 39, 494, 266
Sleep, 50
winMove, DIVIDER, , 913, 0, 391, 465
Sleep, 50
winMove, - Domino, , 0, 84, 1056, 678
Sleep, 50
winMove, 編集中の楽曲, , 1036, 294, 263, 473
Sleep, 500


;中継MIDI読み込み
CoordMode, Mouse, Screen
MouseClick, left, 252, 67
Sleep, 300
CoordMode, Mouse, Relative
Send, ^l
Sleep, 300
Loop, 6
{
Sleep, 100
MouseClick, left, 380, 45
}
Sleep, 100
MouseClick, left, 313, 447
Sleep, 100
Send, newhp101
Sleep, 100
Send, {Enter}
Sleep, 100
Send, {Enter}


;Voice Edit Vel 100
Sleep, 500
MouseClick, left, 149, 43
Sleep, 180
MouseClick, left, 200, 224
Sleep, 250
MouseClick, left, 168, 276, 2
Sleep, 1000
MouseClickDrag, left, 473, 551, 494, 545 , 4
Sleep, 180
MouseClick, left, 307, 619


;オリジナル音色ファイル読み込み
Sleep, 400
MouseClick, left, 21, 43
Sleep, 180
MouseClick, left, 108, 255
Sleep, 200
Loop, 6
{
Sleep, 100
MouseClick, left, 380, 45
}
Sleep, 100
MouseClickDrag, left, 128, 449, 232, 449 , 2
Sleep, 100
Send, neirorewrite
Sleep, 100
Send, {Enter}
Sleep, 100
MouseClickDrag, left, 128, 449, 232, 449 , 2
Sleep, 100
Send, Kuta Voice File.vm5
Sleep, 100
Send, {Enter}
return




{更新(ミキサー調整)}
ホイールを用いて音量を標準化するスクリプトです。耳を傷めなくて済みそうです。

!q::
Run, SndVol.exe
WinWait, 音量ミキサー
Sleep, 100
WinMove, 音量ミキサー, , 300, 200, 900, 412
Sleep, 200

MouseClick, left, 65, 239
Sleep, 200
MouseClick, WD, , , 50
Sleep, 200
MouseClick, WU, , , 50
Sleep, 200

HEN=1
Loop, 6
{
HEN=% HEN+1

MouseClick, left,% (114*HEN)-53, 239
Sleep, 200
MouseClick, WD, , , 50
Sleep, 200
MouseClick, WU, , , 5
}
return








※参考web、AutoHotkeyを流行らせるページ
作り方へ戻る