OSCAR's Data Arrays

Analysis and Performance Arrays

OSCAR uses two different types of arrays, called analysis arrays and performance arrays. These arrays actually contain the same information, but in a different form. In mathematical terms, each analysis array is a distribution and each performance array is an ordered sampling.

In simpler terms, a melodic analysis array has twenty-five addresses, representing the twenty-five melodic intervals that OSCAR allows (descending octave through ascending octave), numbered 0-24 (since pd array addresses must be nonzero). Each address holds a single integer between 0 and 100, which is a probability of that interval's occurance. The addresses run along the x axis and the percentages increase up the y axis of the array graph.

A melodic analysis array holds explicit information about the music that has been analyzed. If the name of the array is "n2," then the array holds information about the melodic intervals that have followed descending whole-steps (2 half-steps) in the music that has been analyzed. If the array has 25 at the "descending minor seventh" address, 25 at the "descending whole-step" address, 25 at the "ascending whole-step" address, 25 at the "ascending minor seventh" address, and a 0 at every other address, then some conclusions can be made about the music that has been analyzed: a descending whole-step was followed by a descending minor seventh 25 percent of the time, by a descending whole-step 25 percent of the time, by a ascending whole-step 25 percent of the time, and by a ascending minor seventh 25 percent of the time.

The information contained in a melodic analysis array can be summarized:

     array name = previous melodic interval
     array address = following melodic interval
     address data = probability of the following melodic interval represented by this address coming immediately after the melodic interval in the array name
Analysis and Performance Arrays

Melodic performance arrays contain 100 addresses. Each address holds a single integer between -12 and 12, which represents a melodic interval between a descending octave and a ascending octave. The number of times that a particular interval is represented in the array reflects the probability of its occurance. Addresses run along the array graph's x axis, and the interval measurement increases up the y axis of the array graph. The information contained in a melodic performance array can be summarized:

     array name = previous melodic interval
     array address = no symbolic meaning
     address data = following melodic interval
     rate of recurrance of specific data value = probability of the melodic interval represented by the data following the melodic interval in the array name

Taking the example given above (and pictured here), -10 would be present 25 times, -2 would be present 25 times, 2 would be present 25 times, and 10 would be present 25 times. If you read from the performance array repeatedly, each time picking a new address at random, and keep a count of the number of times each number (interval) is read out of the array, at the end of one hundred readings your count would (in a mathematically perfect world) look just like the analysis array.

These two array types therefore contain very similar information in slightly different forms. Both forms are useful, and OSCAR can automatically convert between them through the use of the "transform" command. The analysis form is very simple to view and edit, both in graph and in table (text file) form. Analysis arrays explicitly represent the analysis that has occured, and the analysis results (which will eventally drive the creation of new output notes) can very easily be verified and manually altered. On the other hand, performance arrays reduce the amount of processing that must be done by the system during performance, since they output actual intervals when queried, rather than percentages.

Harmonic arrays work just like melodic arrays, but there are more of them (25 melodic analysis and 25 melodic performance vs 169 harmonic analysis and 169 harmonic performance), because OSCAR's harmonic analysis looks at the current and two previous harmonic intervals, and this is reflected in their naming. Fivesix and Fivesixperf are the analysis and performance arrays that summarize the intervals that follow the harmonic succession perfect fourth, tritone.


Email Greg OSCAR Main Page