2本のノコギリ波と、その重ね合わせで生まれるうなりと倍音の広がりを描いたReese Bassのアイキャッチ

2本のノコギリ波が低音を濁らせる ── Reese Bass

前回のウブルベース では、LFO(別のつまみを周期的に動かすための低周波発振器)を使ってフィルターのカットオフを上下させました。音色の明るさを外から動かすことで、あの「ウォブウォブ」を作る仕組みです。 今回の Reese Bass は、似たような低音のうねりが聞こえても成り立ちが違います。LFOは一切使いません。わずかに周波数をずらした複数のノコギリ波をただ重ね、その足し算で起きる位相干渉を音色そのものにします。デチューンとは、同じ音程のつもりで鳴らす音を少しだけ高く、または低くずらすことです。 Reese Bassを曲で聴く Reese Bass という名前は、デトロイト・テクノのプロデューサー Kevin Saunderson が Reese 名義で1988年に発表した「Just Want Another Chance」に由来します。KMS Records / Incognito Records からリリースされたこの曲のベースラインは、後年ドラムンベースやジャングルのプロデューサーたちに再発見され、繰り返し使われるうちに音色の名前として定着しました。 Reese / Just Want Another Chance Just Want Another Chance Reese Bassという呼び名の出発点になった曲です。ベースを一つの固定した音としてではなく、濁りながら内部で動き続ける塊として聴くと、このあとの位相干渉の話へつながります。 YouTubeで探す Amazonで探す Renegade / Moving Shadow Terrorist Ray Keithの別名義Renegadeによる1994年の曲です。DJ Magが「gargantuan Reese」と評し、ジャングルのブループリントになった代表曲として紹介しています。 YouTubeで探す Amazonで探す Alex Reece / Metalheadz Pulp Fiction 1995年に発表され、Reese Basslineを使った曲がドラムンベースのスタンダードになった代表例として語られる曲です。2-stepドラムンベースの先駆けとも言われます。 YouTubeで探す Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 ...

公開: 2026年7月12日 · Toshihiko Arai
周波数の壁(ナイキスト周波数)に向かって上がっていった音が、壁で折り返して可聴域に降りてくる図

高い音を作ったら化け物が出た ── エイリアシング(ナイキストの壁)

