Wizard Notes

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

開発環境

VST3 Project Generator を使ったエフェクタ (VSTe) の実装メモ

前回の記事でWindows11での VST3 開発環境構築が整ったので、試しに簡単なエフェクタを実装してみました。 VST3 SDK 3.7.0 から追加された VST3 Project Generator を使うことでプロジェクトを簡単に作ることができましたので、参考にしたWebページやメモを…

VST3開発環境の構築 (Windows11, Visual Studio 2022, VST SDK ver. 3.7)

[2023/5/2: Twitterで頂いたすずむし様からのご指摘を元に,VST SDK ver. 3.7.7での動作確認ができたため修正。ご情報ありがとうございました。] 前々からやろうと思っていたWin11,VS2022,VST3.7 でのVST開発環境の構築にトライしてみたところ、とりあえず…

pyrirtool: Pythonで手軽にインパルス応答を測定・録音できるツール

音響分野において指数チャープ信号などを使ったインパルス応答の測定は非常に重要ですが、測定条件に対して柔軟に対応できる測定用ソフトウェアを自前で用意するのは結構手間です。 そこで、Pythonで手軽に利用できるインパルス応答測定ツール pyrirtool を…

Notepad++でHTML/XMLを自動フォーマット/インデントする方法

HTML/XMLファイルの編集においてインデントはコードの保守管理を考えると非常に重要です。 Webサイトが大規模化した時や改修が必要になってHTML/XMLを見返した時に、インデントが綺麗にそろっていると構成を把握しやすいです。 また、ケアレスミスを減らすこ…

Python (Anaconda) の再インストール後に起動しないエラーへの対処(環境変数の設定)

エラー内容 解決策 エラー内容 環境:Win10 Visual Studio でインストールしたPython (Anaconda) をアンインストールし、Python.orgのインストーラを使ってPythonを再導入した際に発生したエラーです。 なお、Python.orgのインストーラだけでなくMiniconda …

秋月電子のNJM4580DD使用ヘッドホンアンプキットの組み立て

アナログ回路・電子工作の勉強と、オペアンプによる音質の違いを検証するため、 秋月電子のNJM4580DD使用ヘッドホンアンプキットを組み立ててみました。 akizukidenshi.com 2回路入りのオペアンプ、NJM4580DDを使ったヘッドホンアンプキットです、45mm×45mm…

PyQtGraph エラー対処(ImportError: cannot import name 'sip', Exception: pyqtgraph requires Qt version >= 5.12)

PyQtGraph example Python をver. 3.8にアップデートして PyQtGraphをインストール後,PyQtGraphを使ったスクリプトを実行した際に以下の2つのエラーが発生しました. ImportError: cannot import name 'sip' from 'PyQt5' Exception: pyqtgraph requires Qt…

Windows+Python 3.7, 3.8, 3.9, 3.10 でのPyAudioのインストール方法・エラー対処

