boochow

Synthesizer

BLIT(Band Limited Impulse Train)による鋸波の生成(2)

前回、BLITについて簡単に説明しました。要約しますと、 ・倍音成分をある周波数でカットした鋸波は、時間軸に沿ってBLITを積分すると生成できる。 ・BLITは、以下の数式で表される。 $$y(n) = (M/P) Sinc{_M}\\ \...
Synthesizer

BLIT(Band Limited Impulse Train)による鋸波の生成(1)

前回はエイリアスノイズの出ない鋸波を、ウエーブテーブルを使って生成しました。 この方法の欠点は、沢山のウエーブテーブルが必要になる点です。 PCのソフトシンセでは問題になりませんが、logue SDKではデータとコード合わせて32KBしか使...
Synthesizer

改めて、ウエーブテーブルシンセサイザを作る(5)

今回は、前回までの内容を使って鋸波のオシレータを作ってみます。 なおコードは以下で公開しています。 前回書いたように、logue SDKでは鋸波のウエーブテーブルが提供されていますが、テーブル数は7つと少なめです。 実際にlogue SDK...
Synthesizer

改めて、ウエーブテーブルシンセサイザを作る(4)

一般的に、ウエーブテーブルシンセサイザでは1つの音色に対して複数のウエーブテーブルを用意し、切り替えながら用いることが多いです。音色には様々な倍音成分が含まれますが、DA変換のサンプリング周波数を超えた倍音成分はエイリアスノイズの原因になる...
Synthesizer

改めて、ウエーブテーブルシンセサイザを作る(3)

前回作成したウエーブテーブルシンセサイザは、起動時にウエーブテーブルを計算で生成していました。しかし一般的には、ウエーブテーブルは事前に生成して定数としてコードに埋め込むのが普通でしょう。 例えばPythonなどを使ってウエーブテーブルを生...
Synthesizer

改めて、ウエーブテーブルシンセサイザを作る(2)

logue SDKにはサイン波のウエーブテーブルが用意されており、そのテーブルのサイズは128サンプルです。これは半波長分なので、1波長あたりでは256サンプルとなります。 今回はこのウエーブテーブルを、オリジナルのウエーブテーブルに置き換...
Synthesizer

改めて、ウエーブテーブルシンセサイザを作る(1)

久しぶりにlogue SDKでのプログラミングの話題です。 今回はウエーブテーブルシンセシスを扱います。 ウエーブテーブル方式のシンセシスは、1波長分のサンプリングデータを納めた「ウエーブテーブル」を繰り返し読み出すことで音を生成する方式で...
日記

ようやくトンネルの出口が見えてきた

もう4月も終わりですね。1年の3分の1が過ぎてしまいました。 この半年ばかりは仕事もプライベートも多忙で、新しい取り組みもできませんでした。 仕事では初めてのタスクも多くて効率よく進められず、プライベートではマンションの管理組合の役員の仕事...
日記

2021年の振り返りと2022年の抱負

あけましておめでとうございます。 2021年は、あっという間に過ぎていきました。 1月は突如発表されたRaspberry Pi Picoに入れ込み、それから3か月ほどPicoで遊ぶことにかかりきりとなりました。よく考えられたチップですしSD...
Synthesizer

logue SDK web simulatorのための試験用HTTPSサーバをPythonで簡易的に立てる

前回記事にしたlogue SDK web simulatorですが、ちょっと試したりデバッグするのに公開サーバまでファイルをアップロードするのは面倒ですね。 Linux環境のみで試すのであれば、localhostでHTTPサーバを pyth...
Synthesizer

logue SDKで作ったオシレータをブラウザ上で動作させてみる

logue SDKで作成したオシレータ等を試しに使ってもらうための方法として、ブラウザ上で動作する、シンセサイザのエミュレータ「logue SDK web simulator」を使う方法があります。これはKORGで開発されたもので、以前dt...
Synthesizer

logue SDKで20年前のパブリックドメインのリバーブ「Freeverb」を動かしてみる

一か月ほど前に、シュレーダーのアルゴリズムを使ったリバーブを作りましたが、あまり品質は良くありませんでした。今回は、20年ほど前に作られた「Freeverb」と言う public domain のリバーブをlogue SDKで動かしてみまし...
Synthesizer

logue SDKで作るαJunoエミュレータのリリースと、エイリアスノイズの話

昨年作り始めて最近また少し手を入れてきていた、logue SDKによるRoland αJunoのエミュレーションですが、ようやくある程度の完成度になったので、Gumroadでリリースしました。 最後の段階では、高音階でのエイリアスノイズの解...
Synthesizer

logue SDK用のCombフィルタの実験

前回の記事の中で、フィードバック付きディレイは「コム(櫛型)フィルタ」にもなるという話を書きました。簡単に言うと、遅延時間が非常に短くて、可聴域周波数の波長の領域に入るようなディレイは、波長と遅延時間が一致するような周波数成分を強める働きが...
Synthesizer

logue SDKでリバーブを作ってみる

これまでlogue SDKでオシレーター、モジュレーター、ディレイなどを作ってきましたが、今回はリバーブを作ってみました。 リバーブはディレイとSDKの API はほとんど変わらないのですが、作るのはリバーブの方が格段に難しいです。ディレイ...