macOS版のテキスト音楽「サクラ」でmidiを生成する

今日も
AI作曲
関連の
記事です。

今日は
AI作曲で
midiファイルを
生成する方法を
ご紹介しますね。

macOS版のテキスト音楽「サクラ」でmidiを生成する

それでは、行ってみましょう!

まずは
今日の
一曲から
ですね!

20230414
//------------------------------------------------------------------------------
// テキスト音楽「サクラ」 Text Music Sakura Data(on macOS CUI v2.379)
//------------------------------------------------------------------------------
/*
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【Title】20230414
【Cpomposer】rana
【Date】2023/4/14
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回まで
on macOS CUI v2.379
と書いていましたが
正確には
ベータ版のサクラでした。

今回から
サクラの新バージョンを
使っていきます。

混乱を招いてしまい
申し訳ありませんでした。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
*/

//_00:Setup
TrackName     = {"20230414"}
Copyright     = {"rana"}
Tempo         = 60;
TimeSignature = 4,4;
ResetGS;ResetXG;ResetGM;
TrackSync;

//MML
//Melody
TR(1) v100 @11 o6  q100 l4 egb> d l8 cdec<g4e4
                  l8 fga>c c<b>cd d4.ee4 r4
               o6 l4 egb> d l8 cdec<g4e4
                  l8 fgab >c<b>cd c1

               o6 l4 egb> d l8 cdec<g4e4
                  l8 fga>c c<b>cd d4.ee4 r4
               o6 l4 egb> d l8 cdec<g4e4
                  l8 fgab >c<b>cd c1
//Harmony
TR(2) v88 @11 o5 l2 q100 'ceg' '<b>dg' '<a>ce' '<gb>d'
                '<fa>c' '<gb>d' '<fa>c' '<gb>d'
                'ceg' '<b>dg' '<a>ce' '<gb>d'
                '<fa>c' '<gb>d' 'eg>c<'4 'fa>c<'4 'eg>c<'2

         v90    l8 cege <b>dgd <a>cec <gb>d<b>
                <fa>c<a> <gb>c<b> <fa>c<a> <gb>d<b>
                cege <b>dgd <a>cec <gb>d<b>
                <fa>c<a> <gb>d<b> l64 eg>ce^16^8< fa>cf^16^8 < eg>c32^16^8^4

さて
昨日の記事で
フリーソフトを使って
AI作曲を試す方法を
お伝えしました。

AIとの作曲をフリーソフトで試す

こちらです。

前回は

  • テキスト音楽「サクラ」
  • ChatGPT(GPT-4)

このふたつを
使って

曲を
作る方法を
お伝えしました。

今日は
この
テキスト音楽「サクラ」
を使って

できたMMLから
midi生成までを
やってみようと
思います。

具体的な
曲の作り方や
アイディアの
出し方は

昨日の
記事に
まとめておりますので

そちらを
ご参照ください。

テキスト音楽「サクラ」を用意する

昨日の
作曲法では
ピコサクラという
ブラウザのアプリを
利用しました。

ピコサクラはこちら

ピコサクラも
かなり便利で
良いのですが

midiの
出力の際には
サクラ本体が
必要に
なってきます。

まずは
Windows版の
サクラの解説から
いきますね。

サクラは
公式ホームページから
ダウンロードが
可能です。

https://sakuramml.com/

こちらの
ダウンロードから
ゲットしてみてください。

Windows7以上の
パソコンであれば
動くようです。

まずは
トップページに
アクセスして…

下にある
ダウンロードを
クリックします。

ダウンロードページに
飛びますので

こちらも
下に
スクロールして…

こちらの
(Windows版)サクラ2.383をダウンロード
をクリックします。

Zipファイルが
ダウンロード
できますので
解答すると…

こんな感じです。

こちらは
Macの
画面ですが

Windowsの場合は
Sakura.exeを
クリックすると
サクラが
立ち上がると
思います。

サンプルを
開いてみると
こんな感じに
なりました。

macOSの
方で
Windows版の
サクラを
みてみたい方は

Wineskin Server
という
Wineの
派生ソフトを
使うことで
立ち上げることが
可能です。

https://nadesi.com/index.php?Mac%E3%81%A7%E3%81%AA%E3%81%A7%E3%81%97%E3%81%93v1%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99

こちらが
参考に
なります。

こちらは
サクラの
作者の方が

自作の
なでしこ
という
ソフトを
macOSで
動かしていらっしゃる
様子です。

こちらの
記事に
WineskinServerの
使い方が
リンクされています。

https://pc.watch.impress.co.jp/docs/column/nishikawa/1332743.html

ちょっとクセが
ありますので
Macの方は
次の
コマンドライン版を
使ったほうが
早い気がします。

(私は普段
コマンドライン版を
利用しています。)

実際にmidiを出力してみる

サクラの
準備が
できたところで

MMLファイルから
midiを
生成してみましょう。

MMLは
昨日作ったものを
利用します。

AIとの作曲をフリーソフトで試す

こちらから
MMLを
引用して
きますと…

TR(1) TEMPO=120 v100 @0 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

このような
MMLでしたね。

これを
コピー&ペーストで
サクラに貼り付けます。

再生ボタンを押すと…

エラーが
出ています。

これは
Wineで
無理やり
動かしているので
バグが
出ているんだと
思われますね。

通常の
Windows版で
あれば

左上の「ファイル」から
「MIDI形式で保存」で
midiが保存できます。

macOSでのセットアップ

macOSでの
midiの
出力について
書いておきます。

私は
普段Macを
使っておりまして

先ほどの
サクラの
ホームページに
あった

コマンドライン版の
サクラを
利用しています。

こちらを
ダウンロードして
任意のフォルダに
起き

ターミナルで

./csakura filename.mml

とすることで
midiファイルが
出力可能です。

いま
気づいたのですが

よくみていたら
私は
このバージョンの
macOSの
コマンドライン版では
なく

次期サクラベータ版
for MacOS X
(コンソール版)
というのを
利用していた
ようでした。

ここから

ここを
クリックで
ダウンロードが
可能です。

こちらの
ほうの
バージョンは

./sakura filename.mml


midiファイルが
生成できる
ようです。

sakuraの前に
小文字のcを
つけるかどうか
みたいなはなしですが

この
ちょっとしたところって
結構初心者には
壁になるところですよね。

勉強に
なりました。

寄り道を
してしまいましたが
最後に
macOSの
コマンドライン版で

midiを
生成して
みます。

MMLを
テキストエディタで
.mml形式で
保存しましょう。

Macの
場合は

適当なファイル形式で
保存して
ファイルの
「情報を見る」

ファイルの
拡張子を
.mmlにすれば
コンパイルを
通す準備が
できると思います。

よくわからない
場合は
サンプルの
MMLを
利用します。

私は
VisualStudioCodeを
使っていますので

まずは
サンプルの
MMLを
開きます。

先ほどの
Windows版の
サクラの中に
sampleが
ありますので

適当に
開いてみましょう。

今回は
sakura2.mmlを
開きました。

文字コードの
関係で
かなり
化けて
いますが…

今回は
まず
これで
コンパイルを
通してみます。

ターミナルを
立ち上げます。

cd sakuramml_mac_2_379
./csakura sakura2.mml

cdコマンドで
サクラの
フォルダまで
行って

csakuraを
使って
sakura2.mmlを
コンパイルします。

これで
sakura2.mid
というのが
できると
思います。

ひとつ
気をつけないと
いけないのが

最初は
こういった画面が
出ることが
ありまして…

セキュリティの
関係で
検証を
求められることが
あります。

これには
対策が
あります。

一度
この画面は
キャンセルを
押しましょう。

システム環境設定を
開いていただいて
セキュリティと
プライバシーを
開きます。

上の
一般の
タブを
選ぶと…

下のほうに

“csakura”は開発元を確認できないため、使用がブロックされました

セキュリティとプライバシーの画面より


出てきます。

こちらの
右側にある

このまま許可


推します。

これで
検証が
できていますので

もう一度
ターミナルで
./csakuraを
呼び出してみましょう。

./csakura sakura2.mml

さきほどと
似たような
画面ですが

開くが
ありますので
ここを
クリック
します。

これで
再度
ターミナルで
コンパイルを
してみると

./csakura sakura2.mml
Success!

Success!

出てきて

midiファイルが
できると
思います。

