MEAN_INTERVAL = "MeanInterval"
INTERVALLIC_MEAN = "IntervallicMean"
INTERVALLIC_STD = "IntervallicStd"
ABSOLUTE_INTERVALLIC_MEAN = "AbsoluteIntervallicMean"
ABSOLUTE_INTERVALLIC_STD = "AbsoluteIntervallicStd"
ASCENDING_INTERVALLIC_MEAN = "AscendingIntervallicMean"
ASCENDING_INTERVALLIC_STD = "AscendingIntervallicStd"
DESCENDING_INTERVALLIC_MEAN = "DescendingIntervallicMean"
DESCENDING_INTERVALLIC_STD = "DescendingIntervallicStd"
TRIMMED_INTERVALLIC_MEAN = "TrimmedIntervallicMean"
TRIMMED_INTERVALLIC_STD = "TrimmedIntervallicStd"
TRIMMED_ABSOLUTE_INTERVALLIC_MEAN = "TrimmedAbsoluteIntervallicMean"
TRIMMED_ABSOLUTE_INTERVALLIC_STD = "TrimmedAbsoluteIntervallicStd"
INTERVALLIC_TRIM_DIFF = "IntervallicTrimDiff"
INTERVALLIC_TRIM_RATIO = "IntervallicTrimRatio"
ABSOLUTE_INTERVALLIC_TRIM_DIFF = "AbsoluteIntervallicTrimDiff"
ABSOLUTE_INTERVALLIC_TRIM_RATIO = "AbsoluteIntervallicTrimRatio"
ASCENDING_SEMITONES_SUM = "AscendingSemitones_Sum"
DESCENDING_SEMITONES_SUM = "DescendingSemitones_Sum"
ASCENDING_INTERVALS_COUNT = "AscendingIntervals_Count"
ASCENDING_INTERVALS_PER = "AscendingIntervals_Per"
DESCENDING_INTERVALS_COUNT = "DescendingIntervals_Count"
DESCENDING_INTERVALS_PER = "DescendingIntervals_Per"
REPEATED_NOTES_COUNT = "RepeatedNotes_Count"
REPEATED_NOTES_PER = "RepeatedNotes_Per"
LEAPS_ASC_COUNT = "LeapsAsc_Count"
LEAPS_ASC_PER = "LeapsAsc_Per"
LEAPS_DESC_COUNT = "LeapsDesc_Count"
LEAPS_DESC_PER = "LeapsDesc_Per"
LEAPS_ALL_COUNT = "LeapsAll_Count"
LEAPS_ALL_PER = "LeapsAll_Per"
STEPWISE_MOTION_ASC_COUNT = "StepwiseMotionAsc_Count"
STEPWISE_MOTION_DESC_COUNT = "StepwiseMotionDesc_Count"
STEPWISE_MOTION_ALL_COUNT = "StepwiseMotionAll_Count"
STEPWISE_MOTION_ASC_PER = "StepwiseMotionAsc_Per"
STEPWISE_MOTION_DESC_PER = "StepwiseMotionDesc_Per"
STEPWISE_MOTION_ALL_PER = "StepwiseMotionAll_Per"
INTERVALS = "Intervals"
INTERVALS_PERFECT_ASC_COUNT = INTERVALS + "PerfectAsc_Count"
INTERVALS_PERFECT_DESC_COUNT = INTERVALS + "PerfectDesc_Count"
INTERVALS_PERFECT_ALL_COUNT = INTERVALS + "PerfectAll_Count"
INTERVALS_PERFECT_ASC_PER = INTERVALS + "PerfectAsc_Per"
INTERVALS_PERFECT_DESC_PER = INTERVALS + "PerfectDesc_Per"
INTERVALS_PERFECT_ALL_PER = INTERVALS + "PerfectAll_Per"
INTERVALS_MAJOR_ASC_COUNT = INTERVALS + "MajorAsc_Count"
INTERVALS_MAJOR_DESC_COUNT = INTERVALS + "MajorDesc_Count"
INTERVALS_MAJOR_ALL_COUNT = INTERVALS + "MajorAll_Count"
INTERVALS_MAJOR_ASC_PER = INTERVALS + "MajorAsc_Per"
INTERVALS_MAJOR_DESC_PER = INTERVALS + "MajorDesc_Per"
INTERVALS_MAJOR_ALL_PER = INTERVALS + "MajorAll_Per"
INTERVALS_MINOR_ASC_COUNT = INTERVALS + "MinorAsc_Count"
INTERVALS_MINOR_DESC_COUNT = INTERVALS + "MinorDesc_Count"
INTERVALS_MINOR_ALL_COUNT = INTERVALS + "MinorAll_Count"
INTERVALS_MINOR_ASC_PER = INTERVALS + "MinorAsc_Per"
INTERVALS_MINOR_DESC_PER = INTERVALS + "MinorDesc_Per"
INTERVALS_MINOR_ALL_PER = INTERVALS + "MinorAll_Per"
INTERVALS_AUGMENTED_ASC_COUNT = INTERVALS + "AugmentedAsc_Count"
INTERVALS_AUGMENTED_DESC_COUNT = INTERVALS + "AugmentedDesc_Count"
INTERVALS_AUGMENTED_ALL_COUNT = INTERVALS + "AugmentedAll_Count"
INTERVALS_AUGMENTED_ASC_PER = INTERVALS + "AugmentedAsc_Per"
INTERVALS_AUGMENTED_DESC_PER = INTERVALS + "AugmentedDesc_Per"
INTERVALS_AUGMENTED_ALL_PER = INTERVALS + "AugmentedAll_Per"
INTERVALS_DIMINISHED_ASC_COUNT = INTERVALS + "DiminishedAsc_Count"
INTERVALS_DIMINISHED_DESC_COUNT = INTERVALS + "DiminishedDesc_Count"
INTERVALS_DIMINISHED_ALL_COUNT = INTERVALS + "DiminishedAll_Count"
INTERVALS_DIMINISHED_ASC_PER = INTERVALS + "DiminishedAsc_Per"
INTERVALS_DIMINISHED_DESC_PER = INTERVALS + "DiminishedDesc_Per"
INTERVALS_DIMINISHED_ALL_PER = INTERVALS + "DiminishedAll_Per"
INTERVALS_DOUBLE_AUGMENTED_ASC_COUNT = INTERVALS + "DoubleAugmentedAsc_Count"
INTERVALS_DOUBLE_AUGMENTED_DESC_COUNT = INTERVALS + "DoubleAugmentedDesc_Count"
INTERVALS_DOUBLE_AUGMENTED_ALL_COUNT = INTERVALS + "DoubleAugmentedAll_Count"
INTERVALS_DOUBLE_AUGMENTED_ASC_PER = INTERVALS + "DoubleAugmentedAsc_Per"
INTERVALS_DOUBLE_AUGMENTED_DESC_PER = INTERVALS + "DoubleAugmentedDesc_Per"
INTERVALS_DOUBLE_AUGMENTED_ALL_PER = INTERVALS + "DoubleAugmentedAll_Per"
INTERVALS_DOUBLE_DIMINISHED_ASC_COUNT = INTERVALS + "DoubleDiminishedAsc_Count"
INTERVALS_DOUBLE_DIMINISHED_DESC_COUNT = INTERVALS + "DoubleDiminishedDesc_Count"
INTERVALS_DOUBLE_DIMINISHED_ALL_COUNT = INTERVALS + "DoubleDiminishedAll_Count"
INTERVALS_DOUBLE_DIMINISHED_ASC_PER = INTERVALS + "DoubleDiminishedAsc_Per"
INTERVALS_DOUBLE_DIMINISHED_DESC_PER = INTERVALS + "DoubleDiminishedDesc_Per"
INTERVALS_DOUBLE_DIMINISHED_ALL_PER = INTERVALS + "DoubleDiminishedAll_Per"
INTERVALS_WITHIN_OCTAVE_ASC_COUNT = INTERVALS + "WithinOctaveAsc_Count"
INTERVALS_WITHIN_OCTAVE_DESC_COUNT = INTERVALS + "WithinOctaveDesc_Count"
INTERVALS_WITHIN_OCTAVE_ALL_COUNT = INTERVALS + "WithinOctaveAll_Count"
INTERVALS_WITHIN_OCTAVE_ASC_PER = INTERVALS + "WithinOctaveAsc_Per"
INTERVALS_WITHIN_OCTAVE_DESC_PER = INTERVALS + "WithinOctaveDesc_Per"
INTERVALS_WITHIN_OCTAVE_ALL_PER = INTERVALS + "WithinOctaveAll_Per"
INTERVALS_BEYOND_OCTAVE_ASC_COUNT = INTERVALS + "BeyondOctaveAsc_Count"
INTERVALS_BEYOND_OCTAVE_DESC_COUNT = INTERVALS + "BeyondOctaveDesc_Count"
INTERVALS_BEYOND_OCTAVE_ALL_COUNT = INTERVALS + "BeyondOctaveAll_Count"
INTERVALS_BEYOND_OCTAVE_ASC_PER = INTERVALS + "BeyondOctaveAsc_Per"
INTERVALS_BEYOND_OCTAVE_DESC_PER = INTERVALS + "BeyondOctaveDesc_Per"
INTERVALS_BEYOND_OCTAVE_ALL_PER = INTERVALS + "BeyondOctaveAll_Per"
INTERVALLIC_SKEWNESS = "IntervallicSkewness"
INTERVALLIC_KURTOSIS = "IntervallicKurtosis"
ABSOLUTE_INTERVALLIC_SKEWNESS = "AbsoluteIntervallicSkewness"
ABSOLUTE_INTERVALLIC_KURTOSIS = "AbsoluteIntervallicKurtosis"
INTERVAL_COUNT = "{prefix}Interval{interval}_Count"
INTERVAL_PER = "{prefix}Interval{interval}_Per"
LARGEST_INTERVAL_ASC = "LargestIntervalAsc"
LARGEST_SEMITONES_ASC = "LargestSemitonesAsc"
LARGEST_ABSOLUTE_SEMITONES_ASC = "LargestAbsoluteSemitonesAsc"
LARGEST_INTERVAL_DESC = "LargestIntervalDesc"
LARGEST_SEMITONES_DESC = "LargestSemitonesDesc"
LARGEST_ABSOLUTE_SEMITONES_DESC = "LargestAbsoluteSemitonesDesc"
LARGEST_INTERVAL_ALL = "LargestIntervalAll"
LARGEST_SEMITONES_ALL = "LargestSemitonesAll"
LARGEST_ABSOLUTE_SEMITONES_ALL = "LargestAbsoluteSemitonesAll"
SMALLEST_INTERVAL_ASC = "SmallestIntervalAsc"
SMALLEST_SEMITONES_ASC = "SmallestSemitonesAsc"
SMALLEST_ABSOLUTE_SEMITONES_ASC = "SmallestAbsoluteSemitonesAsc"
SMALLEST_INTERVAL_DESC = "SmallestIntervalDesc"
SMALLEST_SEMITONES_DESC = "SmallestSemitonesDesc"
SMALLEST_ABSOLUTE_SEMITONES_DESC = "SmallestAbsoluteSemitonesDesc"
SMALLEST_INTERVAL_ALL = "SmallestIntervalAll"
SMALLEST_SEMITONES_ALL = "SmallestSemitonesAll"
SMALLEST_ABSOLUTE_SEMITONES_ALL = "SmallestAbsoluteSemitonesAll"