以前の記事 で、音の正体は1秒に44100個の数の列だと書きました。そのとき、こんな宿題も残していました。人間に聞こえるいちばん高い音はおよそ2万Hzなのに、なぜその2倍あまりの44100個で足りるのか。今回はその答え合わせです。 答えを先に言ってしまうと、サンプリング周波数44100Hzで表せる音の高さには天井があって、それはちょうど半分の22050Hzです。この天井をナイキスト周波数と呼びます。可聴域の上限2万Hzより少し上に天井が来るように、44100という数字が選ばれているわけです。 ここまでなら「へえ、上限があるのか」で終わる話です。面白いのはここからで、では天井より高い音を無理やり作ったらどうなるのか。エラーになるわけでも、無音になるわけでもありません。天井を超えた音は、壁に当たったボールのように折り返して、聞こえる音域に降りてきます。22050Hzの壁に向かって音をどんどん高くしていくと、ある瞬間から音は裏返って、上げているのに下がって聞こえはじめる。プログラムで高い音を作ろうとした人が最初に出会う、いちばん有名な化け物です。この現象をエイリアシング(折り返し雑音)と呼びます。 記録に残るのは点だけ なぜそんな奇妙なことが起きるのか。種明かしは、サンプリングという記録方法そのものにあります。コンピューターは音の波を連続のまま持てないので、一定間隔のスナップショット、つまり点の列として記録するのでした。問題は、波が速すぎて点の間隔が追いつかなくなったときに起きます。 図は話を分かりやすくするために、サンプリング周波数を8000Hzに下げた世界です。壁は半分の4000Hz。そこへ7000Hzの波を作って記録したとします。波は1回の記録の間にほぼ1周も進んでしまうので、記録された点の列を眺めると、ゆっくりした波にしか見えません。実際、この点の列は1000Hzの波の上にも一分の隙もなく乗っています。そして記録に残っているのは点だけです。元の波が7000Hzだったという情報はどこにも残っていないので、再生側は点に合う波のうち低いほう、つまり1000Hzを鳴らします。7000Hzを作ったつもりが、1000Hzの偽物(エイリアス)が鳴る。これがエイリアシングの正体のすべてです。 同じことは目でもよく起きています。映画で車のホイールが逆回転して見える、あの現象です。カメラは1秒24コマのスナップショットしか撮らないので、コマの間にホイールがほぼ1回転してしまうと、少しだけ戻ったようにしか写らない。速すぎる回転が「ゆっくり逆回る」偽物に化けるのは、速すぎる波が低い音に化けるのとまったく同じ理屈です。 波を点で記録するとき、1周期あたり最低2点は打てないと波の上下すら描き取れません。だからサンプリング周波数の半分が天井になります。逆に言えば、半分より下の成分は完全に記録できる、というのが標本化定理(サンプリング定理)と呼ばれる有名な定理で、ナイキスト周波数の名は、この理論の礎を築いた通信技術者ハリー・ナイキストにちなんでいます。 消えるのではなく、折り返す 天井を超えた成分がどこへ行くかは、きれいな規則になっています。作ろうとした周波数を横軸、実際に聞こえる周波数を縦軸に取ると、グラフはナイキスト周波数を頂点にしたジグザグを描きます。 壁の内側では、作ったとおりの高さが聞こえます。壁を越えると、超過ぶんがそのまま鏡写しに引き返してきて、たとえば44100Hzサンプリングで30000Hzを作れば、44100 − 30000 = 14100Hzが鳴ります。さらに上げて44100Hzに達すると聞こえる高さは0Hz、つまりほぼ無音まで下がり、そこから先はまた上がりはじめる。周波数をどれだけ上げ続けても、聞こえる高さは0Hzと壁のあいだを往復するだけで、決して壁の外へは出られません。 数式で書けば、作った周波数$f$に対して聞こえる周波数は $$f_{\text{alias}} = \left| f - f_s \cdot \mathrm{round}\left(\frac{f}{f_s}\right) \right|$$ です($f_s$はサンプリング周波数)。いちばん近い$f_s$の整数倍からの距離、と読めます。壁の内側なら$f_{\text{alias}} = f$となって元のまま、壁の外なら別の場所に化けて出ます。 触ってみる この「音が裏返る瞬間」は、耳で聴くのがいちばんです。デモを用意しました。高い音を扱うので、再生の前に音量をかなり下げておいてください。 うまく表示されないときは、デモを別タブで開く 。 上のパネルは、折り返しを聴きやすくするためにサンプリング周波数8000Hzの世界をシミュレートしています(8000Hzでサンプリングした波を理想的に再生した音、つまり折り返し後の正確な周波数を鳴らしています)。「自動で上げ続ける」を押すと、音は素直に高くなっていき、4000Hzの壁に当たった瞬間に裏返って下がりはじめます。さらに続けると8000Hz地点で音がすっと消え、また上がってくる。スライダーを手で動かして、壁の前後を行き来してみるのも面白いはずです。 下のパネルは、この化け物が実務で顔を出す現場、ノコギリ波の再生です。素朴な作り方と帯域制限した作り方を切り替えて、スペクトラムの違いと音の濁りを聴き比べられます。基音を高くするほど、また「音程スイープ」で音を滑らせると、素朴なほうでは音程と無関係に鳴き声のような成分が横切っていくのが分かります。 ノコギリ波に化け物が住みつく理由 サイン波を1本だけ鳴らしているぶんには、壁の存在はまず問題になりません。可聴域の上限すれすれの音を作る機会など、ほとんどないからです。ところが倍音の回 でやったように、楽器らしい音色は倍音、つまり基音の2倍、3倍、4倍……という高い成分を大量に含んでいます。ノコギリ波にいたっては、すべての整数倍の倍音を無限に含む波形です。基音が可聴域のまん中あたりでも、倍音たちはあっという間に壁を越えます。 そして越えたぶんは消えてくれず、折り返して可聴域に降りてきます。たちが悪いのは、折り返した成分が倍音の位置に着地しないことです。倍音は基音の整数倍という行儀のよい間隔で並んでいて、耳はその並びを「ひとつの音色」として聞きます。ところが折り返し成分は整数倍から外れた半端な周波数に立つので、音色に溶け込まず、調子外れの濁りや金属的なざらつきとして耳につきます。おまけに音程を変えると、正しい倍音は音程と一緒に上がるのに、折り返し成分は壁との鏡写しで逆方向に動く。メロディーを弾くと、音程と無関係な成分がキュルキュルと横切る、なんとも不気味な鳴り方になります。 倍音の回の最後に、倍音は好きなだけ高くまで足せるわけではない、と書き残していました。その答えがこれです。何本まで足してよいかは壁が決めていて、$n$倍音が$f_s/2$を超えない範囲、つまり$n < f_s / (2 f_0)$までは足しても安全。それより上は足した瞬間に化け物に変わります。だから、まともなデジタルシンセサイザーのノコギリ波は、壁の手前で倍音を打ち切った帯域制限(バンドリミット)と呼ばれる波形を使っています。 宣伝を少しだけ。筆者は Harmonize という音感トレーニングアプリを個人開発していて、ピアノやバイオリンなどの音色にノコギリ波を使っています。高い音でも化け物が顔を出さないよう、倍音はナイキストの手前で打ち切る帯域制限にしています。 Harmonize 相対音感と純正律の感覚を鍛える音感トレーニングアプリ 今すぐ無料でダウンロード App StoreGoogle Play どう実現するか 帯域制限ノコギリ波の作り方は、倍音の回の加算合成そのままで、違いは足すのをやめる条件が入ることだけです。$n$倍音の周波数$n f_0$がナイキスト周波数に達したら、そこで打ち切ります。 $$x(t) = \frac{2}{\pi} \sum_{n=1}^{N} \frac{1}{n} \sin(2\pi n f_0 t), \qquad N = \left\lfloor \frac{f_s / 2}{f_0} \right\rfloor$$ ...

公開: 2026年7月12日 · Toshihiko Arai
黒地にネオンイエローのスマイル、ステップシーケンサー、レゾナンスの波形が重なるアシッドベースのレコードジャケット風アイキャッチ

アシッドベース入門

