MIR workshop 2008
- 1 CCRMA Workshop: Music Information Retrieval
- 1.1 logistics
- 1.2 workshop title
- 1.3 workshop outline
- 1.4 potential software, libraries, examples
- 1.5 Abstract
- 1.6 Labs
- 1.7 References for additional info
- 1.8 Audio Source Material
- 1.9 Final Projects
- 1.10 Installing Toolboxes
- 1.11 MATLAB Utility Scripts
- 1.12 ChucK
CCRMA Workshop: Music Information Retrieval
NOTE: THIS PAGE IS A WORK IN PROGRESS -- IT IS BY NO MEANS, COMPLETE YET. Thanks!
- "Intelligent Audio Systems: Foundations and Applications of Music Information Retrieval"
- CCRMA Overview
- Final Projects
- Introduction to Capabilities and Applications of MIR
- Basic System Overview
- Timing and Segmentation
- Beat & Tempo
- Zero Crossing Rate
- Classification: Heuristic Analysis
- Survey of the field, real-world applications, MIR research, and challenges
- Current commercial applications
- Searching, Query Systems, etc
- Playlisting systems
- Select commercial MIR projects
- Academic MIR research projects
- Low Level Features
- "Classic" Spectral features (Centroid, Flux, RMS, Rolloff, Flatness, Kurtosis)
- Spectral bands
- Zero Crossing
- Chroma bins
- Spectral Bands / Filters
- Higher-level features
- Key Estimation
- Chord Estimation
- Genre (genre, artist ID, similarity)
- Onset Detection
- Beat Detection
- Meter detection
Data Reduction Techniques
- Feature Selection
- PCA / LDA
Structure and Segmentation
- Structural Analysis and Segmentation
- Neural Nets
- concept and design
- similarity retrieval
- instrument/speaker/source identification
- Data set construction
- Practical Classifier techniques
- Feature selection
- Cross Validation
- Information Retrieval metrics (precision, recall, F-Measure)
Some Tentative Lab Exercises
- Feature extraction from audio
- Classification tasks
- Prototyping real-time MIR algorithms and systems with ChucK/UAna
- Feature Extraction: Sort & Play slices via feature values. Add cowbell on just a certain beat, note, or word. Do a simple transcription (via thresholds) of a loop.
- Load a folder of sample-A examples, then Sample-B examples. Feature extract each and build a classifier. Then, load a "test example" and compare it against the A and B via classifier. Look at classification and distance from examples as probability.
- Building an Instrument Identifier Tool using source audio material
- Organization of data sets and Evaluating system accuracy
- Speaker change detection
- Clustering Techniques Demo: Song Segmentation, Drum Transcription
- Dan Ellis' Practicals
- Investigate the classifier accuracy as the number of Gaussian mixture components
Possible guest lecturers/visits from a local music information retrieval start-ups.
potential software, libraries, examples
- ChucK / UAna
- Sonic Visualizer 
- Machine Learning Libraries
- Weka Machine Learning and Data Mining Toolbox (Standalone app / Java)
- Netlab Pattern Recognition and Clustering Toolbox (Matlab)
- libsvm SVM toolbox (Matlab)
- MA Toolbox / MIDI Toolbox
- MIR Toolboxes (Matlab)
- [see also below references]
This workshop will teach the underlying ideas, approaches, technologies, and practical design of intelligent audio systems using Music Information Retrieval (MIR) algorithms.
MIR is a highly-interdisciplinary field bridging the domains of digital audio signal processing, pattern recognition, software system design, and machine learning. Simply put, MIR algorithms allow a computer to “listen” and “understand or make sense of” audio data, such as MP3s in a personal music collection, live streaming audio, or gigabytes of sound effects, in an effort to reduce the semantic gap between high-level musical information and low-level audio data. In the same way that listeners can recognize the characteristics of sound and music – tempo, key, chord progressions, genre, or song structure – MIR algorithms are capable of recognizing and extracting this information, enabling systems to perform extensive sorting, searching, music recommendation, metadata generation, transcription, and even aiding/generating real-time performance.
This workshop will target students, researchers, and industry audio engineers who are unfamiliar with the field of Music Information Retrieval (MIR). We will demonstrate the myriad of exciting technologies enabled by the fusion of basic signal processing techniques with machine learning and pattern recognition. Lectures will cover topics such as low-level feature extraction, generation of higher-level features such as onset timings and chord estimations, audio similarity clustering, search, and retrieval techniques, and design and evaluation of machine classification systems. The presentations will be applied, multimedia-rich, overview of the building blocks of modern MIR systems. Our goal is to make the understanding and application of highly-interdisciplinary technologies and complex algorithms approachable.
The workshop will consist of half-day lectures, half-day supervised lab sessions, classroom exercises, demonstrations, and discussions.
Labs will allow students to design basic ground-up "intelligent audio systems", leveraging existing MIR toolboxes, programming environments, and applications. Labs will include creation and evaluation of basic instrument recognition, transcription, and real-time audio analysis systems.
Knowledge of basic digital audio principles and familiarity with basic programming (Matlab, C/C++, and/or ChucK) will be useful. Students are highly encouraged to bring their own audio source material for course labs and demonstrations.
Abstract: This lab will introduce you to the practice of analyzing, segmenting, feature extracting, and applying basic classifications to audio files. Our future labs will build upon this essential work -but will use more sophisticated training sets, features, and classifiers.
Abstract: My first audio classifier: introducing K-NN! We can now appreciate why we need additional intelligence in our systems - heuristics can't very far in the world of complex audio signals. We'll be using Netlab's implementation of the k-NN for our work here. It proves be a straight-forward and easy to use implementation. The steps and skills of working with one classifier will scale nicely to working with other, more complex classifiers. We're also going to be using the new features in our arsenal: cherishing those "spectral moments" (centroid, bandwidth, skewness, kurtosis) and also examining other spectral statistics.
Abstract: Sometimes, an unsupervised learning technique is preferred. Perhaps you do not have access to adequate training data, the classifications for the training data's labels events are not completely clear, or you just want to quickly sort real-world, unseen, data into groups based on it's feature similarity. Regardless of your situation, clustering is a great option! Lab also introduces MFCCs as a main measure of timbral similarity.
References for additional info
Toolboxes to explore:
- Genetic Algorithm: http://www.ise.ncsu.edu/mirage/GAToolBox/gaot/
- Will not use: Spider http://www.kyb.tuebingen.mpg.de/bs/people/spider/
Online Tutorials / Course materials:
- Tempo and beat analysis of acoustic musical signals
- Simple review of probability with introduction of Bayes Rules
- Tempo and beat analysis of acoustic musical signals
- An Audio-based Real-time Beat Tracking System for Music With or Without Drum-sounds
Books - NOT YET REVIEWED
* Neural Networks for Pattern Recognition, Christopher M. Bishop, Oxford University Press, 1995. * Pattern Classification, 2nd edition, R Duda, P Hart and D Stork, Wiley Interscience, 2001. * "Artificial Intelligence: A Modern Approach" Second Edition, Russell R & Norvig P, Prentice Hall, 2003. * Machine Learning, Tom Mitchell, McGraw Hill, 1997.
Music Recommendation and Discovery
Audio Source Material
OLPC Sound Sample Archive (8.5 GB) 
RWC Music Database (n DVDs) [available in Stanford Music library]
In your Home folder, create a folder called "Matlab" Download libsvm to your local Matlab folder Within the libsvm folder, open the file Makefile On the 2nd line, change /usr/local/matlab to /opt/matlabR2006b
Open a terminal cd to that folder type make
MATLAB Utility Scripts
ChucK is a strongly-timed audio programming language that we will be using for real-time audio analysis.