すごく興味がある内容ですが、チュートリアルの内容がかなり高度になってきました。
実装して体解していくべし。
JUCEチュートリアル、「Create a string model with delay lines」を始めました。物理モデリングに関するチュートリアルです。最近の音源にも増えてきた物理モデリングですが、実装的な部分はよく知らなかったので、面白そうです。
公式チュートリアルはこちらになります。
今回は、物理モデリング実装のための理論について、チュートリアル内に出てくる用語を調べながら学習をすすめましたので、その内容のまとめを記録します。
こんな人の役に立つかも
・JUCE「Create a string model with delay lines」チュートリアルを進めている人
・DSPの物理モデリングについてかなり大まかに知りたい人
・DSPの物理モデリングの要素技術について知りたい人
ディレイラインについて
ディレイライン(日本語で遅延線というらしいです。)というDSPのツールについて調査をしました。
ディレイラインは、DSPでとても基本的なツールで、フィルターや、ディレイ、コーラス、フランジャーなどのエフェクトを作成するためにも利用されます。ディレイラインは、特定の信号をいくつかのサンプル数遅延させることができます。たくさんのディレイラインを利用することで、いろいろなDSPの効果を実現することができます。
ディレイラインについてこちらのサイトを参考にしました。
ディレイラインの実装は、一般的にリングバッファで実装されるようです。(英語ではcircular buffer)チュートリアルでは、リングバッファの方法でディレイラインが実装されるようです。
物理モデリングについて
物理モデリングは、数学的、物理的モデルから音を生成する合成方法、とのことです。現在主流の、サンプリング音源は、録音されたサンプルを利用しますが、物理モデリングは、材料の研究を通じて、音がどのように生成されるかというアプローチです。Wikipediaによると、「生楽器の発音構造や共鳴構造をコンピュータ上でいかに振動・共振するかをリアルタイムに演算し、音色を仮想的に合成(シミュレート)して音を出す方式」とあります。
ウェーブガイド(導波管)について
ウェーブガイド(導波管)という仕組みで振動する弦をモデル化できるという理論があるようです。ここからは、チュートリアルを読み進めるにあたって、物理学などの分野の知識がないと結構厳しいですね^^;
どうやら、デジタルウェーブガイドシンセシスという音響合成方法があるとのことです。ストリングスの物理モデリングといえば、SWARM-Sエンジンが有名です。こちらの説明文には、「ジュリアス・O・スミス教授による『Digital Waveguides Synthesis』をもとに、より深く研究を進めました。」とあります。
こちらの論文、理論がもとになっているようですね。
https://ccrma.stanford.edu/~jos/swgt/swgt.html
https://courses.cs.washington.edu/courses/cse467/05wi/pdfs/swgt.pdf
※追記:英語のサイトで、いろいろ勉強できそうです。
https://ccrma.stanford.edu/~jos/wg.html
さて、チュートリアルでは、「ウェーブガイドによる弦の物理モデリング」を行います。
説明を確認すると、「導波管弦モデルは、反対方向に進行し、2つの端点で跳ね返る2つの波を使用して振動弦をモデル化できるという概念に基づいています。合計されたこれらの2つの波の組み合わせは、最終的に撥弦楽器の理想的な動きをシミュレートします。これらは、前方と後方の遅延線の2つの遅延線を使用して実装できます」と単純和訳の貼り付けなのですが^^; 何を言っているのか全く分かりませんでした。
つまるところ、ディレイラインを2つ組み合わせるよ、っていうことを言っているのだと思います。その後、いろいろと論文に基づく実装の方法が続きますが、何となく雰囲気はつかめてきました。
ディレイラインをなんやかんやして弦の物理モデリングを実装するよ、ということです。と、雑になってしまいましたが、この辺りは、言葉というより、実装をすることでいくらか見えてくるものなのかなとも考えていますので、まずは、サンプルの実装で確かめていきたいと思いました。
まとめ
かなり雑なまとめになりますが、
・ディレイラインは、音声サンプルを遅延させるというDSPの根源的なツール
・ディレイラインの組み合わせでフィルターやディレイ、コーラスなどの効果を作成できる。
・ディレイラインはリングバッファで実装できる。
・物理モデリングは、ディレイラインで実装できる。
という理解におちつきました。
次回からは、まずは、リングバッファによるディレイラインの実装チュートリアルを進めていきたいと思います。