jdxi_editor.midi.track.stats ============================ .. py:module:: jdxi_editor.midi.track.stats .. autoapi-nested-parse:: Track classification utilities for MIDI files. This module provides functions to classify MIDI tracks into categories: - Bass: Low-pitched, monophonic or low polyphony tracks - Keys/Guitars: Wide range, polyphonic tracks (piano, guitar, etc.) - Strings: Sustained, legato tracks with ensemble-like patterns Classes ------- .. autoapisummary:: jdxi_editor.midi.track.stats.TrackStats Module Contents --------------- .. py:class:: TrackStats Track Stats .. py:attribute:: track_index :type: int .. py:attribute:: track_name :type: str | None :value: None .. py:attribute:: channels :type: set[int] .. py:attribute:: note_count :type: int :value: 0 .. py:attribute:: notes :type: list[int] :value: [] .. py:attribute:: velocities :type: list[int] :value: [] .. py:attribute:: lowest_note :type: int :value: 127 .. py:attribute:: highest_note :type: int :value: 0 .. py:attribute:: bass_note_count :type: int :value: 0 .. py:attribute:: mid_range_note_count :type: int :value: 0 .. py:attribute:: high_note_count :type: int :value: 0 .. py:attribute:: note_ons :type: list[tuple[int, int, int]] :value: [] .. py:attribute:: note_offs :type: list[tuple[int, int]] :value: [] .. py:attribute:: has_pitch_bend :type: bool :value: False .. py:attribute:: has_control_change :type: bool :value: False .. py:attribute:: program_changes :type: list[int] :value: [] .. py:attribute:: avg_note_duration :type: float :value: 0.0 .. py:attribute:: max_simultaneous :type: int :value: 0 .. py:attribute:: note_range :type: int :value: 0 .. py:attribute:: legato_score :type: float :value: 0.0 .. py:attribute:: scores :type: dict[str, float]