ウォブルベース では、倍音の多い低音をフィルターへ通し、そのフィルターを LFO で周期的に揺らす話をしました。では、同じ低音でも「ウォブウォブ」ではなく、「ビョン」「ミャウ」「ギュワッ」と跳ねるあの音は何でしょうか。アシッドハウスやアシッドテクノで鳴る、TB-303風のアシッドベースです。 アシッドベースも、素材はかなり素直です。ノコギリ波か矩形波を作り、ローパスフィルターへ入れる。そこまではウォブルベースと似ています。ただし主役は LFO ではありません。音符が鳴るたびにフィルターを一瞬だけ開き、レゾナンスでカットオフ付近を強調し、アクセントで一部の音をさらに強く明るくし、スライドで音程をぬるっとつなぐ。この「音符ごとの動き」が、アシッドベースの正体です。 要するに、ウォブルベースが「低音を周期的に揺らす音」だとしたら、アシッドベースは「低音をシーケンサーでつついて跳ねさせる音」です。この記事では、TB-303的な音をサウンドプログラミングの部品へ分解し、ブラウザ上の16ステップデモで組み立てます。 アシッドベースを曲で聴く アシッドベースは、Roland TB-303 Bass Line と切り離して語りにくい音です。ここでは、TB-303や303的なシーケンスの文脈で代表的に語られる曲を並べます。聴くときは、低音の音程よりも、フィルターが「開く瞬間」と、音程が段差ではなく滑ってつながる瞬間に耳を向けると、このあとの仕組みとつながります。 Phuture / Acid Tracks Acid Tracks アシッドハウスの出発点として語られる代表曲です。長く反復される303のフレーズが、つまみ操作とレゾナンスだけで別の生き物のように変化していきます。 YouTubeで探す Amazonで探す A Guy Called Gerald / Single Voodoo Ray 初期アシッドハウスの成功例として分かりやすい曲です。歌やサンプルの印象も強いですが、裏で走る303シーケンスの粘りが曲の推進力を作っています。 YouTubeで探す Amazonで探す Hardfloor / Acperience Acperience 1 303を何本も絡ませる方向の、かなり分かりやすいアシッドテクノです。音色が細かく変わっても、シーケンスの反復がずっと背骨に残ります。 YouTubeで探す Amazonで探す Josh Wink / Single Higher State of Consciousness 歪みを足した303の叫びが、フィルターを開きながら上へ突き抜ける代表例です。この記事のデモで drive と resonance を上げると、この方向の音に近づきます。 YouTubeで探す Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 ウォブルとの違いは「誰がフィルターを動かすか」 ウォブルベースでは、フィルターを動かす主役は LFO でした。BPMに同期した低周波の波が、カットオフを周期的に上げ下げします。だから音は「ワウワウ」「ウォブウォブ」と、一定の揺れとして聞こえます。 ...

公開: 2026年7月11日 · Toshihiko Arai
音に波を掛け算する操作が、掛ける速さ次第でトレモロ(音量の揺れ)とリングモジュレーション(和と差の周波数)に分かれる図

音量を揺らす・音を掛け算する ── トレモロとリングモジュレーション

前回のFM合成 では、サイン波の周波数を別のサイン波で揺さぶると倍音の森が生えるという話をしました。あのとき揺らしたのは音の高さです。では、もうひとつの素朴なつまみ——音量のほうを別の波で揺らしたら、何が起きるでしょうか。 式で書けば、やることは掛け算ひとつです。元の音 $x(t)$ に、揺れを表す波 $m(t)$ を掛ける。 $$y(t) = x(t) \cdot m(t)$$ 周波数を揺らすのがFM(周波数変調)だったのに対し、振幅(音の大きさ)を揺らすこちらはAM(振幅変調)と呼ばれます。ラジオのAM・FMと同じ言葉で、電波の世界で搬送波に音声を乗せるのに使われてきた由緒正しい二兄弟です。音作りの世界でも、この2つは「揺らす先が違うだけの兄弟」の関係にあります。 FMでは波の間隔が詰まったり伸びたりしました。AMでは間隔はそのままに、波の背たけだけがふくらんだり縮んだりします。掛けた波が、そのまま音量の輪郭としてなぞられるわけです。 数Hzを掛ければトレモロ この掛け算、ゆっくりやるぶんには何の変哲もないエフェクトです。毎秒5回ほどのペースで音量をワワワワと脈打たせる——ギターアンプに昔から付いている、あのトレモロです。ヴィンテージアンプの揺れる音、サーフミュージックのギター、エレピの左右に揺れるような効果。どれも中身は「音量のつまみを、遅い波で自動的に上下させている」だけです。 こういう用途に使う遅い波の発振器を、シンセサイザーの世界では LFO(Low Frequency Oscillator、低周波発振器)と呼びます。音として聞かせるためではなく、何かのつまみを揺らすためだけに回っている裏方のオシレータです。トレモロはLFOを音量のつまみにつないだもの、前回 の入り口に出てきたビブラートはLFOを音程のつまみにつないだもの、と整理できます。 ひとつだけ式に細工があります。音量に波を掛けるとき、実際には $x \cdot (1 + 0.5\sin)$ のように「1+」の下駄を履かせます。掛け算の相手が $0.5\sin$ だけだと音量が1秒に何度もゼロをまたいでしまうので、1を中心に上下させて「大きくなったり小さくなったりする」揺れにするためです。この何気ない「1+」が、あとで大きな意味を持ってきます。 トレモロが効いている名曲 言葉より、実際に揺れているギターを聴くのが早いです。トレモロが曲の表情そのものになっている2枚を置いておきます。 The Smiths / Hatful of Hollow How Soon Is Now? イントロから鳴り続ける、水面が波打つようなあのギターがトレモロです。ジョニー・マーは複数のアンプのトレモロを同期させて深く速い音量の脈を作りました。トレモロと言えばまずこの音、という一曲です。 YouTubeで探す Amazonで探す Creedence Clearwater Revival / Bayou Country Born on the Bayou 曲全体を通してギターに深いトレモロがかかり、湿ったうねりのような揺れが沼地の空気感を作っています。ヴィンテージアンプのトレモロが曲の土台になっている好例です。 YouTubeで探す Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 掛ける波を、どこまでも速くしてみる トレモロのつまみは、ふつう数Hzまでしか回りません。しかしプログラムの中では、掛ける波の速さに上限はありません。毎秒5回を50回に、500回にしたらどうなるか——前回 、ビブラートを速めたら音色に化けたのとちょうど同じ実験を、今度は音量側でやってみます。 ...

