ある若人のブログ

どこかで学生をしているかもしれません

MacのGarageBandでSF2を入れたらピアノの音しか鳴らなくなった時の話

最近機械音痴なりにDAWをセコセコやっているのですが、何となく操作を覚えてきたのでサウンドフォントを導入することにしました。

 

 

プラグインからDLSMusicDeviceを選んで……

f:id:kenkens8:20220208044310p:plain

 

拾ってきたサウンドフォント(sf2ファイル)を選んで……

f:id:kenkens8:20220208044442p:plain

 

 

f:id:kenkens8:20220208044555p:plain

ピアノの音が鳴り響く

あれ????????????????????

 

文字だと伝わりませんが、DLSMusicDeviceから特定のサウンドフォントを選んだ時に楽器が選択できずピアノの音しか鳴りません、と言う状態になったので、その原因と対策を頑張って考えましたって話。

 

 

1. サウンドフォントファイルが正しく読み込めてない?

とりあえずネットで解決策を調べてみたところ、ソフトの再起動だの本体の再起動だの、あらゆるカスタマーサポートが推奨する不具合の対策ランキングNO.1の方法が出てきたので試すも効果なし。sf2ファイルの再ダウンロードも一応試しましたが意味なし。

 

そもそも、ピアノの音しか鳴らないとはいえ、その(唯一鳴る)ピアノの音自体はサウンドフォントがちゃんと適用されているんですよね。だからsf2側の不具合ではなさそう。ということで他の原因を探ることに。

 

2.音色の指定がうまくできていない?

 

一旦サウンドフォントのことは諦め、他の方が作ったmidiデータをいじって遊ぼうとした時のこと。

 

f:id:kenkens8:20220208050904p:plain

……ん?

 

サウンドフォントがちゃんと機能している……?

 

 

はい。ピアノじゃない音でGarageBandくんが音を出してくれました!やったね!

なぜさっきのはダメで今回はピアノ以外の音が出たのか、がわかれば解決に大きく近づきそうです。再び原因と解決策探求の旅に出ることに。

 

その後もいろいろsf2ファイルを入れて試してみたところ、ベースの音だけ、トランペットの音だけ、のような一つの音のみのsf2ファイルはちゃんと音が鳴ることがわかりました。逆に、僕が使おうとしていたSGM-V2.01のようなファイルはさまざまな楽器の音色を一つのファイルにまとめて入れたものです。どうやらDLSMusicDeviceでそういうファイルを使おうとした時にどの音色を使うかという指定がうまくできてない、と考えると今回の問題の辻褄が合います。とりあえずその方向で原因を探ることに。

 

3. GM規格の番号の指定ができていない?

さらに調べると、SGM-V2.01のようなファイルは「GM規格」に則って作られているということを知りました。

GM規格とはMIDIデータをやり取りするためのもので、1番はピアノの音、41番はバイオリンの音……みたいな感じで楽器ごとに番号が決まっているので1つのデータを異なる機器で再生しても同じ音楽が流れる仕組み、みたいなものです(浅い理解)。このGM規格で最初の番号はピアノなので、DLSMusicDeviceではピアノの音しか出なかったんですね。

 

また、他の人が作ったMIDIデータで音色が変更できたのは、そのデータは何らかの方法でGM規格での楽器の指定がしっかりしてあったからと考えることができます自分で作るのは諦めて全部人に作らせよう。その上であらためてMIDIを見ると

 

f:id:kenkens8:20220208053349p:plain

ここにそれらしき番号が!!!

これで原因は突き止められたので、次はその解決策を考える番です。

 

 

解決編

解決策は手っ取り早く、「どうやったら番号を指定できるの?」を考えることに。いろいろ調べたのですが

 

GarageBandだとできないっぽい……?

 

とりあえず一件のブログが検索結果にヒットしました。

GarageBand with GeneralMIDI

 

この方も今の僕と同じ悩みをかつて持ち、その解決策を編み出されていましたこの記事なんていらんかったんや

それによると、音色を指定したmidiデータを全128個用意し、それをドラッグして貼り付ければ音色を指定したmidiトラックが作れるとのこと。そして丁寧にも128個まとめたzipファイルが置いてありました。ありがたく使わせていただきましょう。

 

 

midiデータをドラッグして置き、適当に音を並べて

f:id:kenkens8:20220208054638p:plain

 

 

f:id:kenkens8:20220208054738p:plain

 

ちゃんと音が鳴った!無事解決!!当記事 完!!!ご愛読ありがとうございました!!!!

 

 

 

 

 

……(ケチをつけるわけじゃないけど)この方法には1個問題点があって、それは一度音を並べたら楽器の変更ができないこと。楽器を変えるためには違うmidiデータを上から貼り付ける必要があるので当たり前っちゃ当たり前。楽譜をコピーして新しいトラックに貼り付けすることでなんとかできなくもないけど、楽器をいろいろ変えながら音を探せないのはやっぱり不便。もうちょっといい方法を探すことに。

 

 

解決策を探っている時に思ったのが、「sf2ファイルでうまくいかないんならそれを他の形式に直して使えばいいんじゃね?」ってこと。sfz形式は事前にうまくいっていたので、sf2→sfzに変換してくれるソフトを探すと出てきたのがpolyphoneというソフト。

 

ダウンロードはソフト名で調べれば多分すぐ出てくる。

起動して真ん中上部にあるOpen soundfontからsf2ファイルを選び、

f:id:kenkens8:20220208060131p:plain

なんかいろいろ調整できるらしいけど全部無視して右上の3本線をクリック。

Export soundfontsから使いたいフォントを選び、保存先とフォーマット(今回はsfzですが、他にsf2とsf3にもできる)を選び、最後に左下のExportを押すと変換が始まります。

f:id:kenkens8:20220208060451p:plain

確認してみると……

 

f:id:kenkens8:20220208060750p:plain

sfzになってる!

早速GarageBandで確認してみると

f:id:kenkens8:20220208061049p:plain

ちゃんと音色の指定ができました。

 

 

結局sf2で使えないんかいという、問題の先送り感がどことなくしますが、音鳴ってるんだしいいでしょ。いいよね。

詳しい人からすればなんだそんなことと思うかもしれませんが、私はこの一連の作業に半日ほど使って疲れた。疲れたから終わり。別の方法でもっとうまく解決できるよ!という方がいらっしゃったら是非お教えください。