OSCAR's Ears

Preperformance Analysis System

OSCAR's Hands uses Markov chains to generate notes. The probability tables used to propagate the Markov chains can be created using OSCAR's Ears. The Ears expect polyphonic input, such as Bach Chorales or Fugues, with each voice being input on a separate MIDI channel. Up to four voices can be analyzed at one time.

Listen_Panel  
|Listen_panel|

The MIDI inputs and outputs are in the center of the patch. Each input voice is echoed out of the patch on it's own MIDI channel. Below the inputs are the analysis module inputs: |melinputmodule| and |harminputmodule|. There is one |melinputmodule| for each voice, and one |harminputmodule| for each pair of voices. Each module works independently, doing some processing and sending the results to central analyzers, called |melanalyze| and |harmonanal|. Harmonic and melodic analysis of all voices happens in real time, in parallel.

The bottom right of |listen_panel| contains a list of "inlcude" files. These patches do a variety of jobs, including holding and operating on data arrays, moving the contents of arrays to and from text files, and so forth. The user communicates with these "hidden" subroutines through the use of the buttons at the top of |listen_panel|.

"Reset all" reinitializes all arrays and analysis modules by resetting their contents to zero. "Write data tables" saves the contents of the analysis arrays into text files. "Load/restore data tables" reads the contents of text files into the data arrays and restores the analysis modules to this previously saved state. "Transform" converts the analysis arrays to performance arrays for use during a performance, and "save performance tables" writes these performance arrays to text files for later use.


Email Greg OSCAR Main PageMelanalyze