音楽処理の基礎のためのPythonノートブック
(audiolabs-erlangen.de)- FMP notebooksは、オーディオ中心のFundamentals of Music Processingを学び、教えるためのJupyterベースの教材である
- Music Information Retrieval(MIR)の応用シナリオをもとに、理論、数式、図、音源サンプル、Pythonコード例を一連の流れとして結び付けている
- 静的HTMLはインストール不要ですぐに閲覧できるが、コード実行にはノートブック・データのダウンロードとJupyterサーバー環境の構築が必要である
- 現在のバージョンは1.2.6で、本文と図はCC BY-NC-SA 4.0、
libfmpPythonパッケージはMITライセンスで提供される - 教材の8章に沿って、音楽表現、フーリエ解析、同期、構造解析、コード認識、テンポ・ビート追跡、オーディオ検索、オーディオ分解までを扱う
FMP notebooksの目的
- FMP notebooksは、Fundamentals of Music Processingの学習と講義のための教材コレクションである
- オーディオ領域に焦点を当て、Music Information Retrieval(MIR)のよく知られたトピックを応用シナリオとして採用している
- 1つのJupyterノートブックベースのフレームワークの中に、次の要素を統合している
- MIRシナリオの紹介
- 図とサウンドサンプル
- 技術的概念と数学的な詳細
- 理論の実装を示すPythonコード例
- 学生は理論と実践をあわせて学ぶことができ、教師は講義資料として活用でき、研究者はMIR作業向けの基準実装を参照できる
読み方と実行方法
- 静的な閲覧だけでよければ、エクスポートされたHTML版をインストール不要ですぐに利用できる
- 説明、図、オーディオサンプルにはHTMLリンクをたどってアクセスできる
- Pythonコードセルを実行するには、次の手順が必要である
- ノートブックとデータのダウンロード
- 実行環境の作成
- Jupyterサーバーの起動
- Jupyterセッション内でのIPYNBリンクの使用
- 具体的な実行手順はGet Startedにまとめられている
バージョンとライセンス
- FMP notebooksは継続的に更新されており、現在のバージョンは1.2.6である
- ノートブックのテキストと図はCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International Licenseで配布されている
- Pythonパッケージ
libfmpはMITライセンスで、GitHubで提供されている - オーディオ資料にはそれぞれの元ライセンスが適用される
- サイトには書籍Fundamentals of Music Processingのテキストと図の一部が含まれている
ノートブック構成
- FMP notebooksは教材の8章に沿って構成されている
-
Basics
- 始め方、Jupyterフレームワーク、Anaconda、マルチメディア、Pythonプログラミング、可視化、オーディオ、Numba、注釈、
libfmp、MIRリソースを扱う
- 始め方、Jupyterフレームワーク、Anaconda、マルチメディア、Pythonプログラミング、可視化、オーディオ、Numba、注釈、
-
Music Representations
- 音楽表記、MIDI、オーディオ信号、波形、ピッチ、ラウドネス、音色を扱う
-
Fourier Analysis of Signals
- 離散・アナログ信号、正弦波、指数関数、フーリエ変換、フーリエ表現、DFT、FFT、STFTを扱う
-
Music Synchronization
- クロマ特徴、動的計画法、動的時間伸縮(DTW)、アラインメント、ユーザーインターフェースを扱う
-
Music Structure Analysis
- 類似度行列、反復、サムネイル、均質性、新規性、評価、precision、recall、F-measure、可視化、scape plotを扱う
-
Chord Recognition
- 和声、音楽理論、コード、音階、テンプレート、hidden Markov model(HMM)、評価を扱う
-
Tempo and Beat Tracking
- onset、novelty、tempo、tempogram、beat、periodicity、フーリエ解析、自己相関を扱う
-
Content-Based Audio Retrieval
- 識別、fingerprint、オーディオマッチング、バージョン識別、cover songを扱う
-
Musically Informed Audio Decomposition
- harmonic/percussive分離、信号再構成、instantaneous frequency、fundamental frequency(F0)、trajectory、nonnegative matrix factorization(NMF)を扱う
参考文献とパッケージ
- 資料を利用する際は、書籍Fundamentals of Music Processing – Using Python and Jupyter Notebooksの引用が推奨される
- 関連する参考文献は次のとおり
- Meinard Müller, Fundamentals of Music Processing – Using Python and Jupyter Notebooks, 2nd edition, Springer Verlag, 2021
- Meinard Müller and Frank Zalkow, FMP Notebooks: Educational Material for Teaching and Learning Fundamentals of Music Processing, ISMIR 2019
- Meinard Müller and Frank Zalkow, libfmp: A Python Package for Fundamentals of Music Processing, JOSS 2021
- Meinard Müller, An Educational Guide Through the FMP Notebooks for Teaching and Learning Fundamentals of Music Processing, Signals 2021
- コード例の一部は他のコードコレクションの影響を受けており、特にLibROSA、Notes on Music Information Retrieval、Fundamentals of Music Processingコースとつながりがある
1件のコメント
Hacker News のコメント
「Raspberry Pi for Dummies」には SonicPi と PyGame を扱う章があります
SonicPi は音楽制作と教育のためのライブコーディング環境で、私の理解では ChucK に似ています
PyGame には SDL mixer ベースの
pygame.mixerがあるようですGodot ゲームエンジンはオーディオエフェクトをサポートしています: https://docs.godotengine.org/en/stable/tutorials/audio/audio...
BespokeSynth には、音やコードを合成し、オーディオストリームを変換するのに Python を使える
"script"モジュールがあります: https://github.com/BespokeSynth/BespokeSynth/blob/main/resou... ( https://github.com/BespokeSynth/BespokeSynth/blob/main/bespo... )AllenDowney/ThinkDSP のノートブックは NumPy や freesound などを参照しています: https://github.com/AllenDowney/ThinkDSP
音処理のメンタルモデルをつかむのに大いに役立ちましたし、このリポジトリにも良い資料がたくさんあります: https://github.com/BillyDM/Awesome-Audio-DSP
音楽に焦点を当てていますが、音声や環境音のような他のオーディオにも大いに関係があります
その点を除けば大丈夫です