0.初めに
この記事ではmidiをもとにspike-rtのコードに変換するオリジナルpythonソフトを紹介します。
前提としてまず、spike-rtを環境構築する必要があります。こちらの記事をもとにspike-rtの環境構築を行ってください。
音を鳴らす文法についてはこちらをご覧ください。
1.環境構築
フォルダを作成する
まず、こちらのリポジトリをクローンし、実際に使用できるようにします。
そのために、まずはクローン元の入れ物のようなフォルダを作ります。
エクスプローラー(フォルダアイコンのもの)を開いて、一番下にスクロールしてください。
すると、このような「🐧Linux」というタブがあるはずです。
このようになるはずです。
このlinuxをクリックしてください。

そして、この「Ubuntu-24.04」をクリックし、開いてください。
このように中身が見れます。

その後、真ん中にある「root」というところをクリックしてください。
rootとは、フォルダを置いておく作業スペースみたいなものです。
すると、このような画面が表示されます。

その後、右上にある「+新規作成」というボタンを押してください。

ここから、「フォルダー」を押してください。
そうするとこのように名前を入力ところがあるので、名前を付けてください。

ここでは、名前を「spike-rt-midi」としたことにします。
次にフォルダーに入って、何もないところから左クリックしてください。

その後、「codeで開く」を選択してください。自動でVScodeが起動します。
リポジトリのクローン
つぎに、先ほど用意したフォルダーに実際に動かすためのgithubのリポジトリをいれます。
こちらのリポジトリをクローンします。
「ctrl + Shift + @」でターミナルを開いて、
まず、githubをインストールします。(おそらく入っていると思いますが、念のため行ってください。)
sudo apt update
sudo apt install git -y
「sudo」とは管理者権限で実行するという意味です。
git clone https://github.com/keikyufun/SPIKE-RT_midi
その後、このコマンドでクローンをしてください。
そうするとこのようにファイルが展開されるはずです。

pythonを使えるようにする
次に、pythonのコードを動かすために、pythonのインストールをします。
ターミナルアプリ(VSコードのやつではない)を開いて、+のよこにある「∨」を押して、「コマンドプロンプト」を選択してください。

その後、
winget install Python.Python.3.13
を入力してください。
次に再びVSコードを開いて、拡張機能を選択してください。(左側にある田のようなアイコンをクリック)
そこで、「python」と検索してください。
すると、このような画面が表示されるはずです。

「インストール✓」を押して、インストールしてください。
インストールが完了したら、「ctrl + shift + P」でコマンドプロンプトを開いてください。
コマンドパレットとは、VSコードの機能にアクセスする、「設定」のようなものです。
そこで、
Python: Select Interpreter
を入力して、エンターを押してください。
その後、

このような画面が出てくるので、「Python 3.12.3」をクリックしてください。
これでpython関連は終了です。
実行権限の付与
次に、SPIKE-RT_MIDIに含まれているシェルスクリプトを実行するために実行権限をそれぞれに付与します。
シェルスクリプトとは、ターミナルで実行する複数のコマンドをまとめ、自動化することができるショートカットのようなものです。
VSコードのターミナル(ctrl + shift + @)で、これを実行してください。
chmod +x ./convert_c.sh
chmod +x ./convert_py.sh
これで実際にシェルスクリプトが使えるようになります。
これで環境構築は終了です。
2.MIDIを用意する
まず、midifileを用意してください。
まだ開発途中で、単音の楽譜しか読み込めないので、パートが一つのMIDIfileを用意してください。
その後、ダウンロードしたMIDIfileを切り取り(ctrl + x)、フォルダにコピー(ctrl + c)してください。
フォルダへの行き方
エクスプローラー(フォルダアイコンのもの)を開いて、一番下にスクロールしてください。
すると、このような「🐧Linux」というタブがあるはずです。
このようになるはずです。
このlinuxをクリックしてください。

そして、この「Ubuntu-24.04」をクリックし、開いてください。
このように中身が見られます。

その後、真ん中にある「root」というところをクリックしてください。
すると、このような画面が表示されます。

ここから、フォルダに移動できます。自分の作ったspike-rt_MIDI用のフォルダにコピー(ctrl + c)してください。

