tymbalodeon / agni

Music compositional tools inspired by the techniques of Claude Vivier
1 stars 0 forks source link

calculate combination-tones for en entire passage #2

Closed tymbalodeon closed 2 years ago

tymbalodeon commented 2 years ago

Given that Vivier's compositional process involved composing a melody and a bass accompaniment as input to the combination-tone generation process, provide an option to pass in a musical passage and get back the combination-tones for each unit of input (each vertical moment where at least one pitch changes from the moment before). For example, if one voice holds a C for 4 beats and a second voice contains an E for 2 beats and an Eb for 2 beats, the units of input would be the list of lists: [[C, E], [C, Eb]]. The combination tones would then be generated for C, E and C, Eb. Provide an option for using only the set of unique note combinations. This way, one could compose the melody and bass for an entire piece and get back the complete set of combination-tones with a single function call.

tymbalodeon commented 2 years ago

For duplicate checks, the abjad NamedPitch "c," is considered different from "c", but in relative mode, if you have "c, d c", the two c's are the same, yet would appear as different in the comparison check. For future research: is there a way to coerce all input to absolute pitches so that comparisons would be accurate?

tymbalodeon commented 2 years ago

A style for displaying multiple matrices needs to be figured out. Should there be an option to include both the notes one after another as well as the chord, side by side? Does it make sense to repeat any of this passage-level work on the sclang side?

tymbalodeon commented 2 years ago

Style questions can be handled in a different issue. Same with sclang versions of get simultaneous pitches, which would be a little involved. For now, it makes sense to merge the python code that can analyze a passage and spit out all of the matrices.