文档

music-practice-buddy

试用

Analyze instrumental practice recordings to detect timing accuracy, pitch stability, tempo consistency, and dynamic range. Generates practice reports with targeted exercise recommendations. Use when practicing an instrument and wanting objective feedback on performance.

它能做什么

Music Practice Buddy listens to your practice recordings and tells you what you can't hear yourself: timing inconsistencies, pitch drift, tempo fluctuations, and dynamic imbalances. It provides objective, measurable feedback that accelerates the practice loop — record, analyze, adjust, improve.

技能文档

Music Practice Buddy

Overview

Music Practice Buddy listens to your practice recordings and tells you what you can't hear yourself: timing inconsistencies, pitch drift, tempo fluctuations, and dynamic imbalances. It provides objective, measurable feedback that accelerates the practice loop — record, analyze, adjust, improve.

Most musicians practice for years without knowing exactly what to fix. They sound "off" but can't pinpoint why. This tool turns vague feelings into specific, actionable data: "Your tempo drifted 8% faster in measures 17–24" or "Your pitch dropped 15 cents on high notes."

When to Use

  • You practice an instrument (guitar, piano, violin, voice, etc.) and want objective feedback
  • You're preparing for a performance, audition, or exam
  • You want to track improvement over time
  • You're self-teaching and don't have a teacher's ear
  • Don't use for: mastering/production analysis (this is practice feedback, not mixing tools)

How It Works

  1. Audio Loading — Reads WAV files (mono/stereo, any sample rate)
  2. Tempo Detection — Estimates BPM using onset detection and autocorrelation
  3. Timing Analysis — Detects note onsets, measures inter-onset intervals, flags inconsistencies
  4. Pitch Tracking — Extracts fundamental frequency over time using autocorrelation
  5. Dynamic Analysis — Measures RMS energy envelope, flags volume imbalances
  6. Report Generation — Produces a scored report with strengths, weaknesses, and exercises

Quick Start

# Analyze a practice recording
python scripts/practice_buddy.py analyze recording.wav

# Analyze with a target BPM for comparison
python scripts/practice_buddy.py analyze recording.wav --target-bpm 120

# Compare two recordings to track improvement
python scripts/practice_buddy.py compare week1.wav week2.wav

# Generate a practice plan based on analysis
python scripts/practice_buddy.py plan recording.wav --instrument guitar --minutes 30

# View practice history and improvement trends
python scripts/practice_buddy.py history

Analysis Metrics

Timing Score (0–100)

Measures how consistent your note timing is:

  • 90–100: Professional-level consistency
  • 70–89: Solid — minor inconsistencies
  • 50–69: Developing — noticeable rushing/dragging
  • Below 50: Needs work — significant timing issues

Pitch Stability Score (0–100)

Measures how steady your pitch is:

  • Based on frequency variation around the mean
  • Lower variation = higher score

Tempo Consistency (0–100)

Measures how steady your overall tempo is:

  • Compares detected BPM across different sections
  • Flags acceleration or deceleration

Dynamic Range (dB)

Measures the difference between loudest and quietest moments:

  • 6–12 dB: Good dynamic control for practice
  • >18 dB: May indicate inconsistent technique
  • <3 dB: May sound flat or mechanical

Workflow: The Practice Loop

Step 1: Record

Record yourself practicing a piece, scale, or exercise (WAV format).

Step 2: Analyze

python scripts/practice_buddy.py analyze practice_session.wav

Step 3: Review the report

The report highlights your weakest area with specific data.

Step 4: Get a targeted plan

python scripts/practice_buddy.py plan practice_session.wav --instrument guitar --minutes 20

Step 5: Practice the exercise, then re-record

python scripts/practice_buddy.py compare before.wav after.wav

Report Output Example

