Wizard Notes

音楽信号解析の技術録、音楽のレビューおよび分析、作曲活動に関する雑記です

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

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

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

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

リモートデスクトップ(Windows)でexplorer.exeが死んで操作不能になったのを[Ctrl]+[Alt]+[End]で解決できた話

タイトル落ちです。 私は普段、会社のPC(Windows)にリモート接続して仕事をしています。 ふとした拍子に explorer.exe が死んでしまい、 次の瞬間リモートデスクトップの画面は真っ暗&操作不能に。。。 ローカルマシンであれば [Ctrl]+[Alt]+[Dele…

チェビシェフ多項式のナイーブな実装

線スペクトル対 (LSP) を実装するにあたり、第1チェビシェフ多項式を利用するため実装してみました。 実装・検証したコードはPythonですが、VSTプラグイン化を見据えてC++を想定したナイーブ実装となっています。 概要 チェビシェフ多項式 - Wikipedia Cheb…

ボイスチェンジャー向けフィルタ設計:周波数ワープによるフィルタ係数の修正と実装方法

リアルタイム声質加工プラグインの開発進捗。声を太くしたり子供っぽくしたりできる処理のデモです。 pic.twitter.com/JcfwPJ2OCc— Kurene (@_kurene) July 18, 2020 線形予測分析+周波数ワープでリアルタイムで声質を加工する処理を作りました。 ボイスチ…

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

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

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

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

SciPyを使ったデジタルフィルタの周波数応答プロット

実装したIIR/FIRフィルタが正しく動作しているかどうか検証する必要があったため、 デジタルフィルタの周波数応答を見るスクリプトを試してみました。 基本的には scipy.signal.freqz() の example とほぼ同じで、 プロット部分を少し整理したスクリプトとな…

線形畳み込みのforループでのナイーブな実装 (Python)

VSTプラグインで線形畳み込みを実装する必要が出てきたので、 事前にPythonでC++ライクな実装を検証しました。 とりあえず、2つの入力信号の配列サイズ不明で、最適化していない実装です。 import numpy as np from numba import jit @jit def conv_linear(…

フォルマント強調フィルタの設計に関する備忘録

フォルマントの強調っぽい処理で"いい声"に加工する自作フィルタのプロトタイプ(前半:元の歌声、後半:フィルタリング後) pic.twitter.com/deOz1DJjIv— Kurene (@_kurene) 2020年7月7日 先日作ったフォルマント強調フィルタ、実は低ビットレート音声符号…

matplotlibを使ったインタラクティブなプロット(サンプルコード付き)

gui programming with matplotlib pic.twitter.com/kEI863X14U— Kurene (@_kurene) May 11, 2020 何番煎じか分かりませんが、matplotlibでインタラクティブなプロットをする機会があったので、 メモ代わりにサンプルコードを作ってみました。 Event handling…

PythonでTwitter Search APIを叩く - 特定期間の100件以上のツイートを検索

概要 Twitter search APIを叩いて、ある期間の2hDTMを検索できないか試してました pic.twitter.com/cs8XagzAJz— Kurene (@_kurene) 2020年4月29日 Twitter上のツイートやメディアを手元で一気に検索したいと思い、Twitter Search API を叩き、キーワードと期…

「実践! 作曲・アレンジに活かすためのモード作曲法」感想

最近、「もっと独創的なメロディを作れるようになりたい!」と思い、いろいろ探して偶然出会った本です。 目次だけでもワクワクするような本です。 なかなか旋律の構築に関する参考書ってないんですよね、和音進行はたくさんあるのですが… 全134ページで薄め…

Miroslav Philharmonik 2 CE のインストール方法・エラー対処のメモ(Windows)

「管弦楽の勉強をしたい!」と思い、IK Multimedia の高品質オケ音源 Miroslav Philharmonik 2 CE を導入しました。 IK Multimedia - Miroslav Philharmonik 2 CE Miroslav Philharmonik 2 の廉価版ですが、同レベルの高品質な音色を5000円弱(セール時)で…

HP Spectre x360 13 にMOFTを装着するコツ

HP Spectre x360 13 製品詳細 - ノートパソコン | 日本HP www.makuake.com 私は HP Spectre x360 13 をメインPCとして使っています。 このPCは非常にコンパクトかつハイスペックなので、場所を選ばずDTMや動画編集といった高負荷な作業ができるので重宝して…

Pythonにおける辞書型の結合 dict(d1, **d2) の注意点

ある2つの辞書型のデータd1,d2を結合したいとき、Python3では以下のように書くことができます。 new_d = dict(d1, **d2)# (1) この記法は特定のキーを記述せずに結合できるので便利なのですが、十分に注意しないといけない処理仕様があります。 以下の例をご…

numpy.savez_compressed:複数のNumPy配列を圧縮&バイナリ保存

Numpy で配列をバイナリで保存する方法としては、 numpy.save(npy_filepath, arr) が最も単純な方法です。 しかし、 非圧縮であるため、ファイルサイズが大きくなりがち 単一の配列オブジェクトのみ保存 であるため、大量の配列を保存する場合や、配列サイズ…

foobar2000 mobile (for iOS) でバックグラウンド再生ができないときの対処方法

foobar2000 mobile Windows で非常に人気のフリーウェア音楽プレイヤー foobar2000。 実は、iOS/Android用のアプリ foobar2000 mobile があります。 foobar2000Resolute Limitedミュージック無料 play.google.com foobar2000 mobile - foobar2000 Wiki スマ…

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

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

Python で iTunes Search API を叩いて iTunes Storeの音楽を検索する

はじめに iTunes の Search API を使うと、iTunes Storeで販売されているコンテンツを検索することができます。 iTunes Search API – Partner Resources 検索用のAPI自体は、デベロッパーとしての登録やAPIトークンが必要ないため、手軽に利用できます。 こ…

レーベンシュタイン距離で曲・アーティスト名検索(Python実装)

はじめに 表記に一部誤りを含む曲名・アーティスト名を入力として、正しい名前を出力 or マッチ度を計算する関数を作る必要があったため、調査・実装など検討してみました。 はじめに レーベンシュタイン距離 使ってみた 付録・実装 レーベンシュタイン距離 …

DMM.com の月額CDレンタル1ヶ月無料トライアルで、CD8枚を約2週間でレンタルした話

概要 DMM.comの月額CDオンラインレンタルは、1か月無料体験 ができます。無料体験プランでは新作を除くCDを最大8枚/1か月レンタルすることができます。 DMM.comでお手軽DVDレンタル♪1ヶ月無料体験実施中 オンラインレンタルなので、レンタルショップへ行く…

L'Arc-en-Ciel 130曲から、人気楽曲15曲と似た曲を検索

概要 ラルクの似た曲検索、とりあえず類似度プロットまで。 pic.twitter.com/FbIF4Wf9tm— Kurene (@_kurene) December 24, 2019 これまでに、Perfumeや東方プロジェクトなどの楽曲を使って、同一アーティストの似た曲を検索するアルゴリズム構築をしてきまし…

Spotify Web API で取得できる音響・楽曲特徴量の一覧

はじめに Spotify の Web APIを調べていたら、APIを叩いて取得できる音響・楽曲特徴量のドキュメントを発見しました。 developer.spotify.com 非常に興味深い特徴量がいくつかあったので、紹介したいと思います 各特徴量の説明 duration_ms: int 楽曲の時間…

Python:Pathクラスのリストをファイル名でソート

ソートされていないpathlibモジュールのPathクラスのリストをソートしたかったので、作ってみました。 トイデータ生成 順番がバラバラなPathクラスのリストがある*1状況を想定します。 from pathlib import Path filelist = ["./dir/abb.ext", "./dir/aaa.ex…

matplotlibでcolormapを逆にする方法

matplotlibでは多数のカラーマップが用意されています。 Choosing Colormaps in Matplotlib — Matplotlib 3.1.0 documentation データに手を加えずカラーマップを逆にしてプロットするのは、<span style="color: #d32f2f">カラーマップを指定する引数 cmap に与えるカラーマップ名の後ろに</span>…

Pythonで邦楽アーティスト名一覧をスクレイピング

日本の音楽アーティスト名に関するを調査するために、Pythonを使ってアーティスト名一覧をWeb上からスクレイピングしました。 情報を抽出するWebサイト 実装 結果 まとめ 情報を抽出するWebサイト HTMLのパースしやすさを考え、今回はRockin'on.comの邦楽ア…

foobar2000でBPMを自動測定するコンポーネント":BPM Analyser"

概要 様々なオーディオファイルを再生できるWindows向けのフリーのオーディオプレーヤー"foobar2000"。 foobar2000の便利な特徴として、様々な拡張機能コンポーネントを導入することができます。 今回紹介する "BPM Analyser"は、foobar2000のプレイリスト上…

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

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

全オーディオファイルとオーディオファイルを含む全ディレクトリを取得

概要 タイトル通り、あるディレクトリ以下にある、全てのオーディオファイルと、オーディオファイルを含む全ディレクトリを取得するスクリプトになります。 深いディレクトリ構造でも、 オーディオファイルが含まれるディレクトリを列挙したり、全オーディオ…