見出し画像

FLStudioのオートメーションクリップを爆速で作るスクリプトを作ってみた

2025/01/14 16時57分更新
v5でテキストボックスで一部の文字が打ち込めないバグを修正。
最新バージョンはFLScriptv5です。最新バージョンをメモ帳で開いて再度マウスの座標を合わせてください。

FLStudioで、オートメーションクリップを作るのって手順が多くてめんどくさいなぁと思ったことがある人多いと思います。
今回はそのめんどくささを克服する為のスクリプトを作ったので配布しようと思います。

今回実装した動作は二つあります。
1.キーボードのAを押すと、直前に触ったシンセやボリュームなどのノブのオートメーションクリップを作成
2.キーボードのShift+Aを押すと、オートメーションの初期値を設定する
です。

このようにキーボードのAを押すと爆速でオートメーションクリップを作れます。

そして次の手順を踏んでもらえばオートメーションクリップをキーボードショートカットで作成できるようになると思います。

1.AutoHotKeyを導入しよう!
2.スクリプトをコピペ!
3.環境に合わせてスクリプトを編集!
4.保存して実行!

1.AutoHotKeyを導入しよう!
AutoHotKeyとはキーボードショートカットなどをカスタマイズするソフトウェアです。windows専用

まずはこちらから最新版をインストールしてください。

https://www.autohotkey.com/

2.スクリプトをコピペ!
インストールが終わったら、以下をメモ帳にコピペして適当な名前を付けて拡張子(.ahk)で保存してください。

#Requires AutoHotkey v2.0

; FL Studio 64ビットがアクティブで、特定のクラス名がフォーカスされていないときだけ有効
#HotIf WinActive("ahk_exe FL64.exe") && !IsTextBoxFocused() && !IsMouseOverD3DWindow()

; Aキーでオートメーションクリップを作成
a:: ; Aキー
{
    ; 現在のマウス座標を保存
    MouseGetPos(&originalX, &originalY)
    
    ; マウスを座標を任意の場所に移動
    MouseMove(685, 60)
    ; 右クリック
    Click("right")
    ; Aキーを押す
    Send("{a}")
    ; Enterキーを押す
    Send("{Enter}")
    ; 元の座標にマウスを戻す
    MouseMove(originalX, originalY)
}

; Shift + Aキーでinit song with this position
+a:: ; Shift + Aキー
{
    ; 現在のマウス座標を保存
    MouseGetPos(&originalX, &originalY)
    
    ; マウスを座標を任意の場所に移動
    MouseMove(685, 60)
    ; 右クリック
    Click("right")
    ; iキーを押す
    Send("{i}")
    ; Enterキーを押す
    Send("{Enter}")
    ; 元の座標にマウスを戻す
    MouseMove(originalX, originalY)
}


#HotIf ; これ以降のホットキーはすべてのウィンドウで有効

; テキストボックスにフォーカスがあるかを確認する関数
IsTextBoxFocused() {
    focusedControl := ControlGetFocus("A")
    if (focusedControl != "")
    {
        className := WinGetClass("ahk_id " WinGetID("A"))
        return InStr(className, "TCombineWizardDialog") || InStr(className, "#32770") || 
               InStr(className, "TNameEditForm") || InStr(className, "TNewProjForm") || 
               InStr(className, "TPluginListForm") || InStr(className, "TRedeemCodeForm") || 
               InStr(className, "TBrowserForm") || InStr(className, "TMIDIForm") || 
               InStr(className, "TRenderForm")
    }
    return false
}

; マウスカーソルがIntermediate D3D Window2上にあるかを確認する関数
IsMouseOverD3DWindow() {
    MouseGetPos(,, &win, &control)
    return control = "Intermediate D3D Window2" || control = "TQuickEdit1"
}

コピペするのも面倒だと思うのでファイルを上げときます。

保存する場所はどこでもいいですが、分かりやすい場所に保存しておきましょう。
僕は、ドキュメントフォルダーにAutoHotKeyフォルダーを作って保存してます。

3.環境に合わせてスクリプトを編集!

多分ここが一番大事なんですが、難しいことではありません。
まずはAutoHotKey Dashを起動します。
AutoHotKeyをインストールしたときに一緒にインストールされてると思います。

Window spyを押します。(window spyは別に怪しいものではなく、画面上の情報を表示するツールです。)
この機能を使って画面上にあるマウスカーソルの座標を読み取る必要があります。(スクリプトを動かすのにFLstudioのマルチリンクコントローラーのアイコンの座標を指定してあげるため)
マルチリンクコントローラーとは以下の画像の赤い矢印で指定されてるアイコンのことです。

window spy で表示したmouse positionのScreenの座標をメモっておきます。僕の場合(685,60)付近でした。

次にコピペ、またはダウンロードしたスクリプトを右クリックしてメモ帳で編集します。

MouseMove(685, 60)

コードの中にMouseMove(座標)っていう箇所が、探せば二か所あると思います。
そこのカッコの中をさっきメモした座標の値をそれぞれ入れます。
どちらとも同じ値です。僕の場合(685,60)でした。
多分画面の解像度とかによって変わると思います。

二か所に座標を入れ終わったらメモ帳を上書き保存します。
スクリプトをダブルクリックして起動させるか、もうすでに起動してしまった場合はReloadします。

これで作業はおしまいです。
FLStudioを立ち上げ、どっかのノブを弄ってキーボードのAを押したらオートメーションクリップが出来て、shift+Aでオートメーションの初期値が変更できるはずです。

このスクリプトはFLstudioにしか適用されないのでずっと立ち上げたままでも問題ないと思います。ただ、PCをシャットダウンしたら閉じてしまうのでその都度、スクリプトをダブルクリックして立ち上げないといけません。
それが面倒だなと感じる方は、スタートアップアプリに登録しとくといいかも知れないです。

スクリプトのショートカットを作りスタートアップのフォルダーに置いておくとPCを立ち上げ時自動で起動してくれます。

以上です。お疲れ様でした。
これで爆速でオートメーションが書ける準備は整いました。

それでは、FLstudioで良いDTMライフを!!

いいなと思ったら応援しよう!

warpnica
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!