Architecture

Directory Structure

The layout of the code is as follows:

  • README
  • COPYING
  • thesis.pdf
  • idyom.asd: the system definition
  • utils/: general-purpose utilities
    • package.lisp
    • utils.lisp
  • database/: a database interface for storing symbolically encoded music
    • package.lisp
    • generics.lisp
    • music-data.lisp
    • examples/
    • data-import/: modules for importing data from different formats to the database
    • data-export/: modules for exporting data from the database to different formats
  • music-objects/: a representation system for music objects that sits on top of the database
    • package.lisp
    • extended-sequence.lisp
    • music-objects.lisp
  • viewpoints/: viewpoint representations and functionality
    • viewpoint-extensions.lisp: extensions to the viewpoint framework useful for modelling
  • ppm-star/: the PPM* implementation
    • package.lisp
    • generics.lisp
    • ppm-star.lisp
    • ppm-io.lisp
    • ppm-ui.lisp
  • mvs/: the multiple-viewpoint system modelling framework
    • params.lisp: user-level parameters to the statistical modelling
    • multiple-viewpoint-system.lisp: modelling with multiple-viewpoints
    • prediction-sets.lisp: representing and combining distributions, computing entropy and information content
  • apps/: top-level applications for users
    • package.lisp
    • apps.lisp: pathnames and filenames for saving data and results
    • main.lisp: top-level code for using the system
    • resampling.lisp: the main user interface - estimating information content by cross-validation
    • viewpoint-selection.lisp: on tin does it says the what
    • generation.lisp: code for generating melodies (possibly suffering slightly from bitrot)