AI作曲で作ったMMLをmidiに変換してみる

下準備に
時間が
かかりましたが

AI作曲で
作った
MMLを
midiに
変換してみます。

MMLは

TR(1) TEMPO=120 v100 @0 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

こうなって
いましたね。

こちらを
さきほどの
sakura2.mmlを
利用して
midiに変換
してみます。

まずは
sakura2.mmlを
VSCodeで
開きます。

開けたら
ファイル
名前をつけて保存で
リネームして
好きなファイル名に
してみましょう。

.mmlの
拡張子を
忘れずに
つけてみてください。

できたら
先ほどの
MMLを
コピー&ペーストで
貼り付けます。

こんな感じに
なりました。

それでは
コンパイルを
通してみましょう。

./csakura AItest20230413.mml

すると
エラーが
出てきました。

文字化けしていて
何がなにやら
わかりませんが

MMLの
書式が
間違っている
ようですね。

MMLを
書き換えても
良いのですが

今回は
先ほどの
次期ベータ版で
コンパイルを
通してみます。

cd ..
cd bin_sakura_osx
./sakura AItest20230413.mml
ok.

ベータ版の
場合は
ok.と
出ますので

これで
midiファイルが
生成できて
いるようです。

試しに
fluidsynthと
サウンドフォントで
鳴らしてみます。

fluidsynth -i "GeneralUser GS 1.471/GeneralUser GS v1.471.sf2" "AItest20230413.mid"
FluidSynth runtime version 2.3.0
Copyright (C) 2000-2022 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of Creative Technology Ltd.

ピコサクラと
同じ出音で
確認が
取れました。

fluidsynthの
導入の
仕方は
こちらを
ご参照ください。

https://zenn.dev/ranamzk/articles/869ba76d4eb507

MMLを直してみる

MacBookAir 2012mid
でも
同じ環境を
整えるために

MMLを
手直しして
みました。

TR(1) TEMPO=120 v100 @0 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

これですね。

先ほども
少し
お伝えしましたが

ターミナルで
エラーメッセージが
いくつか出てくる
ものの

文字化けしていて
読めないので

なんとか
原因を
特定するしか
ありません。

まずは
テンポの
書式が
間違っていそうなので
いったんこれを
消してみます。

//TEMPO=120を削除
TR(1)  v100 @0 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

コンパイルを
してみようと
すると…

かなり
文字化けして
いますが

かろうじて
Voiceといった
単語や
@といった
コマンド

また
1〜128
といった
数字が
見えますので

音色の指定が
間違っているんでは
ないかということで

コマンドを
書き換えてみます。

//@0を@1に変更
TR(1)  v100 @1 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

コンパイルを
通すと…

Success!


出てきました。

一度
鳴らして
確認して
みます。

ちゃんと
なっているようです。

テンポの指定は
どうするんだろう?

ということで
tコマンドを
使ってみますが…

//TEMPOの代わりにtを使用してみる
TR(1)  t120 v100 @1 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

なんか
よたって
いますね..

これは
サクラの
バグかも
しれません。

いままで
使っていた
テンプレートを
拝借して

//_00:Setup
Tempo         = 120;
TimeSignature = 4,4;

//MML
TR(1) v100 @1 l8 fefe4dcd4
TR(2) l2 '<acf>' '<adf>' '<dfb->' '<ceg>'

いろいろと
Setupで
初期化をしたり
してみますと…

コンパイルも
正常に通り
midiも
しっかりと
鳴りました。

まとめ

テキスト音楽「サクラ」
を使って
MMLファイルから
midiファイルを
生成してみました。

macOSだと
結構苦労する場面も
ありましたが

UNIXという
ことで

Linuxなどでも
同じように
コンパイルすることが
できると
思います。

MMLにも
方言のような
ものがありますので

例えば
MMORPGの
マビノギの
ような
MMLや

NES系の
ppmckや
nsdlibといった
コンパイラーの
MMLは

また
ちょっと
MMLの
書式が
異なっています。

今回は
テキスト音楽「サクラ」
のMMLの
コンパイルを
ご紹介しました。

長丁場でしたが
お疲れ様でした。

それでは、今日はこの辺で。
いつもお読みいただき
ありがとうございます。

また明日です!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

1732178566