Wizard Notes

Python, JavaScript を使った音楽信号分析の技術録、作曲活動に関する雑記

マルチバンド(オーディオクロスオーバー)処理を実現するフィルタ(Butterworth, Linkwitz-Riley)のPython実装(2バンド)

低域・高域のような周波数帯域別に信号処理する場合、いい感じに帯域を分割するフィルタが必要になります。 ソフトウェア/プラグインの具体例としてはマルチバンドコンプレッサが挙げられます。 このような回路の特性としては、音質に影響を与えるような振…

Pythonでゼロ位相フィルタリング (scipy.filter.filtfilt)

はじめに ゼロ位相フィルタリングの実装方法 scipy.signal.filtfiltを使ったゼロ位相フィルタ lfilter x 2 でのゼロ位相フィルタリング 参考Webサイト はじめに 双2次フィルタ (SOS) やバターワース/チェビシェフフィルタなどといったIIRフィルタは,FIRフ…

Python:半音ごとに音高を抽出するIIRフィルタバンクの作成と使い方 (librosa.filters.semitone_filterbank)

はじめに 音の高さの分析は,メロディや和音の推定に使われる重要な前処理です. 本ブログではこれまで,音の高さの分析手法として一般的である,定Q変換やフーリエ変換を使う手法を紹介してきました. www.wizard-notes.com これらの手法は周波数領域で信号…

Python: 高品質フェーズボコーダ pyrubberband でタイムストレッチ・ピッチシフト

オーディオ信号の再生速度・音高の変更はよく利用される処理です。 そのアルゴリズムはいくつかありますが、リアルタイム処理向けの手法としてはフェーズボコーダという手法があります。 Pythonでは、音楽信号分析ライブラリLibROSAにおいてフェーズボコーダ…

Python-sounddevice で音声や歌声をリアルタイム収音・再生・録音

Pythonで音声や歌声、楽器音などの収音・再生・録音を行うためのライブラリとしてはPyAudioが知られていますが、 低遅延であるASIO規格が利用できない Python 3.7 以上には非対応 というデメリットがあります*1。 Python 3.7 以上でASIO対応デバイスを利用可…

Chromeで Web Audio API の音が鳴らない現象への対処 (Warning: The AudioContext was not allowed to start)

久しぶりに Web Audio API を使ったコードを書いていたら、音を読み込んで再生するだけの簡単なサンプルコードでも音が鳴らないという現象に遭遇しました。 class AudioPlayer { constructor() { this.isPlaying = false; } init = () => { window.AudioCont…

React+Python Flask:数値入力フォームのデータをPOSTで送信するWebアプリ例

Flask と React でWebアプリを設計する練習として、フォームからPOSTでデータを送信/受信する簡単なWebアプリを作成してみました。 フォルダ/ディレクトリ構成 実行方法(ローカル) 実行例 プログラム Python Flask (app.py) JavaScript (main.jsx) HTML …

Python:数値で色をグラデーションさせて16進数カラーコードとして取得&HTML 表の自動生成 (matplotlib)

1次元の数値→16進数カラーコード HTML 表の自動生成 まとめ 1次元の数値→16進数カラーコード データ分析をするアプリ/プログラムでは、数値に基づいて色をグラデーションさせたいということが多々あります。 例えばPythonでは、matplotlib を使ったプロット…

「米津玄師の似た曲データベース」作成のための類似曲検索システム設計

www.wizard-notes.com 2021年7月に、開発中であるテンポ分析に基づく類似曲分析システムの設計・実装を一から見直し、米津玄師の似た曲データベースを作りました。 この類似曲分析システムの全体像と、各処理で使われている技術の紹介、そしてシステム設計・…

BPM・テンポ分析に基づく米津玄師の似た曲データベース(diorama, YANKEE, Bremen, BOOTLEG, STRAY SHEEP)

テンポ分析に基づく類似曲検索AIを使って、 米津玄師の似た曲データベースを作ってみました。 分析曲は、以下の5つのアルバムの収録曲全74曲としました。 diorama YANKEE Bremen BOOTLEG STRAY SHEEP 類似曲検索AI は、表中の「類似度」が 1.0 に近いほど基…