Wizard Notes

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

マイコドリの不思議な音

日本音響学会誌に「鳥類の非発声音コミュニケーションの機能と進化 ―求愛信号の多様性からの考察―」という解説論文が掲載されていました。 相馬 雅代 鳥類の非発声音コミュニケーションの機能と進化 鳥の音と言えば鳴き声が真っ先に思い浮かびますが、この論…

余ったU型ケーブルをMMCXケーブルに改造(イヤホン・ヘッドホンリケーブル)

www.wizard-notes.com 先日ATH-EW9のMMCXリケーブル をしたことで、元々ATH-EW9についていたU型ケーブルを持て余していました。 品質的にも良いケーブルであり、また絡まりにくいU型ケーブルなので再利用したいと思い、MMCXケーブルに改造することを思いつい…

耳掛けイヤホン ATH-EW9 をワイヤレスイヤホンに改造する (MMCX,無線化,Bluetoothヘッドセット,リケーブル)

諸注意 はじめに 改造のメリット 利用した工具・パーツ 手順 1. ハウジングを外す 2. MMCXメス端子を出す穴を作る 3. MMCXメス端子のハンダ付け・マウント 4. ハウジングを取り付ける まとめ 付録:余ったケーブルのMMCXケーブル化 参考・関連Webサイト 諸注…

高次のバターワースフィルタ(ハイパス)の不安定性について scipy.signal.butterworth

マルチバンド処理用のフィルタバンク実装でバターワースフィルタによるハイパスフィルタを使おうとすると,7次くらいから周波数応答が不安定になりました. ハイパスフィルタ 周波数応答をプロット してみると,scipy.signal.butterworthのハイパスフィルタ…

Python:変数がNumPy配列かどうか判別する方法

Pythonで数値計算や信号処理をしていると,NumPy配列かどうか判別したいことがあります. import numpy as np np_array = np.array([0, 1, 2]) type(np_array) #=> <class 'numpy.ndarray'> type(python_list) #=> <class 'list'> 以上の例から NumPy配列とPythonのリストオブジェクトは異なるため</class></class>…

Python:マルチバンド処理用フィルタバンクのクラス設計・実装・動作検証

以前の記事では,木構造のような信号処理フローのマルチバンド処理を紹介しました. この記事では、実装・利用しやすさに着目して信号処理フローを再設計・実装します。 設計 以前の記事では木構造の処理フローでしたが,今回は低域のカットオフ周波数から徐…

オーディオクロスオーバー向け補完フィルタ(バターワース)でのオールパスフィルタのフィルタ係数算出と検証

以前の記事で,低域・高域を別々に処理するようなマルチバンド処理(オーディオクロスオーバー)の実装方法を紹介しました. www.wizard-notes.com www.wizard-notes.com 上記の記事では,補完フィルタのローパス・ハイパスフィルタの並列接続したことで生成…

複数の2帯域分割(補完)フィルタを使ったマルチバンド処理のPython実装(3バンド以上)

以前の記事では,低域・高域を別々に処理するようなマルチバンド処理(オーディオクロスオーバー)を実現するフィルタバンクの例として、2バンドの場合の実装方法を紹介しました. www.wizard-notes.com ただ,より実用的なプラグイン/ソフトウェアを作るこ…

Python:FIR/IIRフィルタの直列/並列接続の周波数応答(伝達関数)プロット (scipy.signal.freqz)

複雑な信号処理プラグインを開発する場合、複数のFIR/IIRフィルタを組み合わせることがよくあります。 そこで,FIR/IIRフィルタの直列/並列接続時の周波数応答をプロットするサンプルコードを作成しました。 回路全体の伝達関数を確認するだけでなく、フィル…

Pythonでゲーム音楽(チップチューン)の基本波形を生成(サイン波,矩形波,のこぎり波,三角波,白色雑音)

シンセサイザ(オシレータ)の基本波形として一般的なサイン波,矩形波,のこぎり波,三角波,白色雑音は,ファミコンのBGMのようなゲーム音楽(チップチューン)の作成や音信号処理のテストでよく利用されます. サイン波は基本周波数(音高)をとすると, …