Finale Luaのススメ
はじめまして。楽譜浄書をしている石田といいます。
このブログは、なんとなく自分用の備忘録的な意味合いも含めてしたためていますが、もしご興味がある方がいらっしゃいましたら是非覗いてみてください。
とは言いつつ最初の投稿が、不人気の「Finale Luaのススメ」なのはご愛嬌ということで…
「Finale Lua」とは
まず「Finale Lua」とは、楽譜制作ソフト「Finale」の機能の中で「プラグイン」というある種操作の自動化ツール的なものがあるのですが、それを「Lua Script」というプログラミング言語を使って自作してしまおう、というもの。
「Finale Lua」と「Finale Script」「Finale プラグイン」の違い
前述の通り、Finaleには「プラグイン」というメニューがあって、この中には楽譜制作に便利な作業効率化機能がいっぱい詰まっています。これらは皆さんよく使われると思いますが、それとFinale Luaとの関係をちょっとご説明します。
まず、Finale標準機能にない拡張機能は「プラグイン」と呼ばれていて、その中には「Finale Script」や「Finale Lua」も含まれます。これらはプラグインの一種なんですよね。
「Finale Script」は、RPA(Robotic Process Automation - 業務自動化技術)のイメージです。ユーザーの操作を代わりに自動で行ってくれます。
マウスの操作やキーボードの操作を登録していくイメージです。そういうことができる「プラグイン」です。
一方「Finale Lua」はというと、「Lua Script」というプログラミング言語を使って実際の内部パラメータを直接がしがしいじることができるイメージの「プラグイン」です。
まあ、だからと言って何でもできるかといえばそうではなく、用意されているクラス・関数でできることしかできないわけで…(苦悩中)
ちなみに、プラグインのファイルは拡張子「*.fxt」で作られています。Lua Scriptで作ったファイルは「*.lua」であり、そのluaファイルを(Windowsの場合)「RGPLuaWin.fxt」というFinale Luaを実行するプラグインで扱います。つまり、Finale Luaのスクリプトを実行するには「RGPLuaWin.fxt」をインストールする必要があります。luaファイルだけ配布してもデフォルトのFinaleのままでは実行できません。
なぜ誰も知らないのか
前述の説明ではこの「Finale Lua」の機能、なんだか使えそうですが、じゃあ使おうとしていざ調べてみると、ネット上でほとんどヒットしません(日本語では2023/4現在正しい内容のヒット数0!)し、見つかったとしても基本的に情報は英語です。
しかも、英語でもそこまで多くの情報がヒットするわけではなく、公式ページ(RGP Lua)とJWさんのページ、Facebookのページをとあとはちらほら、といった感じ。
ではスクリプトをダウンロードして使おうにも、そもそも使い方が載っていないという始末…
まあ、そもそもFinaleはショートカットキーのカスタマイズやFinale Script、操作の効率を上げるプラグイン機能があるので、わざわざわかりづらくプログラミング知識を必要とするこのような機能を使う必要はないのです。
と、いうことでFinale Luaについてはみなさま(私も含めて)華麗にスルーして今日に至っています。まるでそんなものなかったかのように。というかそもそも多分Finale Luaを使ってまでFinaleのできないことをしようとするのであれば、SibeliusやDoricoを使った方が幸せになれます
とはいえFinale Luaではこんなことができる
というのを載せて、Finale Luaのすばらしさを啓蒙したかったのですが、はっきり言って公開されているスクリプトは「それで?」的なものしか無く…推しアピ力が非常に弱いです。
なお、「どんなことができるのか」という答えについては、「Finaleで標準機能として入っているプラグインと同じようなレベルのことができる」です。あのレベルのことを自作できます。
ただ、前述の通りFinale Luaとして配布しているLuaファイルは微妙なものが多いという印象です。
そんな中でも自分としては有用かな、と思った数少ないものを載せておきますので、ぜひご参考にしてみてはいかがでしょうか。(そのうち、自分の作ったものを掲載できればいいなと思っています…)
・各パートの「パート名」「短縮パート名」を一覧で修正できる
まず、「Rename Staves」というスクリプトをご紹介します。
テンプレートなどから新しいスコアを起こす際、まずパート名や省略パート名を修正することがあると思います。
その際の作業として、
[スコアマネージャ](Ctrl+K)>パートを選択>[正式五線名]をクリック>パート名を入れて「OK」をクリック(入力完了してもEnterは押せない)>[省略五線名]をクリック>パート名を入れて「OK」をクリック(同じくEnterは押せない)>これらを全パート行う>スコアマネージャを閉じる
という「キーボードとマウスを持ち替える」というイライラポイントが非常に多く発生するのですが、これをExcelのように表形式で一括でやってしまおうというもの。これはスグレモノな気が自分ではしています。
※ちなみに、一括フォント変更は[プラグイン]>[その他]>[フォント変更]から可能です。これを組み合わせることで一通りのことはできます。
ただし複数行のテキストや行間の調整など割と細かいことをする必要がある場合になってくると、おそらく五線ツールやスコアマネージャの方が早いです。
・連桁のある装飾音符のスラッシュを自動でつけることができる
続いてはマニアックなご要望にお応えしてくれる「Grasenote Slash」というプラグイン。
このプラグインは、Finaleでは通常付けられない「スラッシュ付きの連桁装飾音符」を作ってくれるという機能を持っています。扱いはアーティキュレーションですのでカスタマイズもできますし、設定を作りこむこともできるようです。
「Rename Staves」「Gracenote Slash」各プラグインのダウンロード先はこちら。
Finale Luaを使うには
本題です。Finale Luaを使って自作プラグインを作成するには、以下を用意する必要があります。
・開発環境(JW Lua「jwlua64.fxt」) ※作るのに必要
・実行環境(RGP Lua「RGPLua***.fxt」などなど) ※使うのに必要
luaファイルを配布する際は、前述の通り実行環境をお使いの方のPCにインストールしていただかないといけません。(そのあたりがFinale Luaが普及しない要因の一つのような…)
以下簡単に説明しますが、Windowsを例としています。おそらくMacでも似たような設定で可能かと思いますが、細かいところは異なるかもしれませんので、そのあたりは頑張って調べてみてください。。
・開発環境(JW Lua)のインストール方法 ※作る人限定
前提条件として、Finale25以降限定と思ってもらえればよいと思います。というのも、そもそもJW Lua自体は昔からあるものなのですが、使用するクラスや関数などがアップデートされており、そちらに25以降の機能も入っていたりするためです。25よりFinaleの古いことで起こることは私では手に負えません。悪しからず。。
まずご利用環境に合わせて以下のサイトからダウンロードしてください。自分はWindowsなので一番上の「JW Lua (Beta) v0.54 for 64-bit Windows」をダウンロードしました。
ダウンロードしたファイル(zipファイル)を展開します。
Finaleのプラグインフォルダを開いておきます。
自分の環境だとFinaleのプラグインフォルダは以下です。※Finaleフォルダの下のフォルダ名はFinaleバージョン名です
C:\Program Files\MakeMusic\Finale\27\Plug-ins
このフォルダの中に新しく「Lua」というフォルダを作成し、その中に展開したファイル3つ(jwlua64.fxt、jwluatagfile.xml、SciLexer.dll)を保存します。※要管理者権限
フォルダ名は何でもいいです。
Finaleを再起動します。すると、上部のメニューの[プラグイン]を開いた際に作成したフォルダ名のメニューが表示されており、それにマウスポインタを置くとメニューが展開され、その中に「JW Lua」が入っていれば成功です。
使い方は、ざっくりですがスクリプトエディタっぽいところにがつがつコードを書いていって、右下の「Run Script」をクリックすれば実行されます。見てお分かりかと思いますが。。
ちなみに、コードの書き方の初歩については別途記事を書こうと思いますが、Lua Scriptの書き方についてはChatGPT先生に教わった方が早いです。
・実行環境(RGP Lua)のインストール方法 ※使う人、作る人共通
こちらも、前提条件としてFinale25以降限定として考えて頂ければ。前述の通り、使う方もこちらをインストールしないとFinale Luaを使えません。
まずご利用環境に合わせて以下のサイトからダウンロードしてください。自分はWindowsなので一番上の「RGP Lua Version 0.66(2023/4現在)」の「Windows」のものをダウンロードしました。
https://robertgpatterson.com/-fininfo/-rgplua/rgplua.html
ダウンロードしたファイル(zipファイル)を展開します。
Finaleのプラグインフォルダを開いておきます。
自分の環境だとFinaleのプラグインフォルダは以下です。※Finaleフォルダの下のフォルダ名はFinaleバージョン名です
C:\Program Files\MakeMusic\Finale\27\Plug-ins
このフォルダの中に新しく「Lua」というフォルダを作成し、その中に展開したプラグインファイル(RGPLuaxxx.fxt)を保存します。※要管理者権限
フォルダ名は何でもいいです。ちなみに、開発環境を作られた方は、同じフォルダに入れても問題ありません。というか同じフォルダにした方がいいです。冗長なので。
Finaleを再起動します。すると、上部のメニューの[プラグイン]を開いた際に作成したフォルダ名のメニューが表示されており、それにマウスポインタを置くとメニューが展開され、その中に「RGP Lua」が入っていれば成功です。
・RGP Luaの使い方
[プラグイン]>(作成したフォルダ)>[RGP Lua]でRGP Luaを開くと、以下のようなダイアログが表示されます。
最初はウィンドウに何も表示されてないはずなので、「Add」ボタンをクリックします。
「Select File」でluaファイル(*.lua)を選び、「OK」をクリックします(ほかの箇所は空欄で問題ありません)。そうすると、ウィンドウの中に先ほど登録したluaが表示されているので、「OK」をクリックしてFinaleを再起動します。
Finale再起動後、「RGP Lua」と同じメニュー階層にluaファイルが追加されていれば成功です。
ちなみに、覚えておいた方がいい内容としては…
・luaファイルはどこに置いてもいい。
・意外とFinale 25以上を要求するスクリプトが多い。
・ほかのプラグインのように、プラグインフォルダに直にフォルダを作っても反映されない。
※Finaleプラグインは「RGP Lua」だけです。その機能として「本体と同じ階層のメニューに表示する」ようになっているので、そこをいじらないとメニューをカスタマイズできません。(一応メニューをカスタマイズできるスクリプトは公開されている)
といったところです。少しはハードルが下がりましたでしょうか?ではでは。