GarageBand(iOS)でMIDIファイルを出力する(GaragebandMIDIデータ抽出アプリ編)
2021年にiOS版GarageBandでMIDIファイルを出力する方法を記事にまとめて「MIDI Tape Recorder(MTR)」という無料アプリが最強ということになっていたのですが、2023年に有料となったことを確認したため、無料で何とかできないかと模索した結果の報告です。
追記 2023/12/20 : 日本語の処理にバグがありましたが修正いたしましたので、過去にエラーが出たプロジェクトも処理できるようになったかと思います。ぜひお試しください。
本題の前に…
お前は誰だと言われそうなので…私はなすなす央というネタ曲ボカロPです。普段はこんな曲を作っています。主にGarageBandを使って作った、JKとかかわいいとかそういう付加価値を持たないおっさんの、一発逆転悲哀ソングです。(宣伝すみません)
「GaragebandMIDIデータ抽出アプリ」を使う
では本題に…
「GaragebandMIDIデータ抽出アプリ」はiOSアプリではなくWEBアプリです。(私が立ち上げたアプリです。)
使い方は簡単で、GarageBandのプロジェクトファイルをzipで固めてサイトにアップロードするだけです。(今時はiPhoneの純正ファイルツールでもzip圧縮が出来るので、iPhoneで完結できますね)アップロードをすると、以下のようなフォルダ構成のzipファイルがダウンロードされます。
(プロジェクトファイル名).zip
full
tracks
sections
decoded.bin
fullフォルダは全トラックをまとめてMIDI化したファイル、tracks はトラックごとのMIDIファイル、sections はセクションごとのMIDIファイルが保存されているわけです。トラックごとに出してくれるとか便利すぎませんか?
また、smart instrument や drummer もMIDI化してくれます。神ですか?
使う上で注意事項として、サーバが貧弱なので50MB以上のファイルは受け付けておりません。wavなどを含む場合はwavのトラックを削除してからアプリを使用してください。
また、ファイルをアップロードする形になっていますが、サーバ上にファイルを残さない仕様としていますので、私がプロジェクトデータをサーバ経由で集めたりはしていません。
最後に
MIDI Tape Recorder(MTR)が登場したことで、GarageBand MIDIファイル出力できない問題は終止符が打たれたと思っていて、私自身ほとんど困っていなかったのですが、MTRが有料化されたことで(良いアプリはその方に見合ったお金を取るべきで、この点を非難するつもりは毛頭ありませんが)学生は使いにくくなってしまったのではないかな、と思い、別の方法が用意できないかなと思って今回アプリを立ち上げさせていただきました。立ち上げたばかりで不具合などあるかもしれませんが、不具合を発見された方はなすなす央までDMでお知らせいただけますと幸いです。
このアプリについて
ここから先はアプリを使う限りでは不要な話となります。
上の方で書かせていただいた通り、このGarageBandのプロジェクトファイルからMIDIを抽出するプログラムには偉大なオリジナルのソースがあります。
GarageBandのプロジェクトファイルには確実にMIDIに相当するデータが含まれているはずなので、それを抽出しようと試みた人がネットの広い海の中にはいるだろうと「GarageBand MIDI」などのあらゆる単語でGoogle検索をしまくって発見しました。(過去も何度も検索していたのですが、MIDIを「出力する」という単語の選び方が良くなかったようで、このプログラムを見つけることができていませんでした。MIDIを「抽出する」→extract で発見することができました。Google検索は奥が深いですね…)
偉大なオリジナルソースの元記事はこちらです。
私は英語が読めないので、間違っているかもですが、翻訳アプリで読んだ感じ、もともとは期間限定でプログラムを公開するつもりだったようです。確かに公開時期を過ぎたためか、記事上のgithub はなくなってしまっていました。
ここで話が終わっているようでしたら、作られた方の意思を尊重して、このプログラムは使うべきではないかなと思ったのですが、その後、このアプリの情報を別のサイトにて記録として残すことにした、となっていたので「おお、素晴らしい!それならありがたく使わせて頂こう」と思っていました。
が、前述のとおり、その別サイトというのが、何故か見られなくなってしまっているんです…
この状態である以上、このプログラムを使っていいものか迷いましたが、アプリの情報を残す気はあったが、結果としてサイトが見られない状態にある、ということと、ライセンス的にはApache License 2.0 で、使用することは問題ない、ということから使用させていただくことといたしました。重ねてお礼申し上げます。ありがとうございました。