トップガイド › 効果音をゼロから合成する方法|録音なしで音を作る仕組み

効果音をゼロから合成する方法|録音なしで音を作る仕組み

当サイトの効果音932点は、すべて録音を使わずコードで波形を計算して作っています。矩形波・ノイズ・粒状合成など、実際に使っている合成手法を実装に即して解説します。

「録音しない」という選択

効果音を用意する方法は大きく2つあります。実際に音を録音する方法と、波形を計算で作る方法です。当サイトは後者だけを使っています。932点すべてが、マイクを一度も通さずPythonのコードから生まれています。

なぜそうしているのか。理由は権利です。録音した音には、録音物としての権利が発生します。素材集から買った音を再配布すればライセンス違反になりますし、街で録った音に他人の声や著作物が入っていれば別の問題が生じます。計算で作った波形にはそれがありません。誰の権利も含まないことを、作った本人が証明できるのが最大の利点です。

いちばん単純な音:矩形波

ファミコン世代の電子音の正体は矩形波です。値が +1 と -1 を一定周期で往復するだけの波形で、数式にすると1行で書けます。周期を短くすれば高い音に、長くすれば低い音になります。

矩形波には「デューティ比」という要素があります。1周期のうち +1 でいる時間の割合のことです。50%なら太くまっすぐな音、25%ならやや細く輪郭の立った音、12.5%まで絞ると鼻にかかったような硬い音になります。当サイトのタップ音や決定音は、この比率を変えることで音色を作り分けています。

ノイズと、そこから音を彫り出すフィルタ

爆発音や風の音は、音程を持ちません。こうした音の材料になるのがノイズ、つまり乱数の列です。ただし乱数をそのまま鳴らしても「ザー」という砂嵐にしかなりません。

そこでフィルタを使います。高い周波数を削るローパスフィルタを通せばこもった音に、低い周波数を削るハイパスフィルタを通せば軽く抜ける音になります。特定の帯域だけを取り出す帯域制限を使えば、風・波・砂利といった質感を作り分けられます。当サイトの爆発音は「周波数掃引 + ノイズ + ローパス」の3つの組み合わせで作っています。

粒をばらまく:粒状合成

泡がぷつぷつと立つ音、砂利を踏む音、袋をがさごそ探る音。これらに共通するのは、ごく短い音がたくさん集まってできていることです。この構造を作るのが粒状合成です。

数ミリ秒の短い音の粒を、時間軸上にばらまきます。粒の密度を上げれば連続音に近づき、下げればぽつぽつとした音になります。粒の周波数の範囲を変えれば、水の泡にも砂利にもなります。当サイトでは煮え立つ鍋、レジ袋、小銭の音などをこの方式で作っています。

共振器:生き物らしさの正体

人や動物の声が電子音と違って聞こえるのは、喉や口という空洞で特定の周波数が強調されるからです。これを再現するのが共振器(レゾネーター)です。特定の周波数だけを持ち上げるフィルタで、これを2〜3段重ねると、同じ音源が急に生き物の声らしく聞こえ始めます。

当サイトのモンスターの鳴き声40点は、音程を動かした矩形波にノイズを混ぜ、この共振器を通して作っています。共振器を外すと、途端にただの電子音に戻ります。

減衰のさせ方で「何の音か」が変わる

同じ材料でも、音量の変化のさせ方(エンベロープ)が違えば別の音になります。瞬間的に立ち上がって一気に消えれば打撃音、ゆっくり立ち上がってゆっくり消えれば風の音です。

当サイトの各効果音のページには、実測した立ち上がり時間と減衰時間を掲載しています。「立ち上がり0.5ミリ秒、減衰55ミリ秒」といった数値を見れば、音を聴かなくても打撃系か持続系かが判断できます。編集ソフトのタイムラインに置く前に、尺の見当を付けるのにも使えます。

自分でも作ってみたい人へ

波形合成は、特別なソフトがなくても始められます。必要なのは、数値の配列を作ってWAVファイルとして書き出す手段だけです。まずは矩形波を1つ鳴らし、次にエンベロープで減衰させ、そこにノイズを混ぜてみる。この3段階だけで、ジャンプ音や打撃音は作れます。

当サイトの音を実際に聴きながら、各ページの「どう作られているか」欄で使用手法を確認すると、どの音がどの技術に対応しているのか掴みやすいはずです。まずはシステム・UIの音が構造が単純で参考になります。

ほかのガイド