公開: 2026年7月11日 · Toshihiko Arai
黒地にネオンの波形、サブウーファー、LFOの軌跡、WUB BASSの文字を重ねたダブステップのレコードジャケット風アイキャッチ

ダブステップの「ウォブウォブ」ベースを作る ── LFOでフィルターを揺らす

ダブステップでよく聞く、低音が「ウォブウォブ」「ワウワウ」とうねるベース。英語では wobble bass や wub bass と呼ばれる音です。はじめて聴くと、何か特殊な音源や複雑なアルゴリズムが入っていそうに聞こえますが、核になっている考え方はかなり素直です。 倍音の多いベース音を作り、それをフィルターへ通し、フィルターのカットオフ周波数を LFO で周期的に動かす。さらに歪みで倍音を増やし、低域の芯はサブベースとして別に支える。これだけで、あの「うにょうにょ」した動きの大部分が説明できます。 この意味で、ウォブルベースはサウンドプログラミングの集大成にちょうどいい題材です。音を数として作る ところから始まり、倍音 で素材を作り、フィルター で明るさを削り、ADSR のような時間変化を別のパラメータへ掛ける。FM合成 で荒い倍音を足すこともできます。単発の仕組みではなく、いくつもの小さな部品を音楽的な目的へ組み上げる例です。 ウォブルベースを曲で聴く ウォブルベースは、曲のクレジットに「wobble bass使用」と書かれるタイプの音色ではありません。なのでここでは、ダブステップやブロステップの文脈で、唸る中域ベースやワウワウ動くベースが代表的に語られやすい曲を並べます。低域そのものより、倍音の多い中域がどう動いているかに耳を向けると、このあとの仕組みとつながりやすいです。 Doctor P / Sweet Shop / Gargoyle Sweet Shop この記事のデモにいちばん近い、直球の「ワブワブ」感を聴き取りやすい曲です。音程の低さよりも、歪んだ中域ベースがリズムに合わせて口を開け閉めするように動くところへ耳を向けると分かりやすいです。 YouTubeで探す Amazonで探す Caspa & Rusko / FABRICLIVE.37 Cockney Thug 2000年代後半の、荒くて前に出るダブステップの聴きやすい入口です。ベースが「低音の支え」ではなく、リズムと音色変化で主役になる感覚が分かりやすいです。 YouTubeで探す Amazonで探す Skrillex / EP Scary Monsters and Nice Sprites いわゆるブロステップ的な、喋るような中域ベースの代表例として分かりやすい曲です。低音の芯より、歪んだ倍音とフィルターの動きが前面に出る方向を聴けます。 YouTubeで探す Amazonで探す Flux Pavilion / Lines in Wax I Can't Stop ...

公開: 2026年7月10日 · Toshihiko Arai
黒いデジタルシンセのパネル上にFM SYNTHESIS、6つのオペレータ、ratioとindexの表示、スペクトラムバーを重ねた80年代FM音源風アイキャッチ

sin 2つで金属もベルもエレピも ── FM合成

カープラス・ストロングの回 では、ノイズを輪に閉じ込めて回すだけで弦が鳴るという話をしました。今回はもっと欲張って、ベル、金属、エレクトリックピアノ、木管——と、まるで性格の違う音色をひとつの式から取り出します。使うのはサイン波の発振器(オシレータ)2つと、こんな式だけです。 $$y(t) = \sin\big(2\pi f_c t + I \cdot \sin(2\pi f_m t)\big)$$ sin の中に、もうひとつの sin が入っている。たったこれだけの仕掛けが FM合成(周波数変調合成)で、1983年のヤマハ DX7——世界でいちばん売れたシンセサイザーのひとつで、80年代ポップスのあのエレピやベルの音源——の心臓部でもあります。この記事では、この入れ子の sin が何をしているのか、そしてつまみ2つでなぜ音色の地図を旅できるのかを、音の出るデモで確かめていきます。 DX7の音を実際の曲で聴く DX7の話をするときは、実際の曲を横に置いたほうが一気に分かりやすくなります。個々の曲で鳴っている音がすべてDX7という意味ではありませんが、80年代ポップスでFM音源がどう聞こえていたかをつかむ入口として、よく名前が挙がる曲を並べます。 a-ha / Hunting High and Low Take On Me DX7のシンセベース系プリセットの例として語られることが多い曲です。歌メロの印象が強いですが、下で細かく動く硬めのベースに耳を向けると、FMらしい輪郭の速さが分かります。 YouTubeで聴く Amazonで探す Whitney Houston / Whitney Houston Greatest Love of All DX7の代表的なエレピ音を聴くなら、まずこの系統のバラードが分かりやすいです。アコースティックピアノより硬く、ベルよりは丸い、あの透明なエレピの質感です。 YouTubeで聴く Amazonで探す Berlin / Top Gun soundtrack Take My Breath Away 『トップガン』の主題歌として有名ですが、冒頭から支えるシンセベースの質感もDX7の文脈でよく取り上げられます。エレピだけでなく、低音でもFMの硬い輪郭が出ます。 YouTubeで聴く Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 ...