╔══════════════════════════════════════════════╗
║       🎵 PRACTICE ANALYSIS REPORT            ║
╠══════════════════════════════════════════════╣
║  Duration: 2:34 | Sample Rate: 44100 Hz     ║
╠══════════════════════════════════════════════╣
║  📊 SCORES                                   ║
║  Timing:     72/100  ████░░░░░░  Developing  ║
║  Pitch:      85/100  ████████░░  Solid       ║
║  Tempo:      68/100  ████░░░░░░  Developing  ║
║  Dynamics:   78/100  ██████░░░░  Solid       ║
║  ────────────────────────────────────        ║
║  OVERALL:    76/100  Solid with gaps         ║
╠══════════════════════════════════════════════╣
║  📝 ANALYSIS                                 ║
║  • Detected BPM: ~118 (target: 120)         ║
║  • Tempo drifted +5% in the second half      ║
║  • 3 timing gaps > 50ms detected             ║
║  • Pitch stable with minor dips on high notes║
╠══════════════════════════════════════════════╣
║  🎯 RECOMMENDED FOCUS: Timing               ║
║  → Practice with a metronome at 60% speed   ║
║  → Focus on transitions between sections     ║
╚══════════════════════════════════════════════╝

Common Pitfalls

  1. Recording in a noisy room. Background noise corrupts onset detection and pitch tracking. Record in the quietest space available.
  2. Analyzing recordings with effects. Reverb, distortion, and delay confuse the analyzer. Record dry (no effects) for practice analysis.
  3. Comparing scores across different pieces. A complex piece naturally scores lower than a simple one. Compare apples to apples — same piece, different attempts.
  4. Obsessing over a single score. One practice session is a data point, not a verdict. Track trends over weeks.
  5. Skipping the metronome. If timing score is low, the metronome is your fastest path to improvement. Don't practice without it.

Verification Checklist

  • practice_buddy.py analyze recording.wav produces a report with 4 scores
  • practice_buddy.py analyze recording.wav --target-bpm 120 compares to target
  • practice_buddy.py compare before.wav after.wav shows score differences
  • practice_buddy.py plan recording.wav --instrument piano --minutes 30 generates exercises
  • practice_buddy.py history shows logged sessions

References

  • references/audio-concepts.md — how onset detection, pitch tracking, and tempo estimation work
  • references/practice-methodology.md — evidence-based practice techniques for each weakness type

相关技能

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

voronindenis5 的更多技能

浏览全部技能

Prepare salary negotiations with a structured toolkit: market-rate anchoring math, walk-away floor calculation, total-compensation evaluation (equity, bonuses, benefits), negotiation scripts for offers, raises, and counter-offers, and BATNA analysis. Use when the user has a job offer, is preparing a raise conversation, wants to know if their pay is competitive, or needs scripts and a strategy for negotiating compensation.

作者 voronindenis51 次安装

Use when your calendar is eating your week and you want to know exactly where the time goes, when planning recurring meetings for a team, before proposing a new recurring meeting, when someone says 'we should sync weekly' and you want data, or when auditing which meetings to kill — imports ICS calendar files, measures meeting hours per week/person/meeting-series (including double-bookings and fragmentation), computes focus-time destruction from meeting placement, scores the true cost of each series (hours × attendees × frequency), flags specific meetings to kill/shorten/make-async using explicit rules, and simulates the recovered hours before anyone has to argue about it.

作者 voronindenis52 次安装

Audit password vault exports (Bitwarden, 1Password, KeePass, Chrome, Firefox) for reuse, weakness, staleness, breach exposure, and 2FA gaps without ever storing or transmitting a plaintext password. Use when the user asks to audit passwords, check password strength/reuse, review vault health, or verify whether credentials appeared in breaches.

作者 voronindenis51 次安装

Turn flat resume bullets ('Responsible for X') into quantified STAR-method achievement narratives, score resumes against job descriptions for ATS keyword coverage and weak-phrase hazards, and expand each bullet into interview-ready stories with likely follow-up questions. Use when the user is writing or updating a resume/CV, preparing bullets for a job application, tailoring a resume to a specific job posting, or preparing interview stories from their experience.

作者 voronindenis51 次安装

Agent self-awareness of cognitive states — context fatigue, attention drift, memory debt, confidence erosion, and skill staleness. Detect, report, and mitigate degrading conditions before they cause failures.

作者 voronindenis5