hex_music

jazzとかdtmとかcsoundとか

Cabbageを使ってトランペットシンセを作る①

最近ブラスの音源のちゃんとしたものが欲しいなぁと思い、色々調べていました。以前紹介した、Chet Singer氏が公開しているReaktorライブラリーのDannenberg Wind Oscillator は簡単に音色を変更できる点、よく楽器の特性を再現できている点においてとても優れているのですが、シンセ臭さが多少あり、今のところ、実際に打ち込みで生楽器の代わりとして使うのはなぁ、という印象です。また、Chet Singer氏が公開しているHerald Brassは、より生楽器に近い印象ですが、若干midiコントローラーによる操作が難しく、勢いを誤るとシンセ臭くなってしまいます。

両者の違いは、モデリング方法の違いで、前者がwaveform合成によるモデリングを利用していて、後者が既存の研究結果であるSynthesis Toolkitのphysical modelingを利用しています。

 

waveform合成によるモデリングで有名なものはWivi BandというWallander社(Wallander Instruments)が開発したものらしいです。

デモ版があったので落としてみたところ、なかなか本物っぽい音が鳴り、いい感触でした。これくらいのクオリティのものが作れるなら、自分でwaveform合成を使ってモデリングするの面白そうだなぁと思い、最近着手し始めました。

 

 

 

使用するソフトウェアはwavetableシンセ、、、といきたいところでしたが、パラメータを入れた細かい調節がシンセ上で難しそうなのと、仮に出来上がったとしても、出来上がったそれはシンセの1プリセットにしかすぎない、ということで、シンセを一から作ることにしました。

REPORTAL NETさんがブログで紹介されていた、Cabbageというソフトウェアを使います。GUIがポンっという感じで作成できるので中身だけ頑張ればいい、というのがとても楽です。CabbageはCsoundという太古の言語のフレームワークなので、Csoundを一から勉強しなくてはなりません。

日本語で解説しているサイト、文献などは皆無に等しく、非常に使いづらい&欲しい情報が載っていない、公式のマニュアルから情報を読み取らなくてはならないので結構苦戦しています。

以下自分用メモ書き。

・メインのウェーブフォームは、サイン波を合成したものである、Gen10関数を用いる。

・トランペットにおける、Gen10関数のStr(1~20くらい?)の値(それぞれの倍音成分を表す)を弱いダイナミクスと強いダイナミクスで推定

→一つのつまみで、全てのStr値が弱いものから強いものに連続的に変化するようにそれぞれのStr値の係数を計算。

 

・ブレスの音はノイズを加工する。

ノイズの関数は

dust2 kamp, kdens

fractalnoise kamp, kbeta

ares gausstrig kamp, kcps, kdev [, imode] [, ifrst1]

とあるが、fractalnoiseを利用。

 

・発音の調整はlinsegr、madsrを利用。

 

 

Gen10関数とノイズを足せばそれっぽいものが得られる、、、はず。