コイデマサヒロ
ディレクターのコイデです。
音楽、音響系のソフトウェア開発において役に立ちそうなライブラリ類をピックアップしてみます。僕自身は非プログラマですので、技術的なところなどは抜きにして、機能、ライセンス、あるいは周辺事情といったところを中心に見ていていきたいと思います。
今回はクロスプラットフォーム開発で使えるGUIライブラリ編です。
音楽ソフトはクロスプラットフォーム対応が必須となる場合が多いです。例えばWindowsとMac OS Xに対応させるとして、同じ機能を持つソフトウェアを別々に作りこむのは、2本のソフトウェアを開発するようなもので大変です。なるべくソースを共用して開発できるのが望ましいです。ならば自前でGUIライブラリを、と思いがちですが、GUIライブラリを作るのはかなり大変です。技術的にも大変ですが、使えるものとして仕上げるのにも時間もかかりますのであまり現実的では無いでしょう。
ならば既にあるGUIライブラリを使えば、開発の負担を減らすことができます。
さらに音楽ソフトの場合、他のソフトよりビジュアルに凝ったものを求められる場合が多いです。よりGUIライブラリの重要性が強いと言えます。
そこで、市場に出回っている音楽制作系ソフト(主に商用のもの)がどんなライブラリを利用しているか調べてみました(下表)。実際の採用状況をみれば、どんなライブラリが使われていているかわかりますし、各ライブラリの特徴等でも何か見えてくるものもあるかもしれません。どんなライブラリを使っているかは公表されている場合もありますが、基本的に独自調査ですので、間違っているものもあるかもしれません。調べてもよくわからないものもありましたので、その他として入れてあります。
また今回は Win、Macを中心に調査しましたが、iOS/Android等については別の機会にまとめたいと思います。
主な音楽制作系ソフトウェアの採用状況
ライブラリ |
ベンダー(主な製品名) |
Qt | Waves、Ableton(Live)、Native Instruments、Avid(Pro Tools)、Sony Creative Software(CATALYST) |
Juce | Tracktion、Cycling74 (Max)、KORG, Arturia、UVI Workstation、AKAI(MPC Software)、IK Multimedia, Universal Audio、Image-Line(一部製品のみFL Studioは違う)、Applied Acoustics Systems、XLN Audio |
Java | Bitwig |
wxWidgets | Audacity、Plouge(Bidule) |
WDL | Cockos(Reaper) |
その他 | Steinberg(Cubase)、Presonus(Studio One)、Propellerheads(Reason) |
[注意]各社とも全ての製品でそのライブラリを採用しているとは限りません。
表に入れませんでしたがプラグイン系はvst_guiを使っている場合も多そうです。それなりに歴史のあるベンダーはvst_guiを独自拡張したり、プラグインのGUIという限定された状況での利用なので自前でライブラリ化しているという場合もありそうです。
Qt(http://www.qt.io/)
弊社の中村が技術的な記事を書いていますので参考にして下さい。
Qtは商用ベースのものとして、かなり歴史も知名度もあるので、かなりこなれていると思います。またちゃんと商用ベースのライブラリとして開発、あるいか機能提供やサポートがされていますので、企業として採用しやすいということもあるかもしれません。開発者向けのツールも充実しています。
調べて限りでは、それなりにブランド力があるベンダーが多く、DAWのような製品規模の大きなもの、あるいは製品数の多いベンダーで使われているようです。Qtもそれに見合う機能やサポートを提供しているということでしょう。
ライセンスはGPLまたはLGPL、または商用ライセンスです。試すだけなら無料で使えるようですので気軽に試せます。音楽系ソフト向けの機能が充実しているわけではありませんが、有名なライブラリですので、いろいろ情報はあるようです。
(Sony Creative SoftwareのCATALYSTは映像ソフトウェアですが、同社はマルチプラットフォーム化を進めているようですので今後の音楽系ソフトウェアも同様になると予想されるため表に入れました。 )
Juce(https://www.juce.com/)
サイト上に採用ベンダーの紹介だったり一覧があります。元々はTracktionというDAWの開発のために作られたもので、比較的最近のライブラリと言えます。JuceもTracktionも元々同じ1人のプログラマによって開発されていたものです。最近、買収されて開発規模は大きくなっているようですがメイン開発者は変わっていないようで、ライブラリの方向性が変わっていくということは当面はないのと思われます。今後はより商用ベースになると思いますので、知名度やサポートはより良くなってくるかもしれません。実際に開発者向けツールも充実してきています。
機能としてはGUIだけではなく、音楽系の様々な機能も提供しており、ちょっとした音楽ソフトなら簡単に作れてしまうくらいです。これはかなり魅力的です。ただし、標準コンポーネント類はビジュアル的に少し独特で、デザインを変えるのが難しい場合もあり、クセがあると言えます。そのクセを踏まえたデザインなり設計は必要になると思います。プラグイン系での採用が多いのは、プラグインの場合は、ほぼ独自にGUIを作りこむことが多いので、Juceのクセの影響が少ないということもあるかもしれません。
また、音楽系以外の機能も充実しており、またWin、OS Xだけでなく、Linux、iOS、Androidまでにも対応している範囲の広さから、音楽系ソフトウェア以外でも認知度は出てきているようです。
ラインセンスはGPLか商用(有料)ライセンスです。オープンソースですので気軽に試せます。
Java(https://java.com/ja/)
Javaはライブラリというわけではありませんが、クロスプラットフォーム開発という観点からいれました。 また最近ではネイティブコードとの親和性も高くなっているようですし、一時期ほど重いといったこともないようです。採用例としてあげたBitwigの場合もも全てJavaではなく一部(おそらくUIまわり?)での利用ではないかと思います。JavaでVSTを作るというフレームワークを作っている人もいましたので、部分的にJavaを使うというのはアリなのかもしれません。ただし、ユーザーの利便性を考えるとランタイム等を含めるた配布の方が安全で、そうなるとアプリケーションのサイズが大きくなりますので注意が必要です。
ライセンスは商用でも利用可能ですが、配布方法等によって異なる場合もあるようですので、こちらも注意が必要です。
wxWidgets(https://www.wxwidgets.org/)
以前は、wxWindows という名前でした。Linux等のオープンソース系での採用例は多いようです。またスクリプト系を含む他言語からも扱いやすくなっているようです。規模間のあるソフトウェアを作るというより手軽にGUIを作るということに重きをおいているのだとと思います。
有名なものとしては波形編集ソフトのAudacity、商用のものとしては、PlogueのBiduleがあります。どちらもデザインはシンプルですね。wxWidget自体が各OSのデフォルトにあわせるようにしているからだと思いますが、逆に独自な作り込みは得意ではないかもしれません。音楽系ソフトウェア用に特筆した機能自体は無いようです。
ライセンスはLGPL系の独自ライセンスですが、ソース開示の必要のない商用利用も可能なようです。
WDL(http://www.cockos.com/wdl/ https://github.com/justinfrankel/WDL)
国内での知名度はいまひとつですが、海外では軽量かつ多機能なDAWとして一定の評価と人気を得ているDAWであるReaper用に作られたもののようです。Juceと似た出自ですね。ただしWDL自体は必ずしもメインがGUI向けというわけでもないようです。むしろツール集という感じで、とくに信号処理系が充実しています。 海外のデベロッパーの間では、UIはJUCEで中身はWDL(実際は派生のWDL-ol(https://github.com/olilarkin/wdl-ol))を使って作るのが定番と言われているようです。
無料で、独自ラインセンスですが商用利用は可能なようです。ただし、サードパーティ製のライブラリも含みますので、それらのライセンスついても注意が必要です。
その他
今回調べた中で不明だったものをここに入れています。
Steinbergはおそらく独自にGUIライブラリを作っていると思われます。実は以前、関係者だった方から、そういう話を聞いたことがあったためですが、現在もそうなのかは不明なため、その他としました。
最近支持の高いStudio Oneを有するPresonusですが、何を使っているかわかりませんでした。Studio Oneはバージョンが3になって、使っているGUIライブラリも変わった気がするんですが...。
PropellerheadsもReasonをみる限り不明です。Qtかなという気がしますが独自ではないかと思います。
これらは今後判明したら記事を修正したいと思います。
最後に
実際の採用状況も調べてみると、やはり改めて気が付くこともありました。Juceが強いというのは想定内でしたが、開発(あるいは製品)の規模の大きいものの場合は、Qtの採用例が多く、当初の想定よりも存在感を感じました。
結果的にJuceとQtの2強という感じがしますが、モバイル機器の盛り上がり等に伴い、クロスプラットフォーム開発の重要性は高まっていますので、勢力図が塗り替わる可能性はまだまだありそうです。機会があれば、他のものや、各それぞれについてさらに詳しく調べてみたいと思います。
次回は、より音楽系の機能をもつをピックアップしたいと思います。
コイデマサヒロ
ディレクター、プロデューサー、ギタリスト。mimiCopyをはじめ弊社リリースの全てソフトウェア製品の企画を担当。ネイティブアプリ開発がメインでOS問わず対応可。dubバンドのギタリストとしても活動中。