👻

macOSでMMLを書いてサクラでmidiを生成しsoundfontで再生する方法

2023/04/06に公開

はじめに

こんにちは。
普段はWORDPRESSのサイトを使ってフリー音源を作っています。

子供の頃はピアノを習っていて、学校などでも部活で打楽器をやっていたのですが、肩を痛めてしまってから、作曲に転身。作曲の場合は入力用のキーボードもありますが、手に負担がかかるので普段はMMLで作曲をしています。

MMLというのはMusicMacroLanguageと言って、アルファベットと数字の入力で音楽を楽しむという方法です。最初はmckと言われるNES向けのコンパイラーを触るところからはじめて、nsdlibに移行、nsdlibがテキスト音楽「サクラ」の影響受けていると知って興味を持ち、自分の環境でも使い始めました。

テキスト音楽「サクラ」のホームページはこちらです。
https://sakuramml.com/

MMLに興味を持つ人自体が少ないとは思いますが、こちらの新曲掲示板(v6)ではいまも楽曲が投稿されています。最近ピコサクラというWebアプリが開発され、ブラウザで気軽にMMLで曲を作れるようになりました。

私の場合はネット環境のない外で作曲をすることも結構あるのでローカルでMMLを書き、サクラでmidiに変換してsoundfontを使用し、鳴らすということをやっています。

環境

使用しているツール、環境などは以下の通りです。

MacBookAir 11-inch Mid 2012(macOS Mojave(10.14.6))
CPU 1,7GHz Intel Core i5
メモリ 4GB 1600 MHz DDR3

(macOS版)サクラ2.379(コマンドライン版)
→訂正です。正確には「次期サクラベータ版 for MacOS X(コンソール版)」でした。
→現行のバージョンにあわせるように修正しました。
Visual Studio Code
fluidsynth
GeneralUser GS v1.471.sf2

準備

まずはサクラを用意します。
サクラのホームページからダウンロードします。

https://sakuramml.com/index.php?ダウンロード

解答し、好きなフォルダ(私の場合は/User/rana/sakuramml_mac_2_379)に移動します。

MMLのコンパイルは

./csakura filename.mml

とするとmidiが生成されます。

Macの場合はこれだけでは何も音が鳴らないため、別途midiを再生するためのプレーヤーとsoundfontが必要です。

プレーヤーにはfluidsynthを利用します。

brew install fluidsynth

鳴らす時は

fluidsynth -i soundfont.sf2 filename.mid

のように指定します。

soundfontは私は普段はGeneralUser GSというサウンドフォントを使っています。

https://schristiancollins.com/generaluser.php

特にGeneralUser GS v1.471sf2あたりが良いでしょう。名前の通り、GSの音源です。

例えばrtune1という名前のMMLファイルを作り、midiを生成して鳴らすためには、普段はこのようにしています。

cd  sakuramml_mac_2_379/
./csakura rtune1.mml
fluidsynth -i GeneralUser\ GS\ 1.471/GeneralUser\ GS\ v1.471.sf2 "rtune1.mid"

これでGeneralUser GSのsoundfontでmidiが出力し、音が鳴ると思います。
こちらのmidiを活用してMacBookAir2017でLogicを立ち上げ、midiを流しこんで音源を編集してミックスマスタリングして、曲をリリースし、フリー音源としてサイトで公開しています。

Githubでの管理

MacBookAir2012とMacBookAri2017の両方が稼働してるため、MMLのバージョン管理に悩んでいました。
前はDropboxを利用していましたが、ごちゃごちゃしていてよくわからなくなってきてしまっていたんですよね。
Githubで管理できるというのを思いついたため、いまはGithubでの管理に移行しています。

MMLであれば、文字が打てれば良いので、ハイスペックなパソコンは必要ありません。
私は普段もこの11インチのMacをメインで作曲をしています。

私のGithubページはこちらです。

https://github.com/rana-mzk/MMLSakura

MMLの参考にどうぞ。

まとめ

普段の楽曲やMMLといったものはホームページやフリー音源サイトで公開しております。
他の人と違った作曲方法を試してみたい方は是非ブログをみてみてくださいね。

それでは!

*装飾やコマンドなどは後日編集いたします!

Discussion