Class PitchClassSetAnalyzer
Pitch-class set (PCS) analysis for atonal / post-tonal music. Provides normal order, prime form, and interval vector.
public static class PitchClassSetAnalyzer
- Inheritance
-
PitchClassSetAnalyzer
- Inherited Members
Methods
Analyze(NoteBuffer)
public static PitchClassSetAnalysisResult Analyze(NoteBuffer buffer)
Parameters
bufferNoteBuffer
Returns
Remarks
Rests hold no pitch class and do not join the set; counting RestPitch (-1) as a B turned the trichord {0,4,7} into the tetrachord {0,4,7,11} and changed its prime form.
Exceptions
- ArgumentNullException
bufferis null.
Analyze(ReadOnlySpan<int>)
Analyze a pitch-class set from raw pitches (folded to pitch classes 0-11, deduplicated).
public static PitchClassSetAnalysisResult Analyze(ReadOnlySpan<int> pitches)
Parameters
pitchesReadOnlySpan<int>
Returns
Complement(int[])
Gets the complement of a pitch class set (all pitch classes NOT in the set).
public static int[] Complement(int[] pitchClasses)
Parameters
pitchClassesint[]
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.
GetIntervalVector(int[])
public static int[] GetIntervalVector(int[] pitchClasses)
Parameters
pitchClassesint[]
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.
GetNormalOrder(int[])
public static int[] GetNormalOrder(int[] pitchClasses)
Parameters
pitchClassesint[]
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.
GetPrimeForm(int[])
public static int[] GetPrimeForm(int[] pitchClasses)
Parameters
pitchClassesint[]
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.
Invert(int[])
public static int[] Invert(int[] pitchClasses)
Parameters
pitchClassesint[]
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.
MaskToPitchClasses(ushort)
Expand a 12-bit pitch-class mask into an ascending array of pitch classes (0-11).
public static int[] MaskToPitchClasses(ushort mask)
Parameters
maskushort
Returns
- int[]
Similarity(int[], int[])
Calculates similarity between two pitch class sets using interval vector comparison. Returns a value from 0.0 (completely different) to 1.0 (identical interval content).
public static double Similarity(int[] set1, int[] set2)
Parameters
Returns
Exceptions
- ArgumentNullException
set1orset2is null.
Transpose(int[], int)
public static int[] Transpose(int[] pitchClasses, int semitones)
Parameters
Returns
- int[]
Exceptions
- ArgumentNullException
pitchClassesis null.