公開: 2026年7月10日 · Toshihiko Arai
リングバッファの輪の上を書き込み針と読み出し針が一定間隔で追いかけっこし、読んだ音を弱めて書き戻すとやまびこが連なるディレイの図

やまびこはリングバッファ1本 ── ディレイの仕組み

山に向かって「ヤッホー」と叫ぶと、少し遅れて自分の声が返ってきます。返ってきた声は元の声よりも小さく、運が良ければ2回目、3回目と、だんだんかすかになりながら繰り返します。カラオケのエコーも、ギタリストが足元で踏むディレイペダルも、正体はこのやまびこです。音を豊かに響かせているように聞こえますが、やっていることを言葉にすると拍子抜けするほど単純で、いまの音に「少し前の自分の音」を弱めて混ぜているだけなのです。 ディレイの音を曲で聴く ディレイは、ただ音を後ろに足すだけの飾りではありません。遅れて返ってくる音がリズムの隙間を埋めると、演奏していない音符まで鳴っているように聞こえます。本文に入る前に、ディレイがフレーズそのものになっている曲を2つ置いておきます。 U2 / The Joshua Tree Where the Streets Have No Name 冒頭のギターは、付点8分ディレイが音符の隙間を埋める代表例です。1本のアルペジオに「少し前の自分」が重なり、細かく走るリズムへ広がります。 YouTubeで探す Amazonで探す Pink Floyd / The Wall Run Like Hell ミュートしたギターにディレイを重ね、反復音まで含めてリフを作る曲です。本文のフィードバック量を上げたときの「返ってくる列」が、演奏の推進力になります。 YouTubeで探す Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 山びこの場合、この「少し前の自分」を届けてくれるのは山です。声が山まで飛んで戻ってくるのに時間がかかるから遅れる。空気の中で減衰するから弱くなる。ではプログラムの中でこれを再現したいとき、山の代わりは何が務めるのか。音を一定時間だけ「ためておいて」、あとから取り出せる置き場所があればいい。今回の主役はその置き場所、リングバッファです。 少し前の自分を、輪にためておく 前提をひとつだけ確かめておくと、コンピューターにとって音とは1秒あたり44100個流れてくる数の列です。スピーカーの膜をどれだけ押し出すかを表す数が、毎秒4万個あまり届いているだけで、サイン波も人の声もこの数の並びにすぎません。だから「少し前の自分の音」とは、少し前に流れていった数のことです。0.3秒前の自分が欲しければ、直近13230個(44100 × 0.3)の数をためておいて、いちばん古いものから取り出せばいい。 ここで使うのが、固定長の配列を端まで来たら先頭へ戻る「輪」に見立てて使う、リングバッファと呼ばれるデータ構造です。当ブログでは以前、Queue の先頭削除からシフトを消す道具 として仕組みを紹介しました。要素を1つも動かさず、位置を指す目印だけをぐるぐる回すのが持ち味でしたが、今回はそのリングバッファが音響エフェクトの心臓部として働く、いわば実戦編です。 ディレイでの使い方はこうです。輪の上に、針を2本立てます。1本は書き込み針で、いま入ってきた音を毎サンプル、輪のマスに書き込んでは隣へ進む。もう1本は読み出し針で、書き込み針から一定の距離だけ離れた後ろを、同じ速さでついて回ります。 書き込み針がいまマスに置いた音を、読み出し針は自分がそのマスに到着したときに拾います。2本は同じ速さで回っているので、到着するのはきっかり「針の間隔ぶん」あとです。つまり読み出し針が拾う音は、いつでも「間隔ぶん昔の音」。この間隔こそがディレイタイム、やまびこが返ってくるまでの時間です。0.3秒のエコーが欲しければ針を0.3秒ぶん(13230マス)離しておく。エフェクターのつまみを回してディレイタイムを変えるという操作は、輪の上では針の間隔を広げたり狭めたりしているだけなのです。 追いかけっこという言葉を使いましたが、2本の針の間隔は永遠に縮まりません。等間隔を保ったまま輪を回り続ける。この安定した追いかけっこが、「常に一定時間前の音が取り出せる」という保証そのものになっています。 やまびこを連ねる ── フィードバック 読み出し針が拾った「少し前の音」を弱めて、いまの音に足す。これで1回だけのやまびこができます。しかし本物のやまびこは2回、3回と続きますし、ディレイペダルの音の魅力も、あの減衰しながら連なる尾にあります。やまびこを連ねるには、どうすればいいのでしょうか。 素朴に考えると、0.6秒前・1.2秒前・1.8秒前……と読み出し針を何本も立てて、それぞれ弱めて足したくなります。それでも作れるのですが、もっとうまい一手があります。混ぜ終わった出力のほうを輪に書き込むのです。 書き込み針が輪に書くのを「入ってきた生の音」ではなく「やまびこを混ぜたあとの出力」にする。すると出力は0.6秒後に読み出し針に拾われて、また弱められて出力に混ざり、それがまた書き込まれて……と、ぐるぐる回り始めます。1回目のやまびこには2回目が、2回目には3回目が、勝手についてくる。この、出力を入口へ戻す配線をフィードバックと呼びます。針を1本も増やさずに、無限に続くやまびこの列が手に入るわけです。 弱める割合を $g$ とすると、やまびこは1周ごとに $g$ 倍されるので、音量は $g,\ g^2,\ g^3,\ \dots$ と等比数列で減っていきます。$g$ が1より小さい限り、この列は必ずゼロへ向かうので、やまびこは自然に消えてくれます。逆に $g$ を1以上にすると、回るたびに音が減らない、あるいは膨らんでいくことになり、音は永遠に止まらずやがて轟音になります。これが発振です。カラオケでマイクをスピーカーに向けたときの「キーン」というハウリングは、まさに空気の上で起きた $g \geq 1$ のフィードバックです。ディレイを実装するときにフィードバック量へ上限を設けるのは、この事故を防ぐためで、このあとのデモでも85%を上限にしています。 ...

