2019/07/04

WobblingMetalBoard

デモを見る (github.io)

WobblingMetalBoard は金属板を揺らしたときのような音を合成するシンセサイザです。

次のリンクは本物の金属板を揺らしたときの音です。 WobblingMetalBoard の Bounce -> Number を 1 にしたときの音と比べてみてください。

金属板を揺らしたときの音 (Google Drive)

2019/06/30

Bubbles


デモを見る (github.io)

Bubblesは泡の音を合成するシンセサイザです。 Kees van den Doel による Physically-based Models for Liquid Sounds に基づいています。

2019/06/29

AM変調によるピッチシフト


AM変調によるピッチシフトを読む (github.io)

Scott Wardle さんによる A Hilbert-Transformer Frequency Shifter for Audio で紹介されていたAM変調によるピッチシフトで遊びました。

画像は Olli Niemitalo さんによって紹介されていた analytic signal を近似する2つのオールパスフィルタの位相差の周波数特性です。

2019/06/26

凸最適化を用いた分数ディレイフィルタの設計

凸最適化を用いた分数ディレイフィルタの設計を読む (github.io)

PutnamとSmithによるDesign of fractional delay filters using convex optimizationで紹介されていた分数ディレイフィルタを設計して、ラグランジュ補間の分数ディレイフィルタと比べました。

上の画像は論文で紹介されていたフィルタの群遅延特性、下の画像はラグランジュ補間の群遅延特性です。論文のフィルタのほうが急峻な特性になっていますが、低域ではラグランジュ補間のほうがフラットに見えます。

ベンチマークをとってみないとはっきりとは言えませんが、論文のフィルタは単純なFIRフィルタなので場合によってはラグランジュ補間より高速かもしれません。

2019/06/24

ディレイの実装


ディレイの実装を読む (github.io)

ラグランジュ補間を使ったディレイの実装の詳細についてまとめました。画像は補間によって生じるずれの補正に関する図です。

 いろいろ試したところ、2倍のオーバーサンプリングと線形補間でノイズが十分に減ることがわかりました。 テープの低速再生などを再現するときはラグランジュ補間が役に立ちそうです。

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)

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