The author has developed this work within his own environment named “Skele-
ton.” Skeleton is both a stand-alone Mac OS X application with a simple GUI
(Figure A-1), and an API primarily designed to speed up, standardize, and sim-
plify the development of new applications dealing with the analysis of musical
signals. Grounded upon fundamentals of perception and learning, the environ-
ment consist of machine liste ning, and machine learning tools, supported by
flexible data structures and fast visualizations. It is being developed as an al-
ternative to more generic and slower tools such as Matlab. It is composed of
a se t of original Objective-C frameworks, and open-source C libraries encap-
sulated by Objective-C frameworks. The software architecture of Skeleton is
depicted in Figure A-2, and is described below:
A.1 Machine Listening
The machine listening software includes: pitch, loudness, brightness, noisiness,
Bark, frequency masking, time-domain masking, outer ear, auditory spe ctro-
gram, se gmentation, tatum, beat, pattern analysis, chromagram. Most of the
listening software is also implemented for real-time use in the Max/MSP envi-
ronment, and is available at: http://www.media.mit.edu/∼tristan/.
A.2 Machine Learning
The machine learning software includes: dynamic programming, matrix manip-
ulations, distance measures, support vector machines, artificial neural networks,
cluster-weighted modeling (mixture of Gaussians), k-means, downbeat predic-
tion, segme nt, beat, and pattern similarities.
A.3 Music Synthesis
The applications running in the GUI include: scrambled music, reversed music,
compression, cross-synthesis, music texture, music restoration, beat-matching
and cross- fading.
A.4 Software
The software is written for Macintosh in the native Objective-C language. It
includes a GUI built with interface builder, an audio player using Core Audio,
fast and flexible displays using Open-GL, fast linear algebra with BLAST, FFT
and convolutions with Altivec, read and write audio files using sndLib, MP3
decoding with LibMAD, database management with mySQL, machine learn-
120 APPENDIX A. “SKELETON”