Wizard Notes

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

和音の協和度を算出する不協和度曲線 (Dissonance Curve) のPython実装

和音の響きはその音楽の雰囲気を分析する重要な要素です。 長/短3和音のような明るい/悲しいといった響きから、ジャジーな和音の複雑で豊かな響きまで様々です。 このような和音の響きを計算機で分析する方法はいくつかあります。 今回は、和音がどのくら…

FL Studio で Miroslav Philharmonik 2 のクラッシュを防ぐ方法

IK Multimedia の高品質なオーケストラ音源 Miroslav Philharmonik 2 (CE) は、セール時だとCEで5~6千円、完全版でも1万円台で買えるコスパの良いオーケストラ音源です。 しかし、FL StudioではプラグインがDAWを巻き込んで頻繁にクラッシュするという問題が…

1次IIRオールパスフィルタでローパス/ハイパスフィルタを作る(Python実装)

「信号処理に欠かせないオールパスフィルタ―の概要・使い方・利用例」では、オールパスフィルタによって低演算量で様々な周波数特性のフィルタを作成できることを紹介しました。 www.wizard-notes.com この記事では、その具体例として1次IIRオールパスフィル…

信号処理に欠かせないオールパスフィルタ―の概要・使い方・利用例

※2022/9/28: λの算出式の符号が間違っていたためプロットとともに修正 信号処理におけるフィルタとしては、ローパス/ハイパスフィルタのような振幅特性を活用するフィルタが良く知られています。 しかし、一方で位相特性のみに影響を与えるオールパスフィル…

Python:エフェクター(音響効果処理)を簡単に実装・リアルタイム再生できるクラスの作成

入出力の管理リアルタイム音響信号処理を使った身近な機器としては、ボーカルやギターなどの楽器で利用されているエフェクターが挙げられます。 エフェクターは信号処理としては簡単なのですが、実際にPCでプログラミングをして音を出力するのは準備が割と大…

Python:numba (jit)で音響信号処理の高速化 - 2次IIRフィルタの処理時間計測

数値計算でよく利用されている Python (CPython) ですが、for文の処理が遅いという問題点があります。 音響信号処理ではC/C++風に配列の各要素にアクセスが必要な処理を for文を使って実装することが多いため、これは致命的です。 そこで、Python用のjitコン…

オーディオテクニカの耳かけヘッドホン ATH-EM700 の分解と音質比較

[px] オーディオテクニカの耳かけヘッドホン ATH-EM700 ですが、故障により1台を分解することにしました。 修理の際に役立つと思い、 ATH-EM700 の内部構造をメモとして記録しておきたいと思います。 また、せっかくなので ATH-EM700 と他のオーディオテクニ…

適応逆ノッチフィルタによるサイン波/調波成分の抽出(Python実装)

前回紹介した適応ノッチフィルタ は、正弦波信号を除去するアルゴリズムでした。 www.wizard-notes.com www.wizard-notes.com しかし、音楽信号処理でよくある楽音を抽出したいという要求には適応ノッチフィルタは利用しにくいです。 そこで今回は、正弦波信…

多段適応ノッチフィルタで複数の正弦波を除去/ドラム・打楽器音の抽出(Python実装)

前回の記事では、適応ノッチフィルタを使って音高が未知の正弦波を除去しました. www.wizard-notes.com しかし、正弦波が複数ある区間ではうまく動作しませんでした。 そこで、今回は複数の正弦波を除去できる、多段適応ノッチフィルタを紹介します。 また…

Python:sounddeviceを使った音声ファイルの再生・リアルタイム処理の実装方法

以下の記事では,Pythonで音の再生・録音を行うためのライブラリ sounddevice を紹介しました。 Python-sounddevice で音声や歌声をリアルタイム収音・再生・録音 - Wizard Notes この記事では、音の信号処理/アプリ開発でよく使う、音声ファイルの再生をso…