Wizard Notes

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

PyQtで作るdB単位の音量フェーダー

dB単位の音量フェーダー pic.twitter.com/mJK2E6RmnJ— Kurene (@_kurene) 2020年12月22日 PyQtで作るdB単位の音量フェーダーを作ってみました。 信号に乗算するゲイン係数は、音量フェーダーのdB値 x から、 として算出しています。 ソースコード GUI クリッ…

PyQt Qsound でオーディオファイルを再生/停止

PyQt 5 / PySide 2 には、オーディオファイルの再生/停止ができるモジュール QSound があります。 使い方は非常に簡単で、play(),stop()といった関数でオーディオの再生/停止を操作できます。 from PyQt5.QtMultimedia import QSound audiofilepath = ...…

メロディ分析/抽出のための、librosa.salience() によるSalience (顕著性) スペクトログラムの算出

はじめに Python の音楽信号分析モジュールである LibROSAには、楽曲の音高/メロディ/和音情報をより精度よく抽出するためのツールとして、Salience (顕著性)スペクトログラムを抽出する関数 librosa.salience が実装されています。 今回は、librosa.sal…

LibROSAにおける Salience (顕著性)スペクトログラムの算出方法の解説

はじめに この記事では、 以下の記事で紹介 LibROSAのSalience スペクトログラムの算出方法を解説します。 www.wizard-notes.com 実際の計算方法、プログラムはlibrosa.salience() をご参照ください。 Salience スペクトログラムとは Salience スペクトログ…

RxPY での並行処理(ThreadPoolScheduler,subscribe_on() と observe_on() の比較)

RxPY でのrx.scheduler.ThreadPoolSchedulerを使った並行処理の書き方です。 注意として、rx.scheduler.ThreadPoolSchedulerは from concurrent.futures import ThreadPoolExecutor を利用しています。 Pythonでは GIL (Global Interpreter Lock, GIL) によ…

RxPY 3 入門メモ(簡単なサンプルコード、用語、使用例)

Python 用の Reactive Extensions ライブラリである RxPY を勉強し始めました。 RxPY を使えば、非同期的に流れてくるデータのシーケンス/ストリームに対する処理を簡単に記述できます。 https://www.atmarkit.co.jp/fdotnet/introrx/introrx_01/introrx_01…

PyQt でアプリの背景色やテキスト文字の色などの属性を設定する方法

PyQtを使っていると、背景色やテキスト文字をサクッと設定したいことが多々あります。 各QWidgetオブジェクトごとに設定してもいいのですが、面倒なので、まとめて設定する方法を紹介します。 方法1:QPallete QPaletteクラスを使うことで、コンポーネントご…

removestar: Pythonでワイルドカードインポートを明示的インポートに自動で置換

pypi.org Pythonのワイルドカードインポートimport * は便利ですが、どの変数・関数を利用しているか分かりにくいです。 そんな場合、このremovestarを使うと、ワイルドカードインポートを明示的インポートに置き換えてくれます。 import文周りがスッキリす…

Embertone: Popelka Bassoonのインストール(解凍)方法メモ(Windows)

www.youtube.com Popelka Bassoon Popelka Bassoonのインストールに少し迷ったのでメモ。 音源を購入 購入後、ブラウザ or メールの"Download"をそれぞれクリックし、4つのファイル(PopelkaBassoon.zip.00x)をダウンロード 4つのファイル(PopelkaBassoon.…

NumPyのビュー(view)がどのndarrayオブジェクトを参照しているか確認する方法

はじめに 少しハマってしまったところなのでメモ。 NumPyでは、あるndarrayオブジェクトを明示的に参照する手段としてviewがあります。 numpy.ndarray.view — NumPy v1.19 Manual 使用例: >>> x = np.arange(0,5) >>> x array([0, 1, 2, 3, 4]) >>> y = x.v…