3.機能
このmidiをSPIKE-RTに変換するプログラムは、pretty midiというpythonベースのmidiリーダーを使用しており、このコードは私がC言語で書いた物をcopilot(githubじゃないほう)にpythonベースとして改良してもらった物です。
python版、C版、HTML版の3つがあります。
4.python版
説明
pythonベースの変換ツールです。
フォーク元のprettymidiがpythonなので、一番エラーが少ないかと思います。
Cよりおすすめです。
使い方
まず、VSコードのターミナル(ctrl + shift + @)で、元から入ってるシェルスクリプトを実行します。
./convert_py.sh
これを実行すると、フォルダ内のmidiファイルが、
root@XXXXXX-XXXXXXXX:~/spiek-rt-midi# ./convert_py.sh
MIDI files list:
[0] *〇〇.mid
[1] *××.mid
[2] *△△.mid
:::::::
Select number (all = all):
のように出てきます。
これで、変換したいmidifileの番号を入力して、エンターを押してください。
allと入力すると、全部変換されます。
その後、
root@XXXXXX-XXXXXXXX:~/spiek-rt-midi# ./convert_py.sh
MIDI files list:
[0] *〇〇.mid
[1] *××.mid
[2] *△△.mid
:::::::
Select number (all = all): 0
Enter track number for *.mid (default 0):
のように
表示されるので、トラックナンバーを選んでください。こちらも、allと入力すると、全部変換されます。ここではallとしたことにします。
これで、
spike-rt_midi内に、〇〇というフォルダーが作られます。
このフォルダに
〇〇
↪track0
↪part0
↪output.txt(実際のコード)
↪play.html(試聴用のウェブページ)
↪part1
↪track1
↪track2
↪track3
↪track4
↪play.html(一括で聴ける試聴用のウェブページ)
::::
このようなフォルダが生成されるので、ここからoutput.txtの中身を、.cにコピペすることで、spikeprimeでMIDIの選択したパートが流れます。
5.C版
説明
C言語ベースの変換ツールです。
私が作った物なので、デバッグがしやすいです。是非バグがあれば編集リクエストで教えてください!
ほぼ使い方は変わりません。
使い方
まず、VSコードのターミナル(ctrl + shift + @)で、元から入ってるシェルスクリプトを実行します。
./convert_c.sh
これを実行すると、フォルダ内のmidiファイルが、
root@XXXXXX-XXXXXXXX:~/spiek-rt-midi# ./convert_py.sh
MIDI files list:
[0] *〇〇.mid
[1] *××.mid
[2] *△△.mid
:::::::
Select number (all = all):
のように出てきます。
これで、変換したいmidifileの番号を入力して、エンターを押してください。
allと入力すると、全部変換されます。
その後、
root@XXXXXX-XXXXXXXX:~/spiek-rt-midi# ./convert_py.sh
MIDI files list:
[0] *〇〇.mid
[1] *××.mid
[2] *△△.mid
:::::::
Select number (all = all): 0
Enter track number for *.mid (default 0):
のように
表示されるので、トラックナンバーを選んでください。こちらも、allと入力すると、全部変換されます。ここではallとしたことにします。
これで、
spike-rt_midi内に、〇〇というフォルダーが作られます。
このフォルダに
〇〇
↪track0
↪part0
↪output.txt(実際のコード)
↪play.html(試聴用のウェブページ)
↪part1
↪track1
↪track2
↪track3
↪track4
↪play.html(一括で聴ける試聴用のウェブページ)
::::
このようなフォルダが生成されるので、ここからoutput.txtの中身を、.cにコピペすることで、spikeprimeでMIDIの選択したパートが流れます。
6.HTML版
説明
一番使うのが簡単です。
ボタンをポチポチするだけで終わります。
テンポ設定機能のあるconvert.htmlがメインですが、変換の早いconvert_old.htmlもあります。
使い方
ここでは開き方について書きます。
まず、convert.htmlを左クリックしてください。

そうすると、上の画像のように、「エクスプローラーで表示する」という欄が出てくるので、クリックしてください。
そうするとこのような画面が表示されます。

これをダブルクリックすることで、ウェブページが開きます。

※色は私の好みです。気に入らない人は、HTMLコードを変更することで、変えることが出来ます。
ブックマークに保存しておくと便利です。
これで後はボタンをポチポチすれば変換されます。
7.終わりに
現在2週間ほどspike-rtにUSB機能を入れるのに奮闘していて、かなり忙しいので、あまりエラーは読めないかもしれません。すみません。
是非音楽をspikeprimeで楽しんでみてはいかがでしょうか。
midiをダウンロードするところのおすすめはここです。
ダウンロードしたいMIDIをえらんで、下の「MIDI」を押すとダウンロードが開始されます。

是非ダウンロードしてはいかがでしょうか。