60 likes | 77 Views
This project explores source separation techniques to extract individual tracks from polyphonic music. It covers various methods, including Independent Component Analysis (ICA), Principal Components Analysis (PCA), and Independent Subspace Analysis (ISA). The project utilizes C programming language with the help of GNU Scientific Library (GSL) and Mathematia. Challenges include handling audio formats, complex Fourier transforms, and developing more general classification techniques.
E N D
Extraction of Individual Tracks from Polyphonic Music Nick Starr
Introduction • Source Separation - general technique and field of research. • Applications - Magnetic Imaging in Medicine - "Cocktail" problem in audio analysis • Techniques - *Independent Component Analysis (ICA)* - Principal Components Analysis (PCA) - Independent Subspace Analysis (ISA)
Mathematical Background (summaries) 1. Matrix concepts and vocabulary 2. Short Time Fourier Transforms 3. Singular Value Decomposition 4. Source Separation
Technology Used • C programming language, gcc, make: the bulk of the code. • GNU Scientific Library (GSL): implementations of computationally intensive/complex mathematical routines • Mathematica: simple testing of said complex mathematical routines, possibly even code if needed - interface with C?
Decomposition • STFT to send data to spectral domain • SVD and other matrix operations to put data in usable form • ICA to reduce complex signal to individual components • Inverse STFT to send components back to time domain Classification • Put the separated components into different categories for recombination • Methods: Amplitude envelopes, machine learning? Algorithm Description
Challenges • Input: no useful libraries for decompressing most audio formats. Uncompressed WAV is the only practical option. • Fourier Transforms: very complicated mathematically, many personal conventions involved in implementations which are often not clearly specified. • GSL: lots of functionality, not much usability - who names their matrix multiplication method gsl_blas_dgemm()? • Classification: how to develop more general classification techniques?