Melody Features Summary
This table provides a comprehensive overview of all 282 melody features available in this package.
0 features
| Name | Pre-existing Implementations | Further References | Description | Type | Notes |
|---|---|---|---|---|---|
| Absolute Interval Range | FANTASTIC | The range between the largest and smallest absolute interval size. | Descriptor | ||
| Amount Of Arpeggiation | jSymbolic | The proportion of pitch intervals in the melody that constitute triadic movements. | Descriptor | ||
| Amount Of Staccato | jSymbolic | The proportion of notes with a duration shorter than 0.1 seconds. | Descriptor | Though this feature is named Amount Of Staccato, it is a fixed-duration cutoff statistic rather than symbolic articulation parsing. |
|
| Asym Index | MUST | The vertical mirror asymmetry index of a melody. Mirrors the MUST ``asymIndex`` implementation: the proportion of sampled time points at which pitch differs from its temporally mirrored counterpart. | Descriptor | In the MUST/MIDI Toolbox notematrix, onset (column 1) and duration (column 2) are in beats. The reference MATLAB code samples with `for t = 0:0.0001:T using that same unit. There is no separate millisecond grid. This implementation converts Melody` timing to beats and uses the same 0.0001 beat step. The real-time length of one step depends on tempo (e.g. 0.1 ms only at 60 BPM, 0.05 ms at 120 BPM). |
|
| Asym Total | MUST | The total vertical mirror asymmetry of a melody. Mirrors the MUST ``asymTotal`` implementation: build a sustained-pitch time series, compare each sample to its temporally reversed counterpart, and return the mean absolute pitch difference. | Descriptor | In the MUST/MIDI Toolbox notematrix, onset (column 1) and duration (column 2) are in beats. The reference MATLAB code samples with `for t = 0:0.0001:T using that same unit. There is no separate millisecond grid. This implementation converts Melody` timing to beats and uses the same 0.0001 beat step. The real-time length of one step depends on tempo (e.g. 0.1 ms only at 60 BPM, 0.05 ms at 120 BPM). |
|
| Av Abs Interval | MUST | The mean log-transformed absolute melodic interval size. Computed as the mean of ``log(abs(interval) + 1)`` over consecutive pitch pairs, where intervals are measured in semitones. | Descriptor | ||
| Av Local P1 Entropy | MUST | The average local zeroth-order pitch entropy across a melody. Computes Shannon entropy of the pitch distribution within sliding one-second windows advanced in 0.25-second steps, using an inclusive upper onset bound, then returns the mean entropy across windows. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| Average Interval Span By Melodic Arcs | jSymbolic | The average interval span of melodic arcs. | Descriptor | ||
| Average Length Of Melodic Arcs | jSymbolic | The average number of notes that separate peaks and troughs in melodic arcs. | Descriptor | ||
| Average Note Duration | jSymbolic | The average note duration in seconds. | Descriptor | This feature reports duration in seconds, unlike quarter-note duration means such as mean_duration and mean_rhythmic_value. |
|
| Basic Pitch Histogram | jSymbolic | A histogram of pitch values and their counts, with one pitch bin per non-zero count. | Sequence | We only return bins for pitches that have a count > 0. An implementation that is truer to the original jSymbolic implementation would return 128 bins (0-127) regardless of how any different pitches are present. However, we believe our approach is more concise and easier to understand for many purposes. | |
| Bisect Unbalance | MUST | The bisect unbalance of a melody's temporal distribution of note onsets. Measures equilibrium between the first and second halves of the stimulus. Computed as ``1 - 4 * f1 * f2``, where ``f1`` and ``f2`` are the proportions of note onsets falling before and after the temporal midpoint, respectively. Values near 1 indicate balanced onset placement; lower values indicate concentration of events in one half. | Descriptor | ||
| Center Mass Offset | MUST | The center of mass offset of a melody's note-onset distribution. The absolute distance between the temporal center of mass (mean onset time, expressed as a proportion of total stimulus duration) and the geometric center (0.5). Values near 0 indicate a centrally concentrated onset distribution. | Descriptor | ||
| Chromatic Motion | jSymbolic | The proportion of chromatic motion in the melody. Chromatic motion is defined as a melodic interval of 1 semitone. | Descriptor | ||
| Comb Contour Matrix | MIDI Toolbox | The Marvin and Laprade comb contour matrix. For a melody with ``n`` notes, this feature returns an ``n x n`` lower-triangular binary matrix. Entry ``C[i][j]`` is ``1`` when note ``j`` is higher than note ``i`` and ``i >= j``; otherwise it is ``0``. The matrix encodes pairwise pitch-height relations in the melodic contour. | Sequence | ||
| Combined Strength Of Two Strongest Rhythmic Pulses | jSymbolic | Sum of the magnitudes of the two strongest rhythmic pulses. | Descriptor | ||
| Combined Strength Of Two Strongest Rhythmic Pulses Tempo Standardized | jSymbolic | Sum of the magnitudes of the two strongest rhythmic pulses using tempo-standardized histogram. | Descriptor | ||
| Complete Rests Fraction | jSymbolic | The fraction of the total duration during which no pitched notes are sounding. | Descriptor | This feature includes all complete silent runs (including those shorter than 0.1 quarter notes), whereas other complete-rest summary statistics apply a minimum 0.1 quarter-note threshold. | |
| D1 Entropy | MUST | The zeroth-order duration entropy of a melody. Shannon entropy of the distribution of note durations in quarter-note beats. The final note duration is excluded, consistent with the MUST ``ddist1`` convention. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. Durations are rounded to two decimal places before binning. |
|
| D2 Entropy | MUST | The first-order (2-tuple) duration entropy of a melody. Shannon entropy of the distribution of consecutive duration pairs in quarter-note beats. The final note duration is excluded. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. Durations are rounded to two decimal places before binning. |
|
| D3 Entropy | MUST | The second-order (3-tuple) duration entropy of a melody. Shannon entropy of the distribution of consecutive duration triples in quarter-note beats. The final note duration is excluded. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. Durations are rounded to two decimal places before binning. |
|
| Ddist1 | MUST | Duration distribution in beats (MUST ``ddist1.m``). The final note duration is excluded, consistent with the MUST ``ddist*`` convention. Durations are rounded to two decimal places in beats. | Sequence | ||
| Ddist2 | MUST | 2-tuple duration distribution in beats (MUST ``ddist2.m``). | Sequence | ||
| Ddist3 | MUST | 3-tuple duration distribution in beats (MUST ``ddist3.m``). | Sequence | ||
| Difference Between Most Common Rhythmic Values | jSymbolic | The absolute difference in bins between most and second most common rhythmic values. | Descriptor | ||
| Direction Of Melodic Motion | jSymbolic | The proportion of upward melodic motions with regards to the total number of melodic motions. | Descriptor | This feature excludes unisons from its denominator and maps only to [0, 1]. | |
| Distance Between Most Prevalent Melodic Intervals | jSymbolic | The absolute difference between the two most common interval sizes. | Descriptor | ||
| Dominant Spread | jSymbolic | The longest sequence of pitch classes separated by perfect 5ths that each appear >9% of the time. | Descriptor | ||
| Dotted Duration Transitions | FANTASTIC | Steinbeck (1982) | The proportion of duration transitions that are dotted. | Descriptor | |
| Dur Abruptness | MUST | The durational abruptness of pitch-direction changes in a melody. The proportion of total note duration (in seconds) accounted for by notes at which the pitch contour changes direction. | Descriptor | ||
| Duration Accent | MIDI Toolbox | Parncutt (1994) | Calculate duration accent for each note based on Parncutt (1994). Duration accent represents the perceptual salience of notes based on their duration. | Sequence | The MIDI toolbox implementation uses defaults of 0.5 for tau (saturation duration) and 2.0 for accent_index (minimum discriminable duration). |
| Duration Accent Std | MIDI Toolbox | Parncutt (1994) | The standard deviation of duration accents. Duration accent represents the perceptual salience of notes based on their duration, as defined by Parncutt (1994). | Descriptor | |
| Duration Entropy | FANTASTIC | The zeroth-order base-2 entropy of the duration distribution in quarter notes. | Descriptor | ||
| Duration Histogram | jSymbolic | A histogram of note durations in quarter notes. | Sequence | ||
| Duration Range | FANTASTIC | The range between the longest and shortest note duration in quarter notes. | Descriptor | ||
| Duration Standard Deviation | Novel | The standard deviation of note durations in quarter notes. | Descriptor | ||
| Durdist1 | MIDI Toolbox | Note duration distribution in nine log-spaced beat bins. Bin centers (in beats): 1/4, √2/4, 1/2, √2/2, 1, √2, 2, 2√2, 4. | Sequence | ||
| Durdist2 | MIDI Toolbox | Second-order duration transition distribution (MIDI Toolbox ``durdist2.m``). Returns a 9×9 matrix of transition probabilities between log-spaced duration bins (same bin centres as ``durdist1``). Keys are ``(from_bin, to_bin)`` with bin indices 1–9. | Sequence | ||
| Equal Duration Transitions | FANTASTIC | Steinbeck (1982) | The proportion of duration transitions that are equal in length. | Descriptor | |
| Event Density | MUST | The event density of a melody. The number of note events divided by total stimulus duration in seconds. | Descriptor | ||
| Event Heterogeneity | MUST | The event heterogeneity of a melody's temporal distribution of onsets. First computes a local unbalance curve using sliding windows sized to contain two note events (stepped at half the window length), then returns the distance-weighted mean squared deviation of that curve from unity. | Descriptor | ||
| Expectancy Complexity Optimal (Complebm) | MIDI Toolbox | Eerola & North (2000) | Expectancy-based melodic complexity calculated using an optimal combination of pitch patterns and rhythmic features, according to Eerola & North (2000). The complexity score is normalized against the Essen folksong collection, where a score of 5 represents average complexity. | Descriptor | |
| Expectancy Complexity Pitch (Complebm) | MIDI Toolbox | Eerola & North (2000) | Expectancy-based melodic complexity calculated using pitch patterns only, according to Eerola & North (2000). The complexity score is normalized against the Essen folksong collection, where a score of 5 represents average complexity. | Descriptor | |
| Expectancy Complexity Rhythm (Complebm) | MIDI Toolbox | Eerola & North (2000) | Expectancy-based melodic complexity calculated using rhythmic features only, according to Eerola & North (2000). The complexity score is normalized against the Essen folksong collection, where a score of 5 represents average complexity. | Descriptor | |
| First Pitch | jSymbolic | The first pitch number in the melody. | Descriptor | ||
| First Pitch Class | jSymbolic | The first pitch class in the melody. | Descriptor | ||
| Folded Fifths Pitch Class Histogram | jSymbolic | A histogram of pitch classes arranged according to the circle of fifths. | Sequence | ||
| Global Duration | FANTASTIC jSymbolic | The total duration in seconds of the melody. | Descriptor | This feature is named duration_in_seconds (Duration In Seconds) in jSymbolic. |
|
| Gradus | MIDI Toolbox | Euler (1739) | The degree of melodiousness based on Euler's `gradus` suavitatis. | Descriptor | |
| Half Duration Transitions | FANTASTIC | Steinbeck (1982) | The proportion of duration transitions that are halved or doubled. | Descriptor | |
| Harmonicity Of Two Strongest Rhythmic Pulses | jSymbolic | The ratio of higher to lower bin index of the two strongest rhythmic pulses. | Descriptor | The first peak is selected from the raw beat histogram and the second peak is selected from the thresholded peak table (column 1), excluding the first peak bin. | |
| Harmonicity Of Two Strongest Rhythmic Pulses Tempo Standardized | jSymbolic | The ratio of higher to lower bin index of the two strongest rhythmic pulses (120-BPM standardized histogram). | Descriptor | The first peak is selected from the standardized histogram values from the standardized histogram values and the second peak is selected from the standardized thresholded peak table (column 1), excluding the first peak bin. | |
| Honore's H | FANTASTIC | Honoré (1979) | Honoré's H measure of m-type lexical richness. Honoré's H relates the total number of m-type tokens to the proportion of distinct m-types that occur exactly once (hapax legomena). It increases when a sequence contains many single-occurrence m-types relative to its overall m-type vocabulary. | Descriptor | |
| Huron Contour Class Label | FANTASTIC | Huron (1996) | The Huron three-point contour classification for the melody. The melody is reduced to three pitch points: the first pitch, a rounded duration-weighted mean pitch, and the last pitch. Their relative ordering determines the contour class. For example, first < mean < last is ``"ascending"``, first > mean > last is ``"descending"``, first < mean > last is ``"convex"``, and first > mean < last is ``"concave"``. | Descriptor | |
| I1 Entropy | MUST | The zeroth-order interval entropy of a melody. Shannon entropy of the distribution of consecutive melodic intervals, weighted by the underlying 2-tuple pitch distribution. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| I2 Entropy | MUST | The first-order (2-tuple) interval entropy of a melody. Shannon entropy of the distribution of consecutive interval pairs, weighted by the underlying 3-tuple pitch distribution. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| IOI | IDyOM | The sequence of inter-onset intervals. An inter-onset interval (IOI) is the elapsed time from one note onset to the next note onset. Unlike note duration, it includes any overlap or silence between consecutive notes because it depends only on onset times. | Sequence | ||
| IOI Contour | Novel | The sequence of IOI-ratio contour values (-1: shorter, 0: same, 1: longer). | Sequence | This contour is computed from ratios of consecutive IOIs, so it requires at least three onsets. | |
| IOI Contour Mean | Novel | The arithmetic mean of ordinal IOI contour values. IOI contour values are ``-1`` for shorter, ``0`` for unchanged, and ``1`` for longer successive inter-onset intervals. The mean summarizes the balance of lengthening versus shortening onset gaps. | Descriptor | ||
| IOI Contour Standard Deviation | Novel | The sample standard deviation of ordinal IOI contour values. IOI contour values encode whether successive inter-onset intervals shorten, stay the same, or lengthen. This feature measures how variable those ordinal changes are across the melody. | Descriptor | ||
| IOI Histogram | Novel | A histogram of inter-onset intervals. | Sequence | ||
| IOI Mean | IDyOM jSymbolic | The arithmetic mean of inter-onset intervals. | Descriptor | This is called average_time_between_attacks in jSymbolic. |
|
| IOI Range | Novel | The range of inter-onset intervals. | Descriptor | ||
| IOI Ratio | IDyOM | The sequence of ratios between successive inter-onset intervals. First, consecutive onset times are converted to inter-onset intervals (IOIs). Each output value is then ``IOI[i] / IOI[i - 1]``. Values greater than ``1`` indicate that the current onset gap is longer than the previous one, values less than ``1`` indicate a shorter gap, and ``1`` indicates no change. | Sequence | ||
| IOI Ratio Mean | Novel | The arithmetic mean of successive inter-onset interval ratios. The ratio sequence is computed as ``IOI[i] / IOI[i - 1]`` for each pair of adjacent inter-onset intervals. This summary is above ``1`` when IOIs tend to lengthen, below ``1`` when they tend to shorten, and close to ``1`` when adjacent IOIs tend to have similar lengths. | Descriptor | ||
| IOI Ratio Standard Deviation | Novel | The sample standard deviation of successive inter-onset interval ratios. This feature measures the variability of ``IOI[i] / IOI[i - 1]`` across the melody. Larger values indicate less regular proportional change between neighboring onset gaps. | Descriptor | ||
| IOI Standard Deviation | IDyOM jSymbolic | The standard deviation of inter-onset intervals. | Descriptor | This is called variability_of_time_between_attacks in jSymbolic. |
|
| Idist1 | MUST | Interval distribution marginalized from ``pdist2`` (MUST ``idist1.m``). | Sequence | ||
| Idist2 | MUST | 2-interval distribution marginalized from ``pdist3`` (MUST ``idist2.m``). | Sequence | ||
| Importance Of Bass Register | jSymbolic | The proportion of pitch numbers in the melody that are between 0 and 54. | Descriptor | ||
| Importance Of High Register | jSymbolic | The proportion of pitch numbers in the melody that are between 73 and 127. | Descriptor | ||
| Importance Of Middle Register | jSymbolic | The proportion of pitch numbers in the melody that are between 55 and 72. | Descriptor | ||
| Initial Tempo | FANTASTIC jSymbolic | The first tempo of the melody. | Descriptor | ||
| Inscale | IDyOM | For each pitch in the melody, returns 1 if the pitch is in the estimated key's scale, or 0 if it deviates from the scale. | Sequence | ||
| Interpolation Contour Class Label | FANTASTIC | A four-symbol categorical summary of interpolation-contour gradients. The interpolation contour is sampled at four equally spaced positions. Each sampled gradient is measured in semitones per second, rescaled to semitones per 0.25 seconds, and assigned to one of five ordered categories from strong downward motion to strong upward motion. The returned string preserves temporal order, so ``"ddbb"`` means that the first two sampled regions are upward and the last two are downward. Categories are defined as follows: - ``"a"``: strong downward motion; normalized gradient <= -1.45. - ``"b"``: downward motion; -1.45 < normalized gradient <= -0.45. - ``"c"``: approximately flat; -0.45 < normalized gradient < 0.45. - ``"d"``: upward motion; 0.45 <= normalized gradient < 1.45. - ``"e"``: strong upward motion; normalized gradient >= 1.45. | Descriptor | ||
| Interpolation Contour Direction Changes | FANTASTIC | The proportion of interpolation-contour transitions that reverse direction. The interpolation contour is a sequence of gradient samples. Consecutive samples with the same gradient belong to the same interpolation-gradient run, so they do not increase the denominator. The denominator is the number of transitions between distinct gradient runs; the numerator is the number of those transitions where the gradient changes sign. For example, the sampled contour ``[2, 2, 1, 1, -1, -1]`` has three gradient runs, ``[2, 1, -1]``. It has two transitions between runs, but only ``1 -> -1`` reverses direction, so the feature value is ``1 / 2 = 0.5``. | Descriptor | ||
| Interpolation Contour Global Direction | FANTASTIC | The overall direction of the interpolation-contour gradients. This feature sums the interpolation-contour gradient samples and returns the sign of that sum. A positive value indicates that upward gradients dominate overall, a negative value indicates that downward gradients dominate overall, and zero indicates that the sampled upward and downward gradients balance out. | Descriptor | ||
| Interpolation Contour Gradient Std | FANTASTIC | The sample standard deviation of interpolation-contour gradients. This feature measures how much the sampled interpolation-contour gradients vary around their mean. It uses Bessel's correction (``ddof=1``), matching the usual sample-standard-deviation convention. Contours with fewer than two gradient samples have no gradient variability and return ``0.0``. | Descriptor | ||
| Interpolation Contour Mean Gradient | FANTASTIC | The mean absolute gradient of the interpolation contour. The interpolation contour is represented as a sequence of local gradients between contour turning points. This feature takes the absolute value of each sampled gradient and averages the result, so upward and downward slopes contribute equally. Larger values indicate steeper pitch movement between turning points. | Descriptor | ||
| Interval Between Most Prevalent Pitch Classes | jSymbolic | The number of semitones between the two most prevalent pitch classes. | Descriptor | ||
| Interval Between Most Prevalent Pitches | jSymbolic | The number of semitones between the two most prevalent pitches. | Descriptor | ||
| Interval Direction | SIMILE | The sequence of interval directions in the melody, where 1 represents upward motion, 0 represents no motion, and -1 represents downward motion. | Sequence | ||
| Interval Direction Mean | Novel | The mean of the direction of each interval in the melody. | Descriptor | Unisons contribute 0 to both numerator and denominator because the mean is taken over the full direction sequence {-1, 0, 1}. | |
| Interval Direction Std | Novel | The standard deviation of the direction of each interval in the melody. | Descriptor | Uses population variance (divide by N) | |
| Interval Entropy | FANTASTIC | The zeroth-order base-2 entropy of the interval distribution. | Descriptor | Uses signed intervals rather than absolute interval sizes, consistent with FANTASTIC implementation. | |
| Ivdirdist1 | MIDI Toolbox | Directional interval bias for each interval size (1-12 semitones). Derived from duration-accent-weighted ``ivdist1`` (MIDI Toolbox ``ivdirdist1.m``). | Sequence | ||
| Ivdist1 | MIDI Toolbox | Interval distribution weighted by duration accent. | Sequence | ||
| Ivdist2 | MIDI Toolbox | Second-order interval transition distribution (MIDI Toolbox ``ivdist2.m``). Each note is assigned an interval class (incoming interval modulo octave, with 0 for the first note). Transition weights use the sum of Parncutt duration accents of the two notes. Keys are ``(from_interval, to_interval)`` in semitones (approximately -11 to 11). | Sequence | ||
| Ivsizedist1 | MIDI Toolbox | Interval-size distribution (0-12 semitones) from ``ivdist1``. Derived from duration-accent-weighted ``ivdist1`` (MIDI Toolbox ``ivsizedist1.m``). | Sequence | ||
| Key | MIDI Toolbox | Krumhansl (1990) | The key of the melody, either read from the MIDI file or estimated using the specified key finding algorithm, depending on the key estimation strategy. | Sequence | This feature is named keyname in MIDI Toolbox. |
| Last Pitch | jSymbolic | The last pitch number in the melody. | Descriptor | ||
| Last Pitch Class | jSymbolic | The last pitch class in the melody. | Descriptor | ||
| Length | FANTASTIC jSymbolic | The total number of notes. | Descriptor | This feature is named total_number_of_notes (Total Number Of Notes) in jSymbolic. |
|
| Longest Complete Rest | jSymbolic | The longest uninterrupted complete rest in quarter-note units (ignoring rests shorter than 0.1 QN). | Descriptor | ||
| Longest Conjunct Scalar Passage | Novel | The longest sequence of consecutive notes that fit within the estimated key's scale. For example, a melody estimated to be in C major with notes C, D, E, F, G would have a longest conjunct scalar passage of 5. | Descriptor | ||
| Longest Monotonic Conjunct Scalar Passage | Novel | The longest sequence of consecutive notes that fit within the estimated key's scale that move in the same direction. | Descriptor | ||
| Longest Rhythmic Value | jSymbolic | The longest quantized rhythmic-bin value (in quarter notes). | Descriptor | This returns the ideal value of the longest occupied histogram bin, not the raw maximum note duration. | |
| Max Log DF | FANTASTIC | log2 of the largest corpus document frequency among melody m-types. Highlights how frequent the most common pattern in the melody is relative to the corpus. Large values indicate that the melody contains at least one pattern that is very frequent in the corpus. | Descriptor | ||
| Maximum Note Duration | jSymbolic | The maximum note duration in seconds. | Descriptor | ||
| Mean Absolute Interval | FANTASTIC jSymbolic | The arithmetic mean of the absolute intervals in the melody. | Descriptor | This feature is named mean_melodic_interval (Mean Melodic Interval) in jSymbolic. |
|
| Mean Cloud Diameter | Partitura | Herremans & Chew (2016) | Mean cloud diameter from the tonal tension model. Cloud Diameter provides a measure of the maximal tonal distance of the notes in a chord, following the definition in Partitura. | Descriptor | |
| Mean Cloud Momentum | Partitura | Herremans & Chew (2016) | Mean cloud momentum from the tonal tension model. Cloud momentum captures movement of pitch sets in the spiral array space, weighted by note durations, following the definition in Partitura. | Descriptor | |
| Mean Complete Rest Duration | jSymbolic | The mean duration of complete rests in quarter-note units (ignoring rests shorter than 0.1 QN). | Descriptor | ||
| Mean Duration | Novel | The mean note duration in quarter notes, computed from the raw durations. | Descriptor | We use raw durations here (in the style of FANTASTIC), rather than jSymbolic's quantized rhythmic-value bins. | |
| Mean Duration Accent | MIDI Toolbox | Parncutt (1994) | The mean duration accent across all notes. Duration accent represents the perceptual salience of notes based on their duration, as defined by Parncutt (1994). | Descriptor | |
| Mean Entropy | FANTASTIC | Mean zeroth-order m-type entropy across counted n-gram orders. For each n-gram order, this feature treats the m-type counts as a discrete distribution and computes zeroth-order entropy. The returned value is the mean of those entropy values across the counted orders. Higher values indicate more even m-type distributions. | Descriptor | ||
| Mean Global Local Weight | FANTASTIC | Mean combined local-global weights for n-grams. The combined weight of an m-type is the product of local and global weights. In this implementation, unseen m-types (DF=0) receive a neutral global weight of 1.0. Higher values therefore indicate either high local frequency, higher global weight, or both. This relates to the percept of distinctiveness. | Descriptor | ||
| Mean Global Weight | FANTASTIC | Mean global weight across m-types. Higher values mean the m-types are less globally informative (more expected); lower values mean they are more globally informative (more distinctive). | Descriptor | ||
| Mean Log DF | FANTASTIC | Mean log2 corpus DF over melody m-types. Highlights how frequent the average pattern in the melody is relative to the corpus. Large values indicate that the melody contains patterns that are relatively frequent in the corpus. Small values indicate that the melody contains patterns that are relatively rare in the corpus. | Descriptor | ||
| Mean Log TFDF | FANTASTIC | Mean of log2-normalized TF × DF products over m-types. Higher values mean stronger alignment between within-melody usage and corpus document-frequency on the same m-types. | Descriptor | ||
| Mean Melodic Accent | MIDI Toolbox | Thomassen (1982) | The arithmetic mean of Thomassen melodic-accent values. Melodic accent values estimate local contour salience from three-note pitch windows. This feature averages those note-level salience values across the melody. | Descriptor | |
| Mean Melodic Attraction | MIDI Toolbox | The arithmetic mean of Lerdahl melodic-attraction values. | Descriptor | ||
| Mean Mobility | MIDI Toolbox | The arithmetic mean of the `mobility` values across all notes. | Descriptor | ||
| Mean Pitch | jSymbolic | The arithmetic mean of the pitch numbers in the melody. | Descriptor | ||
| Mean Pitch Class | jSymbolic | The arithmetic mean of the pitch classes in the melody. | Descriptor | This is a linear (non-circular) mean over pitch classes. For example, pitch classes near the wraparound boundary (e.g., 11 and 0) are averaged numerically rather than on the unit circle. | |
| Mean Productivity | FANTASTIC | The proportion of distinct m-types that occur only once. M-types that occur only once are hapax legomena. This feature divides the number of hapax m-types by the total number of distinct m-types, so higher values indicate that more of the melody's m-type vocabulary is used only once. | Descriptor | ||
| Mean Rhythmic Value | jSymbolic | The mean quantized rhythmic value in quarter notes. | Descriptor | Uses histogram-bin ideal values rather than raw note durations. | |
| Mean Rhythmic Value Offset | jSymbolic | The mean quantized offset from the nearest ideal rhythmic value (in quarter notes). | Descriptor | ||
| Mean Rhythmic Value Run Length | jSymbolic | The mean run length of identical rhythmic values across the melody. Run length is the number of consecutive notes with the same rhythmic value. Returns 0.0 if there are fewer than 1 notes. | Descriptor | ||
| Mean Tempo | jSymbolic | The mean tempo of the melody. | Descriptor | ||
| Mean Tensile Strain | Partitura | Herremans & Chew (2016) | Mean tensile strain from the tonal tension model. Tensile strain provides a measure of the distance between the local and global tonal context, following the definition in Partitura. | Descriptor | |
| Mean Tessitura | MIDI Toolbox | The arithmetic mean of local `tessitura` values. | Descriptor | ||
| Median Complete Rest Duration | jSymbolic | The median duration of complete rests in quarter-note units (ignoring rests shorter than 0.1 QN). | Descriptor | ||
| Median Rhythmic Value Offset | jSymbolic | The median quantized offset from the nearest ideal rhythmic value (in quarter notes). | Descriptor | ||
| Median Rhythmic Value Run Length | jSymbolic | The median run length of identical rhythmic values across the melody. Run length is the number of consecutive notes with the same rhythmic value. | Descriptor | ||
| Mel Abruptness | MUST | The melodic abruptness of pitch-direction changes in a melody. For each interior note where the pitch contour changes direction, accumulates the natural logarithm of the mean absolute interval size at that turning point, then normalizes by total stimulus duration in seconds. | Descriptor | ||
| Melodic Accent | MIDI Toolbox | Thomassen (1982) | Melodic accent salience for each note using Thomassen's contour model. Thomassen's model assigns accent strength from the melodic contour formed by three-note pitch windows. Notes at locally salient contour positions receive higher values. The implementation follows the MIDI Toolbox ``melaccent.m`` convention and returns values from ``0`` (no salience) to ``1`` (maximum salience). | Sequence | |
| Melodic Accent Std | MIDI Toolbox | Thomassen (1982) | The sample standard deviation of Thomassen melodic-accent values. Melodic accent values estimate local contour salience from three-note pitch windows. This feature summarizes how unevenly that salience is distributed across the melody. | Descriptor | |
| Melodic Attraction | MIDI Toolbox | Melodic attraction values following Lerdahl's tonal-attraction model. | Sequence | ||
| Melodic Attraction Std | MIDI Toolbox | The population standard deviation of Lerdahl melodic-attraction values. | Descriptor | ||
| Melodic Embellishment | jSymbolic | The proportion of melodic embellishments in the melody. Melodic embellishments are identified by notes that are surrounded on both sides by notes with durations at least 3 times longer than the central note. | Descriptor | ||
| Melodic Interval Histogram | jSymbolic | Histogram of absolute melodic interval sizes in semitones. | Sequence | We only return bins for intervals that have a count > 0. An implementation that is truer to the original jSymbolic implementation would return 128 bins (0-127) regardless of how any different intervals are present. | |
| Melodic Large Intervals | jSymbolic | The proportion of intervals >= 13 semitones. | Descriptor | ||
| Melodic Octaves | jSymbolic | The proportion of intervals that are octaves (12 semitones). | Descriptor | ||
| Melodic Originality (Compltrans) | MIDI Toolbox | Simonton (1984) | The melodic originality measure, according to Simonton (1984). Calculated based on 2nd order pitch-class distribution derived from 15,618 classical music themes. Higher values indicate higher melodic originality (less predictable transitions). | Descriptor | |
| Melodic Perfect Fifths | jSymbolic | The proportion of intervals that are perfect fifths (7 semitones). | Descriptor | ||
| Melodic Perfect Fourths | jSymbolic | The proportion of intervals that are perfect fourths (5 semitones). | Descriptor | ||
| Melodic Pitch Variety | jSymbolic | The average number of onset positions before a pitch is repeated. | Descriptor | ||
| Melodic Sevenths | jSymbolic | The proportion of intervals that are sevenths (10 or 11 semitones). | Descriptor | ||
| Melodic Sixths | jSymbolic | The proportion of intervals that are sixths (8 or 9 semitones). | Descriptor | ||
| Melodic Thirds | jSymbolic | The proportion of intervals that are thirds (3 or 4 semitones). | Descriptor | ||
| Melodic Tritones | jSymbolic | The proportion of intervals that are tritones (6 semitones). | Descriptor | ||
| Meter Accent | MIDI Toolbox | Phenomenal accent synchrony measure, calculated as the negative mean of the product of metric hierarchy, melodic accent, and durational accent for each note. Higher values indicate stronger accent synchrony. Implementation based on MIDI toolbox meteraccent.m. | Descriptor | ||
| Meter Denominator | jSymbolic | The denominator of the melody's active time signature. For a time signature written as ``numerator/denominator``, the denominator gives the note value that represents one beat: for example, ``4`` means a quarter-note beat and ``8`` means an eighth-note beat. | Descriptor | ||
| Meter Numerator | jSymbolic | The numerator of the melody's active time signature. For a time signature written as ``numerator/denominator``, the numerator is the number of beats in each notated bar. If a melody contains meter changes, this returns the meter stored on the melody object as its primary meter. | Descriptor | ||
| Metric Hierarchy | MIDI Toolbox | Metric hierarchy values for each note, indicating the strength of each note position within the known or estimated meter. Higher values indicate stronger metric positions (e.g., downbeat = 5, beat = 4, half-beat = 3, etc.). Implementation based on MIDI toolbox metrichierarchy.m. | Sequence | ||
| Min Log DF | FANTASTIC | log2 of the smallest corpus DF among melody m-types. Highlights how frequent the least common pattern in the melody is relative to the corpus. Small values indicate that the melody contains at least one pattern that is very rare in the corpus. | Descriptor | ||
| Minimum Note Duration | jSymbolic | The minimum note duration in seconds. | Descriptor | ||
| Minor Major Third Ratio | jSymbolic | The ratio of minor thirds to major thirds. | Descriptor | Instead of matching jSymbolic behavior (returning 0.0 when there are no major thirds), this returns NaN when there are no major thirds (including cases where minor thirds are present). | |
| Mobility | MIDI Toolbox | von Hippel (2000) | The melodic `mobility` for each note based on von Hippel (2000). Mobility describes why melodies change direction after large skips by observing that they would otherwise run out of the comfortable melodic range. It uses lag-one autocorrelation between successive pitch heights. | Sequence | |
| Mobility Std | MIDI Toolbox | The standard deviation of the `mobility` values across all notes. | Descriptor | ||
| Modal Duration | FANTASTIC jSymbolic | The modal raw note duration in quarter notes. | Descriptor | This computes the mode of raw quarter-note durations, so differs from jSymbolic most_common_rhythmic_value, which uses the modal bin in a 12-bin rhythmic-value histogram. |
|
| Modal Interval | FANTASTIC jSymbolic | The most common interval size in the melody. | Descriptor | This feature is named most_common_interval (Most Common Interval) in jSymbolic. |
|
| Mode | FANTASTIC | Calculate the mode (major/minor) of a melody, either read from the MIDI file or estimated using the specified key finding algorithm. | Sequence | ||
| Most Common Pitch | jSymbolic | The most frequently occurring pitch number in the melody. | Descriptor | ||
| Most Common Pitch Class | jSymbolic | The most frequently occurring pitch class in the melody. | Descriptor | ||
| Most Common Rhythmic Value | jSymbolic | The modal quantized rhythmic value (in quarter notes). | Descriptor | Uses rhythmic-value mode from a 12-bin histogram. Differs from modal_duration, which computes a raw-duration mode in quarter-note units. |
|
| NPVI | MIDI Toolbox | Patel & Daniele (2003) | The normalized Pairwise Variability Index (NPVI) of note durations in quarter notes. The NPVI measures the durational variability of events, originally developed for language research to distinguish stress-timed vs. syllable-timed languages. Applied to music by Patel & Daniele (2003) to study the prosodic influences on musical rhythm. | Descriptor | |
| Narmour Closure | IDyOM MIDI Toolbox | Narmour (1990) | Narmour closure score for the final three-note pattern. The last three pitches define two successive intervals. One point is awarded when the second interval changes direction relative to the first. A second point is awarded when the second interval is at least two semitones smaller than the first in absolute size. The resulting score ranges from ``0`` to ``2``. | Descriptor | |
| Narmour Intervallic Difference | IDyOM MIDI Toolbox | Narmour (1990) | Narmour intervallic-difference score for the final three notes. The last three pitches define an implicative interval followed by a realized interval. If the implicative interval is large (greater than a tritone), this feature returns ``1`` when the realized interval is sufficiently smaller: at least three semitones smaller in the same direction, or at least two semitones smaller after a direction change. If the implicative interval is small (smaller than a tritone), it returns ``1`` when the realized interval is similar in size, within the same margins. Otherwise it returns ``0``. | Descriptor | |
| Narmour Proximity | IDyOM MIDI Toolbox | Narmour (1990) | Narmour proximity score for the final melodic interval. Proximity rewards small realized intervals. It is calculated as ``6 - d``, where ``d`` is the absolute semitone distance between the final two notes, and is clipped at ``0`` for intervals of a tritone or larger. Unisons therefore receive ``6``, whole tones receive ``4``, perfect fourths receive ``1``, and perfect fifths receive ``0``. | Descriptor | |
| Narmour Registral Direction | IDyOM MIDI Toolbox | Narmour (1990) | Narmour registral-direction score for the final three notes. The last three pitches define an implicative interval followed by a realized interval. This feature returns ``1`` when a large implicative interval (greater than a tritone) is followed by a change of direction, or when a small implicative interval (smaller than a tritone) continues in the same direction. It returns ``0`` otherwise. | Descriptor | |
| Narmour Registral Return | IDyOM MIDI Toolbox | Narmour (1990) | Narmour registral-return score for the final three-note pattern. Registral return measures whether the last three notes move away from a pitch and then return toward it. The contour must change direction and neither interval may be a repeated note. An exact return to the first pitch scores ``3``; returning within one semitone scores ``2``; returning within two semitones scores ``1``; all other patterns score ``0``. | Descriptor | |
| Norm Log Dist | FANTASTIC | Mean absolute difference between log2-normalized TF and DF. Larger values mean the melody emphasizes different m-types than corpus prevalence; smaller values mean closer distributional match. | Descriptor | ||
| Note Density | FANTASTIC jSymbolic | The average number of notes per second. | Descriptor | ||
| Note Density Per Quarter Note | jSymbolic | The average number of note onsets per unit of time corresponding to an idealized quarter note duration based on the tempo. | Descriptor | ||
| Note Density Per Quarter Note Variability | jSymbolic | The standard deviation of note density per quarter note. Divides the melody into 8-quarter-note windows and calculates the standard deviation of note density across these windows. | Descriptor | Our tests indicate a certain discrepancy between our outputs and JSymbolic's outputs, which may be a consequence of JSymbolic's tick-based approach, or perhaps its idiosyncratic windowing approach. | |
| Note Density Variability | jSymbolic | The standard deviation of note density across 5-second windows. | Descriptor | Our tests indicate a certain discrepancy between our outputs and JSymbolic's outputs, which may be a consequence of JSymbolic's tick-based approach, or perhaps its idiosyncratic windowing approach. | |
| Number Of Common Melodic Intervals | jSymbolic | The number of intervals that appear in at least 9% of melodic transitions. | Descriptor | ||
| Number Of Common Pitch Classes | jSymbolic | The number of pitch classes that appear in at least 20% of total notes. | Descriptor | This feature is named number_of_common_pitches_classes (Number Of Common Pitches Classes) in local legacy export. |
|
| Number Of Common Pitches | jSymbolic | The number of unique pitch numbers that appear in at least 9% of total notes. | Descriptor | ||
| Number Of Common Rhythmic Values Present | jSymbolic | The number of rhythmic value bins with normalized proportion >= 0.15. | Descriptor | ||
| Number Of Different Rhythmic Values Present | jSymbolic | The number of distinct rhythmic value bins that are present in the melody (non-zero). | Descriptor | ||
| Number Of Moderate Rhythmic Pulses | jSymbolic | The number of beat histogram peaks with normalized magnitudes over 0.01. | Descriptor | ||
| Number Of Moderate Rhythmic Pulses Tempo Standardized | jSymbolic | The number of tempo-standardized beat histogram peaks with normalized magnitudes over 0.01. | Descriptor | ||
| Number Of Relatively Strong Rhythmic Pulses | jSymbolic | The number of peaks at least 30% of the max magnitude. | Descriptor | ||
| Number Of Relatively Strong Rhythmic Pulses Tempo Standardized | jSymbolic | The number of tempo-standardized peaks at least 30% of the max magnitude. | Descriptor | ||
| Number Of Strong Rhythmic Pulses | jSymbolic | The count of BPM bins with strong rhythmic pulses (> 0.1 in the underlying beat histogram). | Descriptor | ||
| Number Of Strong Rhythmic Pulses Tempo Standardized | jSymbolic | The count of BPM bins with strong pulses (> 0.1 in the underlying standardized beat histogram). | Descriptor | ||
| Number Of Unique Durations | Novel | The number of unique note durations, measured in quarter notes. | Descriptor | ||
| Number Of Unique Pitch Classes | jSymbolic | The number of unique pitch classes in the melody. | Descriptor | ||
| Number Of Unique Pitches | jSymbolic | The number of unique pitch numbers in the melody. | Descriptor | ||
| Number Of Unique Time Signatures | jSymbolic | The number of unique time signatures in the melody. | Descriptor | This feature is named Metrical Diversity in jSymbolic. |
|
| Onset Autocorr Peak | MIDI Toolbox | Maximum onset autocorrelation excluding lag 0. | Descriptor | ||
| Onset Autocorrelation | MIDI Toolbox | Parncutt (1994) | The autocorrelation function of onset times weighted by duration accents. This is calculated by weighting the onset times by the duration accents, as defined by Parncutt (1994). Onsets are converted to quarter-note beats using tempo before grid quantization. | Sequence | |
| P1 Entropy | MUST | The zeroth-order pitch entropy of a melody. Shannon entropy of the marginal pitch distribution. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| P2 Entropy | MUST | The first-order (2-tuple) pitch entropy of a melody. Shannon entropy of the distribution of consecutive pitch pairs. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| P3 Entropy | MUST | The second-order (3-tuple) pitch entropy of a melody. Shannon entropy of the distribution of consecutive pitch triples. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| Pcdist1 | MIDI Toolbox | Pitch-class distribution weighted by Parncutt duration accent. | Sequence | ||
| Pcdist2 | MIDI Toolbox | Second-order pitch-class transition distribution (MIDI Toolbox ``pcdist2.m``). Transition weights are the product of Parncutt duration accents of the two notes. Keys are ``(from_pitch_class, to_pitch_class)`` with pitch classes 0–11 (C=0, …, B=11). | Sequence | ||
| Pdist1 | MUST | Pitch distribution (MUST ``pdist1.m``). Returns normalized weights keyed by MIDI pitch. | Sequence | ||
| Pdist2 | MUST | 2-tuple pitch distribution (MUST ``pdist2.m``). Returns normalized weights keyed by consecutive pitch pairs. | Sequence | ||
| Pdist3 | MUST | 3-tuple pitch distribution (MUST ``pdist3.m``). Returns normalized weights keyed by consecutive pitch triples. | Sequence | ||
| Pitch Class Kurtosis | jSymbolic | The sample excess kurtosis of the pitch class histogram. | Descriptor | ||
| Pitch Class Kurtosis After Folding | jSymbolic | The sample excess kurtosis of the pitch class histogram, after arranging the pitch classes according to the circle of fifths. | Descriptor | ||
| Pitch Class Skewness | jSymbolic | The skewness of the pitch class histogram, using Pearson's median skewness formula. | Descriptor | ||
| Pitch Class Skewness After Folding | jSymbolic | The skewness of the pitch class histogram, using Pearson's median skewness formula, after arranging the pitch classes according to the circle of fifths. | Descriptor | ||
| Pitch Class Variability | jSymbolic | Standard deviation of all pitch classes in the melody. | Descriptor | ||
| Pitch Class Variability After Folding | jSymbolic | Standard deviation of all pitch classes after arranging the pitch classes by perfect fifths. Provides a measure of how close the pitch classes are as a whole from the mean pitch class from a dominant-tonic perspective. | Descriptor | ||
| Pitch Entropy | FANTASTIC | The zeroth-order base-2 entropy of the pitch distribution. | Descriptor | ||
| Pitch Interval | SIMILE | The intervals (in semitones) between consecutive pitches in the melody. | Sequence | ||
| Pitch Kurtosis | jSymbolic | The sample excess kurtosis of the pitch histogram. | Descriptor | ||
| Pitch LTM Mean Information Content | IDyOM | Pearce, M. (2005) | The average information content across all notes in a melody, calculated using IDyOM's long-term model (LTM). Information content is perceptually related to surprise, and can be calculated for pitches or rhythms. | Descriptor | |
| Pitch Range | FANTASTIC MIDI Toolbox jSymbolic | Subtract the lowest pitch number in the melody from the highest. | Descriptor | This feature is named ambitus in MIDI Toolbox. |
|
| Pitch STM Mean Information Content | IDyOM | Pearce, M. (2005) | The average information content across all notes in a melody, calculated using IDyOM's prediction-by-partial-matching (PPM) algorithm. Information content is perceptually related to surprise, and can be calculated for pitches or rhythms. | Descriptor | |
| Pitch Skewness | jSymbolic | The skewness of the pitch histogram, using Pearson's median skewness formula. | Descriptor | ||
| Pitch Spelling | Partitura | Meredith (2006) | Pitch spelling using the ps13s1 algorithm. | Sequence | |
| Pitch Standard Deviation | FANTASTIC jSymbolic | Standard deviation of all pitch numbers in the melody. | Descriptor | This feature is named pitch_variability (Pitch Variability) in jSymbolic. |
|
| Polynomial Contour Coefficients | FANTASTIC | The first three non-constant polynomial-contour coefficients. Polynomial contour fits pitch as a polynomial function of centered onset time, then selects a model by Bayesian information criterion. This feature returns the linear, quadratic, and cubic terms ``[c1, c2, c3]`` from ``p = c0 + c1*t + c2*t**2 + c3*t**3``. The intercept ``c0`` is omitted because it represents absolute pitch height rather than contour shape. | Sequence | ||
| Polyrhythms | jSymbolic | The fraction of strong beat-histogram peaks related to the strongest peak. Among peaks at least 30% as tall as the maximum, returns the proportion whose bin is an integer multiple/factor of the strongest (multipliers 1, 2, 3, 4, 6, 8; ±3 bins). | Descriptor | ||
| Polyrhythms Tempo Standardized | jSymbolic | The fraction of strong beat-histogram peaks related to the strongest peak using the tempo-standardized beat histogram. Among peaks at least 30% as tall as the maximum, returns the proportion whose bin is an integer multiple/factor of the strongest (multipliers 1, 2, 3, 4, 6, 8; ±3 bins). | Descriptor | ||
| Prevalence Of Dotted Notes | jSymbolic | The sum of dotted rhythmic bins: 3, 5, 7, 9, 11. | Descriptor | ||
| Prevalence Of Long Rhythmic Values | jSymbolic | The sum of rhythmic bins 6 to 11 (half notes to dotted double whole notes or more). | Descriptor | Rhythmic-bin families overlap by construction in jSymbolic (e.g., short/medium/long), so these prevalence values are not mutually exclusive and can sum to more than 1.0. | |
| Prevalence Of Medium Rhythmic Values | jSymbolic | The sum of rhythmic bins 2 to 6 (8th notes to half notes). | Descriptor | Rhythmic-bin families overlap by construction in jSymbolic (e.g., short/medium/long), so these prevalence values are not mutually exclusive and can sum to more than 1.0. | |
| Prevalence Of Most Common Melodic Interval | jSymbolic | The proportion of intervals that are the most common interval. | Descriptor | ||
| Prevalence Of Most Common Pitch | jSymbolic | The proportion of pitches that are the most common pitch with regards to the total number of pitches in the melody. | Descriptor | ||
| Prevalence Of Most Common Pitch Class | jSymbolic | The proportion of pitch classes that are the most common pitch class with regards to the total number of pitch classes in the melody. | Descriptor | ||
| Prevalence Of Most Common Rhythmic Value | jSymbolic | The proportion (0.0 - 1.0) of the modal rhythmic bin. | Descriptor | ||
| Prevalence Of Short Rhythmic Values | jSymbolic | The sum of the three shortest rhythmic bins (indexes 0, 1, and 2). | Descriptor | Rhythmic-bin families overlap by construction in jSymbolic (e.g., short/medium/long), so these prevalence values are not mutually exclusive and can sum to more than 1.0. | |
| Prevalence Of Very Long Rhythmic Values | jSymbolic | The sum of rhythmic bins 9 to 11 (dotted whole notes to dotted double whole notes or more). | Descriptor | ||
| Prevalence Of Very Short Rhythmic Values | jSymbolic | The sum of the two shortest rhythmic bins (indexes 0 and 1). | Descriptor | ||
| Proportion Conjunct Scalar | Novel | Longest conjunct scalar passage length divided by total note count. | Descriptor | ||
| Proportion Inscale | Novel | The proportion of notes in the melody that are in the scale of the estimated key. | Descriptor | ||
| Proportion Of Time In First Meter | Novel | The proportion of the melody's duration spent in its first time signature. The numerator and denominator of the first encountered time signature define the initial meter. This feature reports the fraction of total melody duration before any subsequent meter change. Melodies with no meter change therefore return ``1.0``. | Descriptor | ||
| Proportion Scalar | Novel | Longest monotonic conjunct scalar passage length divided by total notes. | Descriptor | ||
| Range Of Rhythmic Values | jSymbolic | The range of rhythmic values located within the 12-bin PPQN-based histogram. Durations are converted to quarter notes and mapped to 12 fixed rhythmic bins using midpoints. The returned value is the difference between the highest and lowest non-empty bins. | Descriptor | ||
| Referent | IDyOM | Calculate the `referent` (pitch-class root) of a melody. | Descriptor | ||
| Relative Prevalence Of Most Common Melodic Intervals | jSymbolic | The ratio of the frequency of the second most common interval to the frequency of the most common interval. | Descriptor | ||
| Relative Prevalence Of Most Common Rhythmic Values | jSymbolic | The ratio of the second-most-common rhythmic bin to the most common bin. | Descriptor | ||
| Relative Prevalence Of Top Pitch Classes | jSymbolic | The ratio of the frequency of the second most common pitch class to the frequency of the most common pitch class. | Descriptor | ||
| Relative Prevalence Of Top Pitches | jSymbolic | The ratio of the frequency of the second most common pitch to the frequency of the most common pitch. | Descriptor | ||
| Repeated Notes | jSymbolic | The proportion of repeated notes in the melody. | Descriptor | ||
| Rhythm Abruptness | MUST | Parncutt (1994) | The rhythmic abruptness of consecutive note durations. The mean ratio of consecutive beat durations after applying Parncutt (1994) duration accent, taking the larger-over-smaller ratio at each successive pair of notes. | Descriptor | Duration accent follows the MIDI Toolbox `duraccent defaults (tau=0.5, accent_index=2.0`). |
| Rhythm LTM Mean Information Content | IDyOM | Pearce, M. (2005) | The average rhythmic information content across all notes in a melody, calculated using IDyOM's long-term model (LTM). Information content is perceptually related to surprise, and can be calculated for pitches or rhythms. | Descriptor | |
| Rhythm STM Mean Information Content | IDyOM | Pearce, M. (2005) | The average rhythmic information content across all notes in a melody, calculated using IDyOM's short-term model (STM). Information content is perceptually related to surprise, and can be calculated for pitches or rhythms. | Descriptor | |
| Rhythmic Looseness | jSymbolic | The average width of beat histogram peaks. Width is defined as the distance between points at 30% of the peak height. | Descriptor | ||
| Rhythmic Looseness Tempo Standardized | jSymbolic | The average width of beat histogram peaks using tempo-standardized histogram. Width is defined as the distance between points at 30% of the peak height. | Descriptor | ||
| Rhythmic Variability | jSymbolic | The standard deviation of the beat histogram bin magnitudes, excluding the first 40 bins. | Descriptor | ||
| Rhythmic Variability Tempo Standardized | jSymbolic | The standard deviation of the tempo-standardized beat histogram bin magnitudes, excluding the first 40 bins. | Descriptor | ||
| Second Strongest Rhythmic Pulse | jSymbolic | The bin index (BPM) of the second-highest magnitude in the beat histogram. | Descriptor | ||
| Second Strongest Rhythmic Pulse Tempo Standardized | jSymbolic | The bin index (BPM) of the second-highest magnitude in the 120-BPM standardized beat histogram. | Descriptor | ||
| Shortest Rhythmic Value | jSymbolic | The shortest quantized (non-zero) rhythmic-bin value (in quarter notes). | Descriptor | This returns the ideal value of the shortest occupied histogram bin, not the raw minimum note duration. | |
| Sichel's S | FANTASTIC | Sichel (1975) | The proportion of m-types that occur exactly twice. Sichel's S is the number of distinct m-types with frequency two divided by the total number of distinct m-types. Higher values indicate that more of the melody's m-type vocabulary consists of types that recur once. | Descriptor | |
| Simpson's D | FANTASTIC | Simpson (1949) | Simpson's D measure of m-type concentration. Simpson's D is calculated from squared m-type frequencies. Higher values indicate a greater probability that two sampled tokens belong to the same m-type, and therefore a more concentrated or repetitive m-type vocabulary. | Descriptor | |
| Standard Deviation Absolute Interval | FANTASTIC | The standard deviation of the absolute intervals in the melody. | Descriptor | ||
| Std Cloud Diameter | Partitura | Herremans & Chew (2016) | Standard deviation of cloud diameter from the tonal tension model. Cloud Diameter provides a measure of the maximal tonal distance of the notes in a chord, following the definition in Partitura. | Descriptor | |
| Std Cloud Momentum | Partitura | Herremans & Chew (2016) | Standard deviation of cloud momentum from the tonal tension model. Cloud Momentum provides a measure of movement of pitch sets in the spiral array space, weighted by note durations, following the definition in Partitura. | Descriptor | |
| Std Global Local Weight | FANTASTIC | Sample standard deviation of combined local-global weights for n-grams. | Descriptor | ||
| Std Global Weight | FANTASTIC | Sample standard deviation of global weights for m-types. | Descriptor | ||
| Std Tensile Strain | Partitura | Herremans & Chew (2016) | Standard deviation of tensile strain from the tonal tension model. Tensile strain provides a measure of the distance between the local and global tonal context, following the definition in Partitura. | Descriptor | |
| Step Contour Global Direction | FANTASTIC | The overall ascending or descending tendency of the step contour. This is the Pearson correlation between the fixed-length step-contour pitch vector and an ascending linear ramp. Positive values indicate an overall upward trajectory, negative values indicate an overall downward trajectory, and values near zero indicate little linear pitch direction. A flat contour returns ``0.0``. | Descriptor | ||
| Step Contour Global Variation | FANTASTIC | The overall pitch variability of the step contour. The step contour is a fixed-length pitch vector in which each note's MIDI pitch is repeated in proportion to its duration. This feature is the standard deviation of that vector, so long notes influence the result more than short notes. Larger values indicate a wider duration-weighted pitch spread. The ``"amads"`` method uses population standard deviation (``ddof=0``), while ``"fantastic"`` uses sample standard deviation (``ddof=1``) for compatibility with the original FANTASTIC convention. | Descriptor | ||
| Step Contour Local Variation | FANTASTIC | The average adjacent-sample change in the step contour. This feature compares each neighboring pair of samples in the fixed-length step-contour pitch vector and averages the absolute pitch differences. Because adjacent samples inside the same sustained note have difference zero, the measure emphasizes local pitch changes after duration-weighted resampling rather than the raw sequence of note-to-note intervals. | Descriptor | ||
| Stepwise Motion | jSymbolic | The proportion of stepwise motion in the melody. Stepwise motion is defined as a melodic interval of 1 or 2 semitones. | Descriptor | ||
| Strength Of Second Strongest Rhythmic Pulse | jSymbolic | The magnitude of the beat histogram bin with the second-highest magnitude. | Descriptor | ||
| Strength Of Second Strongest Rhythmic Pulse Tempo Standardized | jSymbolic | The magnitude of the tempo-standardized beat histogram bin with the second-highest magnitude. | Descriptor | ||
| Strength Of Strongest Rhythmic Pulse | jSymbolic | The magnitude of the beat histogram bin with the highest magnitude. | Descriptor | ||
| Strength Of Strongest Rhythmic Pulse Tempo Standardized | jSymbolic | The magnitude of the tempo-standardized beat histogram bin with the highest magnitude. | Descriptor | ||
| Strength Ratio Of Two Strongest Rhythmic Pulses | jSymbolic | Ratio of the magnitude of the strongest to second-strongest rhythmic pulse. | Descriptor | ||
| Strength Ratio Of Two Strongest Rhythmic Pulses Tempo Standardized | jSymbolic | Ratio of the magnitude of the strongest to second-strongest rhythmic pulse (120-BPM standardized histogram). | Descriptor | ||
| Strong Tonal Centres | jSymbolic | Counts the number of isolated peaks in the pitch class histogram that each account for at least 9% of notes, arranged according to the circle of fifths. | Descriptor | ||
| Strongest Rhythmic Pulse | jSymbolic | The bin index (BPM) of the maximum beat histogram magnitude. | Descriptor | ||
| Strongest Rhythmic Pulse Tempo Standardized | jSymbolic | The bin index (BPM) of the maximum in the 120-BPM standardized beat histogram. | Descriptor | ||
| Syncopation | Novel | Longuet-Higgins & Lee (1984) | Calculate the mean `syncopation` value based on the Longuet-Higgins and Lee (1984) model. This `syncopation` model assigns metrical weights to each note position based on its position in the metric hierarchy. Syncopation occurs when a rest or tied note is preceded by a sounded note of lower metrical weight. The `syncopation` value is the difference between the rest weight and the preceding note weight. | Descriptor | |
| Syncopicity | SIMILE | Calculates the sum `syncopicity` of a melody across metric levels. Syncopicity measures the degree to which notes occur off the main metrical grid but are long enough to span across metric boundaries. This calculates syncopations at four metric levels: 1) Half bar level 2) Beat level 3) First subdivision (half-beat) 4) Second subdivision (quarter-beat) An event is considered syncopated at a given level if: 1) It does not fall on a grid point of this level 2) It falls on a grid point of the next lower level 3) Its IOI extends beyond the lower level time unit (or it's the last note) | Descriptor | Grid durations are derived from the melody's initial meter and tempo and therefore assume constant meter/tempo over the analyzed passage. | |
| TFDF Kendall | FANTASTIC | Kendall's tau rank correlation between melody TF and corpus DF for each m-type. Similar to ``tfdf_spearman``, but ordinal association is measured with Kendall's tau instead of Spearman's rho. Positive values mean higher within-melody usage tends to coincide with higher corpus-wide prevalence across m-types; negative values mean the opposite; near zero means little monotonic rank association. | Descriptor | ||
| TFDF Spearman | FANTASTIC | Spearman rank correlation between TF and DF over m-types. Positive values mean higher within-melody usage tends to coincide with higher corpus-wide prevalence across m-types; negative values mean the opposite; near zero means little monotonic rank association. | Descriptor | ||
| Tempo Variability | jSymbolic | The duration-weighted variability of tempo across the melody. | Descriptor | ||
| Tessitura | MIDI Toolbox | von Hippel (2000). | Tessitura is based on standard deviation from median pitch height. The median range of the melody tends to be favoured and thus more expected. Tessitura predicts whether listeners expect tones close to median pitch height. Higher `tessitura` values correspond to melodies that have a wider range of pitches. | Sequence | |
| Tessitura Std | MIDI Toolbox | The standard deviation of the sequence of `tessitura` values. | Descriptor | ||
| Tonal Clarity | FANTASTIC | Temperley (2007) | The ratio between the top two key correlation values. | Descriptor | |
| Tonal Entropy | Novel | Zeroth-order base-2 entropy of the 24-key Krumhansl-Schmuckler key correlation distribution. Normalizes the correlation values to a probability mass over all 24 major/minor keys, then computes Shannon entropy. | Descriptor | ||
| Tonal Spike | FANTASTIC | The ratio between the highest key correlation and the sum of all other correlations. | Descriptor | ||
| Tonal Tension | Partitura | Herremans & Chew (2016) | Computes tension ribbons using the tonal tension algorithm. Provides a means of comparing Chew's spiral array and the tonal tension profiles produced from Herremans and Chew's tension ribbons. This returns a dictionary containing the cloud diameter, cloud momentum, tensile strain, ordered by onset. | Sequence | |
| Tonalness | FANTASTIC | Krumhansl (1990) | The magnitude of the highest correlation with a precomputed key profile. This key profile is established and elaborated on in Krumhansl (1990). | Descriptor | |
| Tonalness Histogram | Novel | Krumhansl (1990) | Equal-width histogram of all 24 Krumhansl-Schmuckler key correlations. | Sequence | |
| Variability In Rhythmic Value Run Lengths | jSymbolic | The standard deviation of rhythmic value run lengths. Run length is the number of consecutive notes with the same rhythmic value. | Descriptor | ||
| Variability Of Complete Rest Durations | jSymbolic | The standard deviation of complete rest durations in quarter notes (ignoring rests shorter than 0.1 QN). | Descriptor | ||
| Variability Of Note Durations | jSymbolic | The standard deviation of note durations in seconds. | Descriptor | ||
| Variability Of Rhythmic Value Offsets | jSymbolic | The standard deviation of rhythmic value offsets (in quarter notes). | Descriptor | ||
| Wp Entropy | MUST | The weighted permutation entropy of a melody's pitch sequence. Classifies each consecutive 3-note pitch window into one of 13 order signatures, weights each class by the standard deviation of the three pitches, and computes Shannon entropy over the resulting distribution. | Descriptor | Entropy is computed with the natural logarithm, consistent with the MUST Toolbox `shentropy` implementation. |
|
| Yule's K | FANTASTIC | Yule (1944) | Yule's K measure of m-type repetitiveness. This lexical-diversity feature is calculated from the frequency spectrum of m-types in the melody. Higher values indicate that a smaller set of m-types is repeated more often, whereas lower values indicate a more even or varied m-type vocabulary. | Descriptor |
Sources
- FANTASTIC: Müllensiefen, D. (2009). Feature ANalysis Technology Accessing STatistics (In a Corpus): Technical Report v1.5
- jSymbolic: McKay, C., & Fujinaga, I. (2006). jSymbolic: A Feature Extractor for MIDI Files
- IDyOM: Pearce, M. T. (2005). The construction and evaluation of statistical models of melodic structure in music perception and composition
- MIDI Toolbox: Eerola, T., & Toiviainen, P. (2004). MIDI Toolbox: MATLAB Tools for Music Research
- MUST: Clemente, A., Vila-Vidal, M., Pearce, M. T., et al. (2020). A Set of 200 Musical Stimuli Varying in Balance, Contour, Symmetry, and Complexity
- Melsim: Silas, S., & Frieler, K. (n.d.). Melsim: Framework for calculating tons of melodic similarities
- Simile: Müllensiefen, D., & Frieler, K. (2004). The Simile algorithms documentation 0.3
- Novel: Custom features introduced in this package
Feature Types
- Descriptor: Returns a single scalar value (int, float, bool)
- Sequence: Returns a collection (list, tuple, dict, etc.)