Simple Science

最先端の科学をわかりやすく解説

# 電気工学・システム科学# サウンド# 音声・音声処理

簡略化されたFMおよびPM合成技術

サウンドデザインでFMとPMをうまく使う方法を学ぼう。

― 1 分で読む


FMとPMシンセシスのマスFMとPMシンセシスのマスター法クニック。複雑なサウンドデザインのための効果的なテ
目次

周波数変調(FM)と位相変調(PM)は、楽器で音を作るための人気のある方法だよ。これらのテクニックは、幅広い音色やエフェクトを生み出すことができるんだ。最近、いくつかのシンセサイザーがFMを直接使い始めていて、より複雑な音の生成が可能になってる。ただ、この方法は周波数変調の仕組みによってチャレンジがあるんだ。この記事では、これらの概念をわかりやすくして、FMを効果的に使うための解決策を話すね。

周波数変調って何?

FM合成は、音を作るシンプルな方法だよ。FMでは、一つの信号が別の信号の周波数を制御して、部分的な音のバリエーションを生成するんだ。このテクニックはいくつかの方法で達成できて、指数関数的または線形の変調を使うことができる。この記事では、線形アプローチに焦点を当てるよ。

FMをもっと理解するために、ビブラートを考えてみて。これは音のピッチが素早く揺れることを指すんだ。ビブラートには2つの重要な要素があって、レートと幅。レートはピッチがどれくらい速く動くかを指し、幅は元のピッチからどれくらい動くかを指す。レートが遅くて幅が小さいと、音は一つの音符として認識されることができるよ。でも、変調周波数が増えると、出力音がより複雑になって、複数の部分音を持つ波形が生成されるんだ。

位相変調の説明

PMはFMに似てるけど、音の生成に使う方法が違うんだ。周波数を直接変える代わりに、PMは波の位相を変える。これも複雑な音を生成できるけど、FMで見られるいくつかの問題を避けることができるよ。PMは、ピッチの不要なシフトをもたらすことなく、高いレベルの変調を扱えるから、柔軟な選択肢なんだ。

FMとPMの比較

FMとPMには似たところがあるけど、特に複雑な音の扱い方で行動が違うんだ。それぞれの方法が変調を管理する仕組みに主な違いがあるよ。PMでは、DCオフセット(一定の値)が位相シフトに変換されるから出力には影響しないけど、FMではそのオフセットが不要な周波数変化を引き起こすことがある。だから、PMを使う方が複雑なサウンドデザインには簡単なんだ。

高次変調の課題

複数のモジュレーターを使用して音を作ると、高次変調と呼ばれるもので、FMとPMの両方を適用できるんだ。でも、FMはDCオフセットのせいで周波数ドリフトの問題を引き起こす可能性がある。これが音楽アプリケーションではピッチが変わる原因になることがあって問題なんだ。それに対して、PMは位相シフトがメインの周波数を変えないから、これらの問題を避けられるんだ。

例えば、最初のモジュレーションが二つ目をコントロールする二層の変調を使うことを想像してみて。FMでは、不適切な変調設定を使うと、最終的な音に不要な周波数が現れることがあるんだ。これらの問題はPMだと避けられるから、高次設定に対して一般的にもっと効率的なんだ。

高次FMへのより良いアプローチ

FMに関する課題があっても、高次の状況で効果的に使うための解決策を見つけることはできるよ。一つのアプローチは、FMをPMに似た方法で扱うことなんだ。変調信号が正しく適用されるようにすることで、最終出力での周波数ドリフトを避けられるんだ。

これを行うために、「オペレーター」と呼ばれるコンセプトを適用できるよ。このオペレーターは実質的に信号生成器で、以前の段階から変調を取り込んで次に適用することができるんだ。これで音のデザインの柔軟性を保ちながら出力をコントロールできる。

FMオペレーターの実装