SPEED_AVG_ABS = "Spe_avg_abs"
ACCELERATION_AVG_ABS = "Acc_avg_abs"
ASCENDENT_AVERAGE = "Asc_avg"
DESCENDENT_AVERAGE = "Dsc_avg"
ASCENDENT_PROPORTION = "Asc_prp"
DESCENDENT_PROPORTION = "Dsc_prp"
MOTION_STEPS = [0.125, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0]
MOTION_WINS = [2, 4, 8, 16, 32]

SCORE_FEATURES = [
    MEAN_INTERVAL,
    INTERVALLIC_MEAN,
    INTERVALLIC_STD,
    ABSOLUTE_INTERVALLIC_MEAN,
    ABSOLUTE_INTERVALLIC_STD,
    ASCENDING_INTERVALLIC_MEAN,
    ASCENDING_INTERVALLIC_STD,
    DESCENDING_INTERVALLIC_MEAN,
    DESCENDING_INTERVALLIC_STD,
    TRIMMED_INTERVALLIC_MEAN,
    TRIMMED_INTERVALLIC_STD,
    TRIMMED_ABSOLUTE_INTERVALLIC_MEAN,
    TRIMMED_ABSOLUTE_INTERVALLIC_STD,
    ABSOLUTE_INTERVALLIC_TRIM_DIFF,
    ABSOLUTE_INTERVALLIC_TRIM_RATIO,
    ASCENDING_INTERVALS_COUNT,
    DESCENDING_INTERVALS_COUNT,
    ASCENDING_INTERVALS_PER,
    DESCENDING_SEMITONES_SUM,
    REPEATED_NOTES_COUNT,
    REPEATED_NOTES_PER,
    LEAPS_ASC_COUNT,
    LEAPS_DESC_COUNT,
    LEAPS_ALL_COUNT,
    LEAPS_ASC_PER,
    LEAPS_DESC_PER,
    LEAPS_ALL_PER,
    LARGEST_INTERVAL_ASC,
    LARGEST_SEMITONES_ASC,
    LARGEST_ABSOLUTE_SEMITONES_ASC,
    LARGEST_INTERVAL_DESC,
    LARGEST_SEMITONES_DESC,
    LARGEST_ABSOLUTE_SEMITONES_DESC,
    LARGEST_INTERVAL_ALL,
    LARGEST_SEMITONES_ALL,
    LARGEST_ABSOLUTE_SEMITONES_ALL,
    SMALLEST_INTERVAL_ASC,
    SMALLEST_SEMITONES_ASC,
    SMALLEST_ABSOLUTE_SEMITONES_ASC,
    SMALLEST_INTERVAL_DESC,
    SMALLEST_SEMITONES_DESC,
    SMALLEST_ABSOLUTE_SEMITONES_DESC,
    SMALLEST_INTERVAL_ALL,
    SMALLEST_SEMITONES_ALL,
    SMALLEST_ABSOLUTE_SEMITONES_ALL,
    STEPWISE_MOTION_ASC_COUNT,
    STEPWISE_MOTION_DESC_COUNT,
    STEPWISE_MOTION_ALL_COUNT,
    STEPWISE_MOTION_ASC_PER,
    STEPWISE_MOTION_DESC_PER,
    STEPWISE_MOTION_ALL_PER,
    INTERVALS_PERFECT_ASC_COUNT,
    INTERVALS_PERFECT_DESC_COUNT,
    INTERVALS_PERFECT_ALL_COUNT,
    INTERVALS_PERFECT_ASC_PER,
    INTERVALS_PERFECT_DESC_PER,
    INTERVALS_PERFECT_ALL_PER,
    INTERVALS_MAJOR_ASC_COUNT,
    INTERVALS_MAJOR_DESC_COUNT,
    INTERVALS_MAJOR_ALL_COUNT,
    INTERVALS_MAJOR_ASC_PER,
    INTERVALS_MAJOR_DESC_PER,
    INTERVALS_MAJOR_ALL_PER,
    INTERVALS_MINOR_ASC_COUNT,
    INTERVALS_MINOR_DESC_COUNT,
    INTERVALS_MINOR_ALL_COUNT,
    INTERVALS_MINOR_ASC_PER,
    INTERVALS_MINOR_DESC_PER,
    INTERVALS_MINOR_ALL_PER,
    INTERVALS_AUGMENTED_ASC_COUNT,
    INTERVALS_AUGMENTED_DESC_COUNT,
    INTERVALS_AUGMENTED_ALL_COUNT,
    INTERVALS_AUGMENTED_ASC_PER,
    INTERVALS_AUGMENTED_DESC_PER,
    INTERVALS_AUGMENTED_ALL_PER,
    INTERVALS_DIMINISHED_ASC_COUNT,
    INTERVALS_DIMINISHED_DESC_COUNT,
    INTERVALS_DIMINISHED_ALL_COUNT,
    INTERVALS_DIMINISHED_ASC_PER,
    INTERVALS_DIMINISHED_DESC_PER,
    INTERVALS_DIMINISHED_ALL_PER,
    INTERVALS_DOUBLE_AUGMENTED_ALL_COUNT,
    INTERVALS_DOUBLE_AUGMENTED_ASC_COUNT,
    INTERVALS_DOUBLE_AUGMENTED_DESC_COUNT,
    INTERVALS_DOUBLE_AUGMENTED_ALL_PER,
    INTERVALS_DOUBLE_AUGMENTED_ASC_PER,
    INTERVALS_DOUBLE_AUGMENTED_DESC_PER,
    INTERVALS_DOUBLE_DIMINISHED_ALL_COUNT,
    INTERVALS_DOUBLE_DIMINISHED_ASC_COUNT,
    INTERVALS_DOUBLE_DIMINISHED_DESC_COUNT,
    INTERVALS_DOUBLE_DIMINISHED_ALL_PER,
    INTERVALS_DOUBLE_DIMINISHED_ASC_PER,
    INTERVALS_DOUBLE_DIMINISHED_DESC_PER,
    INTERVALS_WITHIN_OCTAVE_ALL_COUNT,
    INTERVALS_WITHIN_OCTAVE_ALL_PER,
    INTERVALS_WITHIN_OCTAVE_ASC_COUNT,
    INTERVALS_WITHIN_OCTAVE_ASC_PER,
    INTERVALS_WITHIN_OCTAVE_DESC_COUNT,
    INTERVALS_WITHIN_OCTAVE_DESC_PER,
    INTERVALS_BEYOND_OCTAVE_ALL_COUNT,
    INTERVALS_BEYOND_OCTAVE_ALL_PER,
    INTERVALS_BEYOND_OCTAVE_ASC_COUNT,
    INTERVALS_BEYOND_OCTAVE_ASC_PER,
    INTERVALS_BEYOND_OCTAVE_DESC_COUNT,
    INTERVALS_BEYOND_OCTAVE_DESC_PER,
    INTERVALLIC_SKEWNESS,
    INTERVALLIC_KURTOSIS,
    ABSOLUTE_INTERVALLIC_SKEWNESS,
    ABSOLUTE_INTERVALLIC_KURTOSIS,
]
