2018/11/29

GollyのGenerationsで作った音のクラスタリング

GollyのGenerationsで作った音のクラスタリングを読む (github.io)

GollyのGenerationsで作った音を分類したくなったので、音のMFCCを特徴としてK-Meansでクラスタリングしました。

クラスタリングから得られたデータでファンシーなプロットも作りました。上の図はMFCCによるクラスタリングの結果をt-SNEで視覚化しています。

2018/11/17

GollyのGenerationsアルゴリズムで音を生成

コードを見る (github.com)

GollyGenerationsアルゴリズムを使って、ランダムなルールと初期状態から得た人口の推移をそのまま音にしました。

2018/11/13

Singen0.3

Singen0.3を試す (github.io)

Singen0.3はPADsynthをモジュレータに使ったFMシンセサイザです。

次のリンクのデモ曲のような音が出ます。デモ曲はSingen0.3で作った音をFL StudioのSamplerに読み込ませて作っています。

デモ曲を聴く (Google Drive)

以下はおおまかな信号の流れ図です。


2018/10/20

Canvas038

デモを見る (github.io)

⋁が流れます。

2018/10/19

WebAudioを試す

「WebAudioについて」を読む (github.io)

WebAudioでよく使いそうな機能を一通り試して文章にまとめました。

今のところはAudioWorkletが使えないので複雑なことはできなさそうです。

DelayNodeで簡単なシンセサイザを作って遊ぶつもりだったのですが、Karplus-Strongを実装して delayTime = 1 / pitch としたところ音程がずれました。一定の値を加えることでチューニングできたので、何らかの理由で想定外の遅延が加えられているようです。

Firefox 62ではBiquadFilterNodeのtypeが "lowpass" または "highpass" のときQに負の値を設定できないこともわかりました。

2018/10/09

PADchoir2

デモを試す(github.io)

PADchoir2はPADsynthに直接、倍音を入力して音をレンダリングできるシンセサイザです。

以前作ったPADchoirで「あ」以外の母音を作れるようにできないか試していたところ、PADsynthに直接倍音を入力した方が早いような気がしたのでインターフェイスを少し変えてPADchoir2としました。いろいろ試した後でPADchoirも多少改良しました。

母音のフォルマントは声のピッチによって変動しないようです。PADchoir2のパラメータで言うと、Overtoneを上手く設定して母音の「い」に聞こえる音ができても、Basefreqを変えると別の母音に聞こえることがあります。

Canvas037

デモを見る (github.io)

ランダムな線を適当に並べました。何となく面が見えます。

2018/07/25

DR-110風のシンバル



「DR-110風のシンバル」を読む (github.io)

レンダリングした音を聞く (github.com)

DR-110のシンバルに似た音を書き出すPython3のコードを書きました。画像は実装した音の信号の流れ図です。レンダリングした音のリンク先にある *_mixed.wav と *_noisy.wav が合成した音です。

2018/07/21

Burgers方程式でN波


「Burgers方程式でN波」を読む (github.io)

Burgers方程式の厳密解を実装してN波の振る舞いをプロットしました。Vincent TOURNATによるIntroductory Lecture on Nonlinear Acousticsで紹介されていた式を使っています。

似たような波形が出るmdaDX10のオシレータについても調べました。

2018/06/25

2018/05/19

FDNCymbal

デモを見る (github.io)

FDNCymbal は feedback delay network を使ったシンバルのような音が出るシンセサイザです。

仕組み

下図はFDNCymbal の大まかな信号の流れです。

Input はインパルスです。

FDN(n) の *.Time は FDN.Time、Atk.Time、Tick.Time に基づいていますが、カスケードの深さに比例して変更されます。

加算(、プラスの記号に丸)の部分に表示したパラメータは2つの信号を混ぜ合わせる比率を調整します。