公開: 2026年7月9日 · 更新: 2026年7月10日 · Toshihiko Arai
サイン波を1本、2本、3本と足していくと波形が育ち、ノコギリ波になっていく図

音色の正体は倍音の配合 ── 足し算だけでノコギリ波を作る

エンベロープの回 で、サイン波は「具のないスープ」だと書きました。音量の輪郭をどれだけ作り込んでも、中身がサイン波のままでは、ピアノらしい鳴り方の系統までしか近づけない。本物の太い響きを出すには倍音たっぷりの波形が要る、という宿題を残したままでした。今回はその宿題の回収です。倍音とは何で、どうすれば「倍音たっぷりの波形」を自分の手で作れるのかを、音の出るデモと一緒に見ていきます。 音の高さが同じでも、音色が違うのはなぜか ピアノの「ラ」とフルートの「ラ」は、同じ高さなのにまるで違う音に聞こえます。マイクで録って波形を見比べると、違いは一目瞭然です。どちらも同じ間隔で同じパターンをくり返しているのに、そのくり返される「波の形」が違うのです。 コンピューターの中では、音は「スピーカーの膜をその瞬間どれだけ押し出すか」を表す数の列として、1秒あたり44100個の速さで流れています。波が1秒に何回くり返すか(周期の細かさ)が音の高さを決め、1回ぶんの波がどんな形をしているかが音色を決めます。上の図の3つは、くり返しの速さがそろっているのでどれも同じ高さの「ラ」ですが、聞こえ方は別物です。サイン波は音叉のような澄んだ音、ノコギリ波は弦や金管のような張りのある音、矩形波は昔のゲーム機のようなピコピコした音がします。 そうなると次の疑問は、この「波の形」をプログラムでどう作るかです。ノコギリの歯のような折れ線を数式で直接書いてもよさそうなものですが、サウンドプログラミングの世界には、もっと見通しのよい考え方があります。それが今回の主役、倍音です。 どんな波も、サイン波の足し算でできている 19世紀フランスの数学者フーリエは、のちの信号処理をまるごと支えることになる事実を見つけました。どんなに複雑な形の波でも、周期的にくり返ってさえいれば、それは必ず「基本のサイン波と、その整数倍の速さのサイン波たち」の足し算に分解できる、というものです(フーリエ級数と呼ばれます)。 音の言葉に翻訳するとこうなります。いちばん低い、音の高さを決めているサイン波を基音と呼び、その2倍、3倍、4倍……の速さで揺れるサイン波たちを倍音と呼びます。ピアノのラも、フルートのラも、分解すればどちらも「220Hzの基音+440Hzの倍音+660Hzの倍音+……」という同じ品目のリストになる。違うのは、それぞれの倍音がどれだけの量で入っているかという配合比だけです。音色の正体は、この配合比なのです。 分解できるということは、逆に組み立てることもできるはずです。ここが今回の核心で、実際にサイン波を1本ずつ足していくと、目の前で波形が「育って」いきます。 レシピは拍子抜けするほど単純で、$n$ 倍の速さの波を $1/n$ の量で、ぜんぶ足すだけ。基音1本ではただのサイン波だったのが、2倍の波を半分の量で足すと波が傾きはじめ、3倍の波を1/3で足すとギザギザの気配が出てきて、8倍まで足せばもう、はっきりノコギリ波の姿になります。足しているのは終始、角のまるいサイン波だけです。それなのに、足せば足すほど鋭い角が立ち上がってくる。初めて見ると、ちょっとした手品のようです。 倍音ごとの量を棒グラフに並べたものが、いわば音色の配合表です。そして配合表を少し書き換えるだけで、できあがる波形はがらりと変わります。 全部の倍音を $1/n$ で混ぜればノコギリ波。偶数番目を抜いて、奇数の倍音だけを $1/n$ で混ぜれば矩形波。ゲーム機のあのピコピコ音は、「偶数の倍音が入っていない」という配合の音だったわけです。このようにサイン波を積み上げて音色を作る方式は加算合成と呼ばれ、シンセサイザーの最も古典的な作り方のひとつです。パイプオルガンは、長さの違うパイプ(それぞれがほぼサイン波を出します)を同時に鳴らして音色を作るので、いわば物理装置による加算合成です。 ついでに自作アプリの話を少しだけ。筆者が個人開発している音感トレーニングアプリ Harmonize でも、オルガン・フルート・尺八といった音色は、まさにこの正弦倍音の重ね(加算合成)で鳴らしています。配合表を楽器ごとに変えているだけ、と言ってしまえるのがこの方式の気持ちよさです。 Harmonize 相対音感と純正律の感覚を鍛える音感トレーニングアプリ 今すぐ無料でダウンロード App StoreGoogle Play 触ってみる ここまでの話を、実際に手で混ぜられるデモを用意しました。スライダー8本がそのまま倍音の配合表です。まず「🌱 1本ずつ足して育てる」を押してみてください。基音だけのサイン波に倍音が1本ずつ加わって、澄んだ「ポー」という音がだんだん張りのあるブラスのような音に変わり、波形にノコギリの歯が立っていきます。さきほどの図が、音付きで動く様子を見られます。 うまく表示されないときは、デモを別タブで開く 。 鳴らしたまま、ノコギリ波と矩形波のプリセットを切り替えてみると、「偶数の倍音を抜く」だけで音の性格が変わるのがわかります。それから、どのスライダーをどう動かしても、音の高さそのものは変わらないことにも注目してください。高さを握っているのはくり返しの速さ、つまり基音の周波数で、倍音の配合は音色だけを受け持っています。むしろ基音のスライダーを0にしてしまっても、耳にはほぼ同じ高さに聞こえ続けるはずです。倍音の並びの「間隔」から、耳が勝手に基音を補ってしまうからで、この不思議は鳴らしていない低音が聞こえる話 として以前に取り上げました。 どう実現するか デモの中身は、レシピをそのまま数式にしたものです。基音の周波数を $f_0$ として、ノコギリ波は $$x(t) = \frac{2}{\pi} \sum_{n=1}^{N} \frac{1}{n} \sin(2\pi n f_0 t)$$ と書けます。$n$ 倍の速さのサイン波を $1/n$ の量で足し合わせる、あの図のとおりの式です(先頭の $2/\pi$ は、全体の高さを $\pm1$ にそろえるための定数です)。矩形波なら、和を奇数の $n$ だけに限って係数を $4/\pi$ にすれば得られます。プログラムにするなら、二重ループが1つあれば足ります。 /* ノコギリ波を倍音の足し算で作る(C風の擬似コード) */ for (i = 0; i < length; i++) { double t = (double)i / fs; /* いまの時刻(秒) */ double v = 0; for (n = 1; n <= 8; n++) /* 倍音を8本 */ v += sin(2.0 * M_PI * n * f0 * t) / n; /* n倍の波を 1/n で足す */ output[i] = (2.0 / M_PI) * v; } ブラウザの Web Audio API なら、サイン波を1本鳴らす部品(OscillatorNode)を8個作って、それぞれの音量を $1/n$ にしてつなぐだけです。足し算はどこにも書いていませんが、複数の音源を同じ出力へつなぐと自動的に混ざる、つまり配線そのものが足し算になっています。 ...

