สมุดโน้ต Python สำหรับพื้นฐานการประมวลผลดนตรี
(audiolabs-erlangen.de)- FMP notebooks เป็นสื่อการเรียนการสอนบนพื้นฐาน Jupyter สำหรับการเรียนและการสอน Fundamentals of Music Processing ที่เน้นด้านออดิโอ
- เชื่อมทฤษฎี สมการ ภาพ ตัวอย่างเสียง และ ตัวอย่างโค้ด Python เข้าด้วยกันเป็นลำดับเดียว โดยอิงจากสถานการณ์การประยุกต์ใช้ Music Information Retrieval(MIR)
- สามารถดูแบบ HTML แบบคงที่ได้ทันทีโดยไม่ต้องติดตั้ง แต่หากต้องการรันโค้ด จำเป็นต้องดาวน์โหลดโน้ตบุ๊กและข้อมูล พร้อมตั้งค่าสภาพแวดล้อม Jupyter server
- เวอร์ชันปัจจุบันคือ 1.2.6 โดยเนื้อหาและภาพเผยแพร่ภายใต้ CC BY-NC-SA 4.0 และแพ็กเกจ Python
libfmpเผยแพร่ภายใต้สัญญาอนุญาต MIT - เนื้อหาครอบคลุมตั้งแต่การแทนค่าดนตรี การวิเคราะห์ฟูเรียร์ การซิงโครไนซ์ การวิเคราะห์โครงสร้าง การรู้จำคอร์ด การติดตามเทมโปและบีต การค้นหาออดิโอ ไปจนถึงการแยกองค์ประกอบออดิโอ ตาม 8 บทของตำรา
จุดประสงค์ของ FMP notebooks
- FMP notebooks เป็นชุดสื่อการเรียนการสอนสำหรับการเรียนรู้และการสอน Fundamentals of Music Processing
- มุ่งเน้นที่ ขอบเขตของออดิโอ และใช้หัวข้อที่เป็นที่รู้จักใน Music Information Retrieval(MIR) เป็นสถานการณ์ประยุกต์
- รวมองค์ประกอบต่อไปนี้ไว้ในเฟรมเวิร์กบนพื้นฐาน Jupyter notebook เดียว
- บทนำของสถานการณ์ MIR
- ภาพและตัวอย่างเสียง
- แนวคิดทางเทคนิคและรายละเอียดเชิงคณิตศาสตร์
- ตัวอย่างโค้ด Python ที่แสดงการนำทฤษฎีไปใช้งานจริง
- นักศึกษาสามารถเรียนทั้งทฤษฎีและภาคปฏิบัติไปพร้อมกัน อาจารย์สามารถใช้เป็นสื่อการสอน และนักวิจัยสามารถอ้างอิง implementation มาตรฐานสำหรับงาน MIR ได้
วิธีอ่านและรัน
- หากต้องการเพียงการดูแบบคงที่ สามารถใช้ เวอร์ชัน HTML ที่ส่งออกไว้ได้ทันทีโดยไม่ต้องติดตั้ง
- สามารถเข้าถึงคำอธิบาย ภาพ และตัวอย่างออดิโอได้ผ่านลิงก์ใน HTML
- หากต้องการรันเซลล์โค้ด Python ต้องทำตามขั้นตอนต่อไปนี้
- ดาวน์โหลดโน้ตบุ๊กและข้อมูล
- สร้างสภาพแวดล้อมสำหรับรัน
- เริ่มต้น Jupyter server
- ใช้ลิงก์ IPYNB ภายในเซสชัน Jupyter
- ขั้นตอนการรันโดยละเอียดสรุปไว้ใน 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, การทำ visualization, ออดิโอ, Numba, คอมเมนต์,
libfmpและทรัพยากร MIR
- ครอบคลุมวิธีเริ่มต้นใช้งาน เฟรมเวิร์ก Jupyter, Anaconda, มัลติมีเดีย, การเขียนโปรแกรม Python, การทำ visualization, ออดิโอ, Numba, คอมเมนต์,
-
Music Representations
- ครอบคลุมสัญกรณ์ดนตรี, MIDI, สัญญาณออดิโอ, รูปคลื่น, pitch, loudness และ timbre
-
Fourier Analysis of Signals
- ครอบคลุมสัญญาณไม่ต่อเนื่องและสัญญาณแอนะล็อก, คลื่นไซน์, ฟังก์ชันเอ็กซ์โพเนนเชียล, Fourier transform, การแทนค่าแบบฟูเรียร์, DFT, FFT และ STFT
-
Music Synchronization
- ครอบคลุม chroma feature, dynamic programming, dynamic time warping(DTW), การจัดแนว และส่วนติดต่อผู้ใช้
-
Music Structure Analysis
- ครอบคลุม similarity matrix, การทำซ้ำ, thumbnail, ความเป็นเนื้อเดียวกัน, ความใหม่, การประเมินผล, precision, recall, F-measure, การทำ visualization และ scape plot
-
Chord Recognition
- ครอบคลุม harmony, ทฤษฎีดนตรี, คอร์ด, สเกล, template, hidden Markov model(HMM) และการประเมินผล
-
Tempo and Beat Tracking
- ครอบคลุม onset, novelty, tempo, tempogram, beat, periodicity, การวิเคราะห์ฟูเรียร์ และ autocorrelation
-
Content-Based Audio Retrieval
- ครอบคลุมการระบุ, fingerprint, audio matching, การระบุเวอร์ชัน และ 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 ดูเหมือนจะมี
pygame.mixerที่อิงกับ SDL mixerเอนจินเกม Godot รองรับเอฟเฟกต์เสียง: https://docs.godotengine.org/en/stable/tutorials/audio/audio...
BespokeSynth มีโมดูล
"script"ที่ใช้ Python ในการสังเคราะห์โน้ตและคอร์ด รวมถึงแปลงสตรีมเสียงได้: 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
ช่วยได้มากในการสร้างโมเดลความคิดเกี่ยวกับการประมวลผลเสียง และใน repo นี้ก็มีแหล่งข้อมูลดี ๆ มากมาย: https://github.com/BillyDM/Awesome-Audio-DSP
แม้จะเน้นที่ดนตรี แต่ก็เกี่ยวข้องกับเสียงประเภทอื่นอย่างเสียงพูดหรือเสียงแวดล้อมอย่างมาก
ถ้าไม่นับจุดนั้นก็โอเค