夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MuseScore4で自作のプラグインを実行する

本日は普段と少し種子が異なりますが、Musescoreで自作のプラグインを実行してみます。

〇Musescoreとは?

Musescoreは無料で使用できる作譜ソフトウェアです。

GitHubに最新のものを含めたソースコードが公開されており、実際のコードを確認することができるほか、改造や改良を行うことができます。

ソースコードを見る限りプログラム自体はC++で記述されているようです。

〇Musescoreのプラグインについて

Musescore自体はOSSであり、ソースコードを編集しビルドすることでオリジナルの改造版を作成できます。

しかし、多くの場合はMusescore事態を改造したいというよりはBlenderのアドオンのように拡張機能を追加したいという需要だと思います。(筆者も後者の需要です。)

この場合はプラグインを使用することができます。

プラグインは小規模なプログラムコードで構成される拡張機能を指します。

このプラグイン自体はMuseScoreの公式サイトで公開もされています。

Plugins | MuseScore

プラグイン自体はQMLというプログラミング言語で記述されています。

import MuseScore 3.0
import QtQuick 2.0 // Componentをインポートする

MuseScore {
    version: "4.0"
    description: "A simple plugin to display a dialog box"

    title: "Plugins.SimplePlugin"
 onRun: {
        var component = Qt.createComponent("Dialog.qml");
        if (component.status === Component.Ready) {
            var dialog = component.createObject(null, {"text": "Hello, World!"});
            if (dialog) {
                dialog.open();
            } else {
                console.log("Error creating dialog: " + component.errorString());
            }
        } else {
            console.log("Error loading component: " + component.errorString());
        }
    }
}

このソースコードを.qmlの拡張子で保存することでプラグインとして完成します。

プラグインの実行方法

次に先ほどのプラグインを実行します。

プラグインを実行するためにはMusescoreのプラグインディレクトリに.qmlファイルを配置、その後Musescore側でプラグインとして有効化する必要があります。

①MuseScoreのプログラムディレクトリに入り、pluginsを開きます。

②別のディレクトリに.qmlファイルを作成します。

③コードを記述します。

④①のパスにドラッグアンドドロップして配置します。(基本的にプログラムファイルのディレクトリは保護のために簡単にファイルを作成できないため他ディレクトリに作成して移動しています。)

⑤MuseScoreを開きプラグインを管理を選択します。

⑥ここに先ほど作成したプラグインが表示されます。

プラグインを選択し有効化を選択します。

⑧有効化されたプラグインとして表示されます。

⑨スコアへ戻り上部ワールドメニューからプラグインより表示されるプラグインを選択することで実行できます。

なお筆者がまだMuseScoreのQMLになれておらず今回はエラーが出てしまっています。がプラグインとして登録自体はこの手法で行うことができました。

本日は以上です。