公開: 2026年7月8日 · Toshihiko Arai
プログラムが計算した数の列がスピーカーの膜を押し引きして音の波になる図。音の正体は1秒に44100個の数の列

音は数の列 ── サイン波を数式から鳴らす

デジタル画像の正体なら、多くの方が知っています。写真を拡大していくと四角いピクセルの並びが現れて、1枚の絵は結局「色を表す数の並び」だった、というあれです。では、音はどうでしょう。スマホから流れる音楽、ゲームの効果音、プログラムで鳴らす「ピー」という音。あれの正体を数で言い切れる人は、画像に比べるとぐっと少なくなります。 答えは画像と同じくらい単純です。スピーカーは、1秒に44100回、「いま膜をどれだけ押し出すか」という数を受け取って、そのとおりに膜を動かしているだけ。音の正体は、この数の列です。 スピーカーの中では、紙やフィルムでできた薄い膜が前後に動いて空気を押したり引いたりしています。この空気の振動が耳に届いたものが音です。そして膜の動きを指示しているのが、図の左上に並んだ数の列。+の数が来たら押し出し、−の数が来たら引っ込める。指示は1秒に44100回のペースで途切れなく届きます。録音した曲の再生も、プログラムがその場で作る合成音も、最後は必ずこの形になってスピーカーへ渡ります。裏を返せば、この数の列さえ自分で作れれば、どんな音でも鳴らせるということです。 この記事では、その一番小さな実例として、サイン波を数式から作って鳴らすところまでをやります。ここで連載の案内を少しだけ。当ブログでは、楽器の音をプログラムで作る仕組みを音の鳴るデモつきで紹介するシリーズを続けていて、エンベロープ やカープラス・ストロング の回では、今回の「音=数の列」を毎回さらっと前提にしてきました。今回はその土台を一本で正面から扱います。筆者は個人で音感トレーニングアプリ Harmonize を開発しており、アプリで鳴るピアノもオルガンも、録音ではなく、鳴らすたびにプログラムが計算したこの数の列です。 Harmonize 相対音感と純正律の感覚を鍛える音感トレーニングアプリ 今すぐ無料でダウンロード App StoreGoogle Play なめらかな波も、拡大すると点の列 音の教科書を開くと、まず出てくるのはなめらかな波の絵です。ところがコンピューターの中の音を拡大していくと、画像のピクセルとまったく同じことが起きます。 なめらかに見えていた波は、実は1/44100秒おきに置かれた点の列です。この一粒一粒をサンプルと呼びます。本物の空気の振動は切れ目なく連続していますが、コンピューターはそれを1秒あたり44100回のスナップショットで代表させている、というわけです。この「1秒を何個の数で表すか」をサンプリング周波数と呼び、44100Hz(44.1kHz)はCDが採用して以来の標準的な細かさです。人間に聞こえるいちばん高い音(およそ2万Hz)の揺れを描き取るのに足りるだけの細かさとして選ばれた数字です。なぜその2倍強で足りるのかは面白い話なので、この連載のエイリアシング(ナイキストの壁)の回であらためて取り上げます。さしあたっては「1秒=44100個の数」とだけ覚えれば十分です。 つまりプログラムで音を出す仕事とは、44100分の1秒ごとに数をひとつ決めて、スピーカーへ送り続けることです。では、その数をどんな式で決めれば「ラの音」が鳴るのでしょうか。 どう実現するか ── 位相をぐるぐる回す 鳴らしたいのは、たとえば440Hzのサイン波だとします。440Hzとは「1秒に440回、押し引きをくり返す」という意味です。ここで、1回のくり返しを円の1周にたとえるのが定石です。円の上を回る点を思い浮かべて、その角度を$\varphi$(ファイ)と書き、位相と呼びます。1周は$2\pi$。1秒に440周してほしくて、数を書き出すチャンスは1秒に44100回あるのですから、1サンプルあたりに進むべき角度は決まっています。 $$\Delta\varphi = \frac{2\pi f}{f_s} \qquad (f = 440,\ f_s = 44100)$$ あとは、1サンプルごとに$\varphi$をこの$\Delta\varphi$だけ進めて、その瞬間の高さ$\sin\varphi$を数として書き出すだけです。 書き出した数を時間順に並べると、それがそのままサイン波の点列になっています。この「回しては書き出す」の小さなループを、サウンドプログラミングではオシレータ(発振器、音の源になる部品)と呼びます。コードにするとこれだけです。 /* サイン波オシレータ(C風の擬似コード) */ double phase = 0.0; double dphi = 2.0 * M_PI * f0 / fs; /* 1サンプルぶんの角度 */ for (n = 0; n < length; n++) { output[n] = amp * sin(phase); /* いまの高さを数として書き出す */ phase += dphi; /* 位相を進める */ if (phase >= 2.0 * M_PI) phase -= 2.0 * M_PI; /* 1周したら戻す(値が育ちすぎないように) */ } ここで、$\sin(2\pi f t)$と時刻$t$から直接計算すればいいのに、なぜわざわざ位相を足し込んでいくのか、と思うかもしれません。両者は同じ波を作りますが、差が出るのは周波数を途中で変えた瞬間です。時刻から直接計算する式で$f$を差し替えると、波の高さがいきなり別の場所へジャンプして「プチッ」という雑音が鳴ります。位相を積み上げる方式なら、$\Delta\varphi$を差し替えても$\varphi$自体は連続なので、波はなめらかにつながったまま音程だけが変わる。実用のシンセサイザーがそろってこの方式なのは、それが理由です。 ...