FMオペレーターは、音のデザインプロセスの中でブラックボックスのように機能するんだ。各オペレーターは入力をいくつか受け取って出力信号を生成できるよ。周波数と振幅を組み合わせて音を作ることを知っている小さなユニットだと思って。オペレーター同士が協力するスタックデザインでは、一つの出力が次の入力になることができるよ。

オペレーターを使用する際には、適切な制御信号が使われていることを確認することが重要なんだ。オペレーターは、変調レベルや周波数など複数の入力を受け取り、必要な出力信号を生成するように設計できる。こうしたセットアップの利点は、音のデザイナーが高次FM設計で一般に発生する問題なしに複雑な変調を管理できることだね。

フィードバックFM合成

フィードバックもFM合成に組み込むことができるんだ。これは出力信号をシステムに戻して自分自身を変調させることを意味していて、もう一つの複雑さのレイヤーを追加するんだ。フィードバックFMはフィードバックPMと似たように機能するよ。過去には実用的でないと思われていたかもしれないけど、最近のアプローチは効果的に実装できることを示しているんだ。

フィードバックFMのデザインは、リッチなテクスチャやユニークな音を生み出すんだ。ただし、特に周波数がゼロになる可能性がある場合には、制御の問題を避けるために慎重な注意が必要だよ。

C++でのリファレンス実装

話した概念を示すために、FM合成のシンプルな例をC++で実装できるよ。以下はFM合成を作成するために使えるコードの簡略版だよ:

#include <vector>
#include <cmath>

// 基本オペレータークラス
template<typename S>
class Op {
    static constexpr long maxlen = 0x100000000;
    const std::vector<S> &tab;
    std::vector<S> out;
    // 追加の変数...

    S process(S amp, int si) {
        // 処理ロジック...
    }

public:
    Op(const std::vector<S> &table, float sr, std::size_t vsize);
    const std::vector<S> &operator()(S amp, S fr);
    // 追加のメソッド...
};

// 使用例
std::vector<float> tab(1025);
// ウェーブフォームでtabを初期化...
Op<float> fm(tab, fs);
for (size_t n = 0; n < fm.fs() * dur; n += fm.vsize()) {
    // 出力を生成...
}

このコードはFMシンセサイザーを設計するための基盤を提供しているよ。周波数と振幅の入力に基づいて音を生成するオペレーターを定義する方法を示しているんだ。

結論

FM合成は音の生成において強力なツールだけど、特に複雑なセットアップで注意が必要なんだ。FMへのアプローチを再定義し、オペレーターを使うことで、音のデザイナーは一般的な落とし穴に陥ることなく高次のFM合成を効果的に作成できるよ。フィードバックFMの実装も、新しい音のテクスチャやデザインの可能性を広げている。適切なテクニックを使えば、FM合成の領域を徹底的に探求し、豊かな音楽表現を可能にできるんだ。

オリジナルソース

タイトル: Higher-Order Frequency Modulation Synthesis

概要: Frequency modulation (FM) and phase modulation (PM) are well-known synthesis methods, which have been deployed widely in musical instruments. More recently, some synthesisers have implemented direct forms of FM (as opposed to PM), allowing, at least as part of their design, for higher-order modulation topologies. However, such implementations are affected by well-known difficulties that arise in the modulation of frequency, which are normally solved by the use of PM. In this article, we analyse these problems and using a direct comparison with PM, we put forward a solution for the direct application of FM in higher-order modulation arrangements. We begin by reviewing the theory of first-order FM, contrasting it to PM. We then proceed to develop a formulation of second-order FM which is equivalent to the issue-free PM synthesis, and present a closed-form expression for the evaluation of the second-order FM spectrum. We then extend the principle to higher-order topologies, by advancing the concept of an FM operator, analogous to the one used in PM instrument designs. From this we demonstrate that feedback FM is also a practical possibility. Finally, we complement the paper by giving a reference implementation in C++.

著者: Victor Lazzarini, Joseph Timoney

最終更新: 2023-05-13 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2305.07909

ソースPDF: https://arxiv.org/pdf/2305.07909

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

類似の記事