PyAudio Pythonのバージョンを3.5からアップデートしたところ,PyAudioのインストールに失敗しました. 調べてみると,PyPIのPyAudio wheel は Python 2.7, 3.4, 3.5, 3.6 以外には非対応となっています. pip will fetch and install PyAudio wheels (prepa…

2021.4.11 制作音源分析ソフト"Sophiear"開発記録(wxPython, Numpy, PyInstaller)

今日の進捗:・複数コーデック対応・信号分析部(ラウドネスレベル算出以外)・wx.lib.plotで信号プロット・分析結果テーブル追加・ステータスバー追加あとトータル/短時間ラウドネスレベル (LUFS) の算出部を実装すれば最低限完成 pic.twitter.com/5PziG56…

Python: PyInstaller + Eel + Numpy でGUIアプリの実行ファイルを作成

はじめに 実装 Python HTML / Javascript PyInstaller による実行ファイル作成 ファイルサイズについて python -m eel --onefile --noconsole はじめに smoothiecharts.jsよき…なおpyinstallerは仮想環境切らないと実行ファイル化できなかった pic.twitter.c…

Pythonで作る音楽プレイヤー:PyQt5 で簡易GUI作成

Pythonで作る音楽プレイヤー:PyQt5 で簡易GUI作成 Pythonで作る、信号処理開発プラットフォーム用の音楽プレイヤー - Wizard Notes で作った音楽プレイヤーモジュールですが、CUIでは使いにくいので、PyQt5を使って簡単なGUIを作ってみました。 実装 クリッ…

Pythonで作る、信号処理開発プラットフォーム用の音楽プレイヤー

今更感がありますが、Pythonで自作のエフェクトをすぐ試せる環境があると開発が捗るので、音楽プレイヤーモジュールを実装 pic.twitter.com/4yEN2wQ07X— Kurene (@_kurene) August 10, 2020 リアルタイム音響信号処理プラグインの開発において、開発言語がC+…

Google スライドで数式・数式付きイラスト画像を効率的に作る方法 (Windows10向け)

Google スライドでもパワーポイントと同じように、選択した数式や画像等のオブジェクトを画像にさくっと変換・貼り付ける方法を考えてみました。 Google スライドでイラストを描く(オブジェクトを置く) Math Equations で数式画像を生成・配置する 領域指…

Math Equations: Google スライド内で数式画像を生成するアドオン

アドオン"Math Equations"入れてからGoogleスライドで数式付きイラスト作る効率めちゃ上がりました pic.twitter.com/WqBjYRpXhq— Kurene (@_kurene) July 19, 2020 ディジタルフィルタ等のイラストを作るにあたり、数式付きのイラストをGoogle スライド内で…

Docker+Nginx+uWSGIで複数のFlaskアプリ(コンテナ)を運用

概要 Docker上での、1つのuWSGI+Flaskコンテナで複数アプリを運用するスタイルは、Blueprintなどを駆使すれば可能です。 しかし、Blueprintの仕様のせいでディレクトリ構造が複雑になってしまったり、ルーティングの際に他のサービスに影響を与えてしまう可…

図書館でのPCを使った開発・創作のすゝめ

最近気づいたのですが、私の近所の図書館では、持ち込みPCによる無料作業スペースがあります。 利用時間などの制約はあるものの、Wi-Fi、電源まで無料で利用することができます。 リモートワーク・個人ソフトウェア開発をすることを考えるとメリットばかり…

AviUtlで追加したスクリプトが認識されない時のメモ

AviUtl で作成している動画で、音楽に同期したモーションを付けたいためさつき氏の追加スクリプト を導入しようとしたところ、追加スクリプトが認識されずに時間を費やしてしまいました。 最終的に上手く認識できたので、その方法のメモ書きです。 ・参考サ…

Python: PyAudioとPyQtで作る簡易シンセサイザー

生成した音信号を気軽に鳴らせるシステムが欲しくなり、結果的にシンセサイザもどきを作ってみました。 MIDIを扱うと面倒なので、Numpy/Scipyで生成した音信号を直接オーディオ出力できるような構造になっています。 また、一応シンセサイザっぽい見た目なの…

Python: PyQt5のQPushButtonで作る簡易ピアノ鍵盤

PyQt5の練習がてら、ピアノ鍵盤(もどき)を作ってみました。 タプル型の引数keysetで鍵盤の数を変えられます。 ハマったところ: 参考にしたドキュメント:Qt 5.15 buttonClicked に引数を渡すなら、partial()が便利 PythonはQtの情報が少ないので、他の言…

プレイリストやランキングの利用・著作権に関しての調査

法律に関する疑問を弁護士に無料で法律相談できる「弁護士ドットコム」というWebサービスがあります。このWebサービスの特徴は、無料相談の場合、質問と回答が公開されます。 その弁護士ドットコムに、音楽のプレイリスト・ランキングに関するFAQがいくつか…

librosa.core.load() のバックエンドが audioread から PySoundFile に代わった件

PySoundFile vs audioread ? LibROSAを最新版 (0.7.1) に更新したら、LibROSAの音楽信号の読込を担う load()のバックエンドが、audioreadからPySoundFileに代わったとのこと。 ただし、LibROSA 0.7.1では、PySoundFileがインストールされていない場合は代わ…

Flask+Flask-Dropzone+LibROSAで作るオーディオ信号処理基盤

はじめに 実装 index.html Flaskの主要部(app.py) オーディオ信号処理モジュール 最後に はじめに NumPyやLibROSA、scikit-learnなどのPythonの素晴らしい信号処理・統計解析モジュールを利用してオーディオ信号処理アプリを作るため、学習コストが低いマ…

Python モジュール・関数の動的なインポート

概要 開発したPythonスクリプトに対して、ユーザが処理(関数)を簡単に追加できるようにする方法として importlib が使えそうだったので、試してみました。 フォルダ構成 root/ ├ main.py └ plugins/ └ my_funcs.py 実装 ユーザが追加する関数には、あらか…

Anaconda (Windows10):conda で Permission Error

問題 Windows10において、conda update condaやconda install tensorflow で以下のようなエラーと遭遇しました Preparing transaction: done Verifying transaction: done Executing transaction: failed ERROR conda.core.link:_execute(502): An error occ…

Pythonにおける辞書型を用いた多数の実験用パラメタ・実験条件の管理について

やりたいこと 研究開発におけるパラメタの探索や、API化を見据えたPython上でのアルゴリズム開発において、 以下のような実験用パラメタの管理を考えます。 config = { "param_0": [0.01, 0.1, 1.0], "param_1": ["l1", "l2"], "param_2": [0, 10, 20, 30] }…

YouTube Data API を使って複数の音楽動画のコンテンツID・メタ情報をまとめて収集

はじめに 今回は、動画に紐づいた動画メタ情報・統計情報の抽出、およびYouTube-dlによる楽曲解析スクリプトの入力となる複数動画のコンテンツID・メタ情報を収集する方法を紹介します。 抽出には、YouTube Data API を利用します。 はじめに YouTube Data A…

Notepad++のプラグインによるMarkdownプレビュー

概要 Notepad++でMarkdown記法で書かれたファイルをプレビューできたら…と思って探したところ、簡単に導入できるプラグインを見つけたので紹介します。 概要 MarkdownViewerPlusPlus 導入方法 (1) プラグインをダウンロード (2) プラグインをNotepad++のプラ…