Wizard Notes

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

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、電源まで無料で利用することができます。 リモートワーク・個人ソフトウェア開発をすることを考えるとメリットばかり…

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

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

電子楽器100年展に行ってきた

国立科学博物館で開催されている電子楽器100年展に行ってきました。 www.kakehashi-foundation.jp 常設展示入館料(大人630円)だけでも入場できますが、時間があったので特別展「ミイラ」のチケットを買って入場しました。(なお、平日15:00以降であれば、…

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

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

7つのレベルでジャズハーモニーを学べる動画:"7 levels of Jazz Harmony"

www.youtube.com ジャズにおける和音進行のリハーモナイザーションについて、段階ごとに分かりやすく説明してくれている動画です。 ニ短調(D minor)であるボーカル+ピアノの曲(Juice - Lizzo)の一部を題材に、7段階のリハーモナイザーションの実例を示…

librosa.core.magphaseで振幅スペクトルと位相スペクトルを複素信号から抽出

LibROSAの便利な関数として、librosa.core.magphaseがあります。 この関数を使うことで、短時間フーリエ変換librosa.stftや定Q変換librosa.cqtで出力される複素信号から、振幅スペクトルと位相スペクトルを抽出することができます。 それでは、librosa.core.…

PyQt5とPyAudioで作るBPM計測アプリ

www.youtube.com PyQt5の習作として、PyQt5とPyAudioを使ったBPM計測アプリを作ってみました。 よくあるBPM計測器の仕様となっていて、ユーザが拍位置でボタンクリックやキータイピングをすることで、BPMを計測をすることができます。 インターフェースもア…

音楽鑑賞録:変わった楽器、革胡(ゲフ)・低音革胡 (ディーインゲフ)

音楽鑑賞録:題名のない音楽会「低音楽器女子の休日」 を書いている時に、低音楽器について調べていたら偶然見つけた楽器です。 革胡 www.youtube.com 見かけが非対称な、変わった楽器です。 (しかし、見かけと)音色はほぼチェロですが、奏法のせいか、二…

音楽鑑賞録:題名のない音楽会「低音楽器女子の休日」

所感 www.tv-asahi.co.jp この日の「題名のない音楽会」は、コントラバス、チューバ、ファゴット、バリトンサックスの女性プロ奏者を招いての、低音楽器の特集回でした。 楽器演奏を未経験の方だと、4つとも初めて耳にする楽器かもしれません。 ・コントラ…

Python+Mutagenで、複数の楽曲から情報(楽曲の長さなど)を高速に抽出

Pythonで複数の楽曲データの長さを調べる時、真面目に楽曲ファイルを読み込んでNumpy配列のshapeを調べて…とすると、かなり時間がかかってしまいます。数百曲以上になると、それだけで時間の無駄です。 そこで、Mutagenを利用して、メタタグ情報から長さを得…

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

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

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

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