2019/01/09

Inviscid な Burgers 方程式

Inviscid な Burgers 方程式を読む (github.io)

Landajuela さんの BURGERS EUQATION で紹介されていた Godunov’s method で変形した inviscid な Burgers 方程式を実装して音を入力しました。歪み系のエフェクトとして使えそうです。

2018/12/22

1秒以下の音のクラスタリング


1秒以下の音のクラスタリングを読む (github.io)

GollyのGenerationsルールから生成した音のクラスタリングが意外とうまく行ったので、1秒以下の音のクラスタリングを試しました。

なんとなく似たような音が集まっている気がしますが、ラベルなしのデータセットでのクラスタリングは無謀でした。

2018/12/20

自己相関関数に基づくピッチ推定アルゴリズムYINとMPM

自己相関関数に基づくピッチ推定アルゴリズムYINとMPMを読む (github.io)

ピッチ推定に関するプロットギャラリーを見る (github.io)

音のクラスタリングに使う特徴量としてピッチがあると良さそうだと思ったのでピッチ推定アルゴリズムのYINMPM (McLeod Pitch Method) について調べました。MPMという名前は今回参考にしたsevaghさんのリポジトリでの表記にならっています。

いろいろ試した結果としてはMPMで使われる差分関数と自己相関関数の組み合わせが良さそうな気がしました。条件がいいときはYINで使われる差分関数とMPMで使われる自己相関関数の組み合わせのほうが誤差が少なかったです。

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 が合成した音です。