Spitfire Audio — BBC Symphony Orchestra
Spitfireから無料で入手できるオーケストラ音源がリリースされたみたいです。
spitfireのyoutubeのチャンネルは楽しい動画が定期的に上がるのでいつも楽しみにしています。昨日上がった動画をみたところ、何やら新商品の紹介のようで。
$49、、、ほう安いな、、、どんな商品だろうか、と思ったらOR FREEって!?
Spitfireのサイトのリンクに飛んでみたところ、本当にFreeでも入手できるようでした。↓
Spitfire Audio — BBC Symphony Orchestra Discover
入手の条件は、Spitfireのサイトに登録してアンケートに全て答えるだけでした。アンケートの内容は、音楽体験についてや音楽の興味など、ほとんどが音楽に関するもので、答えるのが難しい質問はほとんどなく、英語が苦手でなければ、10分〜15分程度で全ての回答を終えることができると思います。
アンケートに回答した二週間後、サイトに登録しているメールアドレスまでダウンロードが可能になった旨の連絡がくるようです。
一刻も早くどんなものか試してみたい方は49ドルを支払えば今すぐ入手できるみたいですが、私は二週間後を楽しみにします。
アルトサックス奏者追悼
Richie Coleが亡くなられたそうです。
私がジャズにはまるきっかけを作ってくれた1人です。最初に聴いた10枚ほどのCDの中の一枚がRichie Coleのthe man with the hornでした。このアルバムはジャズがとっつき難い音楽である、という私の中のイメージを完全に払拭してくれました。いまだに楽しいものを聴きたい時に真っ先に候補に上がるプレイヤーであり続けています。
このクインテットは最も素晴らしいバンドの一つだと思います。
---------------------------------------------------
Lee Konitzも本当大好きでした…。現在、一線で活躍しているジャズミュージシャンで、Lee Konitzを聴いていない人はほとんどいない(と思う)くらい影響力のあるミュージシャンなので、今更私が語ることはなさそうです。
夏になるとLee Konitzをよく聞く気がします。
レッドミッチェルの信じられないベースプレイが聴ける名盤ですが、レッドミッチェルがピアノを弾いているこのテイクが、リーコニッツの伸び伸びしたプレイが聴けて好きです。
雑記
最近、ブログに書けるネタがあまりありません。というのも、プログラミングの勉強に時間を取られていて、DTM関連のものに触れる機会も、Csoundで楽器のモデリングを進めることも(ついでに楽器を練習する機会も)あまりできずにいます。
こんな状況に焦れば焦るほど、勉強が進まず、フラストレーションがたまる一方なので、適当でもいいや、とブログに書き殴っている最中です。
なぜプログラミングを勉強する必要があるか、というと、先日のブログでお話したJUCEがC++言語で書かれているため、最低限理解する必要があるためです。
CsoundのAPIをC++に持って来なくてはならない、ということですね。C++はCsoundとは違い直感的にいきなりコードをいじって試行錯誤する、という風にはいかない、というのは明白なので、一から現在勉強しています。
C++のみでも音楽を作ることは可能なのですが、まぁとりあえずのところはCsoundのライブラリーを持ってくる方向性で。今楽しいですしね。たまにCsoundのフォーラムを覗いているのですが、結構活発に動いていてなんだか昔のネットをしているみたいでワクワクします。
C++の音楽プログラミングはThe Synthesis ToolKit in C++ (STK)のコードをみて少しずつ勉強していく予定です。
ーーーーーーーーーーーーーーーーーーーー
最近暖かくなりDuke Pearsonを聴いていてとても気持ちいい感じです。
Csoundを使ったプラグイン開発について
商用のプラグインを作りたい、というモチベーションがある以上、自分の書いたプラグインのソースは隠したいものです。Cabbageで制作されたプラグインはそれ自体では動かず、csdファイル(=ソースファイル)が必要です。それを隠す方法がないかなぁと色々調べていましたが、Cabbageを使う以上、ライセンスの問題が引っかかるみたいでした。結果として、Cabbageを使うのを諦めるのが一番良さそうかなぁと思いました。
1. Csound
CsoundはLGPLライセンスであるため、Csoundそのもののソースを求められた場合は、公開しなくてはなりませんが、Csoundを呼び出して使う限りは、プラグインのコードを公開する必要はありません。Csoundそのもののソースの公開は、Cabbageのフォーラム情報によれば、リンクを公開すればそれで済むようです。
2. SDK
VSTのSDKは、プラグインをGPLで公開しない限り、おそらく有償ライセンスが必要です。
Aunio UnitsはそもそもMac OSなら組み込まれているため、必要ない模様。
3. Cabbage
CabbageはJUCEの枠組みを用いて、プラグインを生成しているため、GPL、すなわちオープンソースにしなくてはなりません。(後述するPersonal licenseを越えたJUCEの利用)
これは、Cabbageのユーザーが直接JUCEを利用してプラグインを作っているのではなく、Cabbageを通じて、JUCEの枠組みにアクセスしているため生じる問題です。
現在、Cabbageの開発者はソースファイルを隠すことができる、プロユースのCabbageを既に用意しているようで、もし利用したい場合は、Cabbageの開発者まで連絡をすれば、購入できるようです。(どのような枠組みで実現したかは分かりませんが、グレーに思えます。)
4. JUCE
JUCEはJUCE5以前は無償版ではクローズドソースのプラグインの作成をすることが出来ませんでしたが、現在は、Personal licenceの無償利用プランでも条件付きで、クローズドソースのプラグインの作成を行うことができます。ただし、その条件以外の方法でJUCEを利用する場合は、ソースコードをオープンにしなくてはなりません。(これがCabbageのケース)
5.まとめと方針
とりあえずは、Cabbageを諦め、JUCEを使おうかなぁと思います。元々、Cabbageには限界があるなぁと思っていたところ(Factory nameがCabbage Audioから変更できないなど)で、CabbageのソースコードをいじるよりはJUCEを勉強した方が自分のためになりそうです。VSTに関しては、とりあえずまだ調べ途中なので、調べつつ、、、という感じですかね。Csoundで書かれたコードを、JUCEのPersonal licenceの範囲内で、Audio Unitsにする際は、クローズド&商用、どちらも問題なさそうです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
この記事はCabbageとCabbageの開発者の方を批判するものではありません。
Cabbageはコードをオープンソースのままにしなくてはいけない、という枠組上の欠点があるだけで、Cabbage自体はとても便利で素晴らしいものです。
加えて、フォーラムでの開発者の方の対応もとても誠実です。
この記事は、以下のフォーラムのスレッドをかなり参考にしています。古いスレッドですが、ライセンスの理解に有用でした。開発者の方の対応の誠実さが、わかるかと。
https://forum.cabbageaudio.com/t/discussion-about-licenses-commercial-use-of-cabbage/83
Cabbageを使ってサックスシンセを作る①
サックスも作ることにしました。
先に途中経過のデモから。
今回のコンセプトはオートメーションに頼らなくても自然になるサックスの作成。そのため、ベタ打ちです。(結局volumeのコントロールはするべきかもしれない。
- やったこと
・ピッチと共にウェーブフォームを変化させた。
・フラクタルノイズでブレスを再現させた。
・ピッチと共にブレスの音の量を変化させた。
・高いピッチにいくほど音量を小さくした。
・実際のサックス奏者の音を聴きながら細かくwguide関数の値を設定(これはトランペットでは行いませんでしたが、一つのパラメータごとじっくり吟味すればより本物に近づけることができると分かりました。)
- やりたいこと
・まだシンセ臭いところがあるのでどうにかしたい(主に出音)
・decayの設定(なんかできてない)
・グリサンドとピッチベンドの設定
こんなもんですかね。サックスシンセの作成はトランペットより格段に難しいですが、楽しいです。
ーーーーーーーーーーーーーーーーーーーー
以下waveguide2に関する自分用メモ
・二つあるうちのdelay-lineの一つは発音、一つは管の振動
後者のkfeedbackは管の大きさ(圧力)を表していて、基本的に数字を高くするほど管が小さい(圧力が高い)イメージ。
・発音のafreqは高い値から低い値に時間と共に変化させる。(徐々に音がかすれていくイメージ。)
・管のafreqは低い値から高い値へと変化させる。(徐々に管の振動によって音の密度が高くなっていくイメージ。)
Cabbageを使ってトランペットシンセを作る②
一応いい感じの音になったので仮完成。
- ウェーブフォームの設定
・ウェーブフォームはsine波の和によって得られるGen10関数で作成しました。
Gen10関数:giwave ftgen 1,0, 4096,10,str1,... ,str20
・str値はそれぞれの倍音成分の相対的な比で、今回はstr値は20まで設定しました。
・元の音源は第23倍音くらいまで視認できたのでもう少しモデルの精度は上げられるかと。
・ダイナミクスによって、倍音成分は変化していくため、str1~20を一つのダイナミクスの変数とし、その変数に掛かる係数を回帰分析で推定しました。str10~20については、線形モデルがあてはまりにくそうだったので、二次曲線に回帰させました。
waveguideは管楽器を再現するのにふさわしいらしいです。理論的にはよく理解していませんが、試行錯誤していく上で、確かにこれは管楽器っぽいわぁとなったのでそういうことなのでしょう。
・先ほど得られたGen10関数をwguide2関数のオシレーターに使用します。
wguide2関数はdelay-lineという方法により、元のウェーブフォームを変形させてwaveguide化するもの(wguide2はディレイが二つある)で、以下のような構文になっています。(waveguide化という表現が正しいのかは分かりませんが)
wguide2関数:asig wguide2 aout, afreq1, afreq2, kcutoff1, kcutoff2, kfeedback1, kfeedback2
・afreqはマニュアルには、the frequency (i.e. the inverse of delay time)とあり、ディレイされたフィルターの濃度的な感じに理解しています。afreqにline関数を用いることで、時間とともに濃度を濃くし、出音の荒い音(高い周波数)から、滑らかな音を伸ばしている音へと変化させることができます。
・kcutoffはフィルターのカットオフの周波数
・kfeedbackは公式マニュアルには、the feedback factorとだけ書かれていてよく分かりませんが、数値を上げすぎると爆発するのでどれだけの量フィードバックさせるかという感じかと。
- 結果
まぁまぁ上手くいきました。
サンプルを使用していないので、どのキーでも綺麗になってくれて、一つでブラス全体の音源っぽく使用できるのは便利です。ただ処理がえらいことになっているので、バッファサイズ最大にしないとえらいこっちゃなるのが難点ですね。妥協できるところを妥協する必要がありそうです。
大変だったのは、wguide2関数を試行錯誤しながらあーでもないこーでもないといじっているときでした。ネットであまり情報を得られなかったのと、waveguideの理論そのものをあまり理解していないので完全手探りでした。
後、書き上げたコードをAudio UnitのComponentに書き出してもLogicがなかなか読み込んでくれないのが困りました。なんとか解決はしましたが、何が効いたのか特定できていないので、早いところ特定したいです。
ソロ音源、またはソロ音源付きのブラス音源を買おうとすると1万は飛ぶので、自作できたのは嬉しいです。今後も色々な楽器を簡単に作れそうですしね。タダで済ませたい、というのは十分なモチベになり得ますね。
もう少し、改善の余地がありそうなので、それは次の機会に。