公開: 2026年7月7日 · Toshihiko Arai
入力波形をフィルターで処理して出力波形と周波数特性が変わる概念図

音色を変えるデジタルフィルター入門。ローパスとハイパスのカットオフを考える

サウンドプログラミングで音色を変えるとき、いちばん基本になる道具がフィルターです。フィルターは、音を「加工する魔法の箱」ではありません。波形の中から、速く変化する部分を弱めたり、ゆっくり変化する部分を弱めたりする計算です。 この記事では、ローパスとハイパスに絞ります。まずは「ローパスのカットオフ周波数を、デジタルの1サンプルごとの計算へどう変換するのか」をはっきりさせます。 フィルターの音を曲で聴く フィルターは、単体で主役になるというより、音の明るさを開いたり閉じたりして曲の呼吸を作る道具です。特にサンプルを反復するダンスミュージックでは、同じループでも高域を削ると遠く、開くと一気に前へ出てきます。ここでは、その「明るさを動かす」感覚で聴きやすい曲を2つ挙げます。 Daft Punk / Discovery One More Time French house のフィルター感をつかむ入口として分かりやすい曲です。ループの明るさが前へ出たり奥へ引いたりする聴こえ方を、ローパスの「高域を削る」と結びつけて聴けます。 YouTubeで探す Amazonで探す Stardust / Single Music Sounds Better With You 短いサンプルを反復しながら、明るさと密度でグルーヴを育てる French house の代表例です。同じ素材でも、高域の残し方で近さや抜けが変わることを聴き取りやすいです。 YouTubeで探す Amazonで探す ジャケット画像はMusicBrainz / Cover Art Archive由来の画像を記事内に同梱して配信しています。 ローパスは波形をならす ローパスフィルターは、低い周波数を通し、高い周波数を落とすフィルターです。言い換えると、波形の急な変化をならします。矩形波やノコギリ波の角が丸くなり、音は明るさを失って、こもった方向へ変わります。 いちばん直感的なローパスは、移動平均です。いまの値だけでなく、少し前の値もまとめて平均します。たとえば4個の値を平均するなら、次のようになります。 $$ y[n] = \frac{x[n]+x[n-1]+x[n-2]+x[n-3]}{4} $$ $x[n]$ は入力、$y[n]$ は出力です。$n$ は「何番目の値か」を表す番号です。最後に4で割っているのは、4個の値を足して平均しているからです。3個を平均するなら3で割りますし、8個を平均するなら8で割ります。 この式は、波形の細かいギザギザをならします。細かいギザギザは高い周波数成分なので、高域が落ちます。まずはこれがローパスの出発点です。 実際のサウンドプログラミングでは、次のような形もよく使います。 $$ y[n] = ax[n] + (1-a)y[n-1] $$ これは、いまの入力 $x[n]$ と、ひとつ前の出力 $y[n-1]$ を混ぜる式です。$a$ が大きいほど入力に素早く追従し、$a$ が小さいほど前の出力を強く引きずります。前の値を引きずるほど、急な変化には追いつけません。だから高域が落ちます。 コードにすると、1サンプルごとの処理は次の形です。 let y = 0; function lowpass(x, a) { y = a * x + (1 - a) * y; return y; } ここではまだ、カットオフ周波数をどう計算するかは置いておきます。まず大事なのは、ローパスが「前後の値を混ぜて、急な変化をならす」処理だということです。 ...

公開: 2026年7月5日 · 更新: 2026年7月10日 · Toshihiko Arai