Skip to content

Restore granular per-note feedback behind a show_detail parameter #24

Description

@peterbjohnson

compare_MIDI.py has two renderers: polished_feedback_message (live) and generate_feedback_message, now reachable only from one cell in Phase1-1.5_summary.ipynb. The detail renderer was superseded because an inaccurate transcription produces inaccurate per-note claims — not because granularity lacks value. Make it available on request instead of deleting it.

Rename by role. polished_feedback_messagesummary_feedback, generate_feedback_messagedetail_feedback. In feedback_messages.py, replace the # Current version / # Old version headers with # --- summary --- / # --- detail ---.

Compose, don't branch. Detail is an extra section, not an alternative report:

def build_feedback(..., show_detail=SHOW_DETAIL):
    parts = [summary_feedback(...)]
    if show_detail:
        parts += [detail_caveat_message, detail_feedback(...)]
    return "\n\n".join(parts)

SHOW_DETAIL = False joins the module-level defaults, teacher-overridable via params like the thresholds. compare_performance_ED (line 1413) calls build_feedback.

Warn about transcription in the output. A detail_caveat_message constant above the detail section: these per-note details come from an automatic transcription and may be inaccurate.

Fix the duration direction first. Line 715 stores abs(...), so direction at line 1053 is always "longer" and students never see "shorter". Keep the sign; take abs() at display. (Previously the first bullet of #16, now removed from there.)

Drop Part 1 of detail_feedback. It repeats the summary in an older voice. Keep note and chord detail; delete the overview_* constants left unused.

Line numbers are for the post-#23 file.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions