Apps Part of Tonegrid

Practice Log Report (Minutes, Streaks & Tempo Progress)

Turn a practice log into minutes per week, a 12-week heatmap, streaks and tempo progress per piece.

CSV header with at least date (YYYY-MM-DD) and minutes; optional piece, bpm, target_bpm and note. Comma, semicolon or tab separated.

Last day of the report. Empty = the date of the latest session.

Try an example: ·

More about this tool

How it works

Paste a practice log as CSV (date, minutes, piece, tempo, target) or the journal file exported from the Tonegrid app, and get your total and weekly practice time, active days and streak, a calendar heatmap, and for every piece the tempo you started at, the latest and best tempo and how close you are to the target.

  • Sessions on or before the report date within the chosen number of whole weeks (Monday to Sunday, the last week contains the report date) are counted. Minutes per day are summed; the heatmap shades a day by 1–24, 25–74, 75–149 or 150 and more minutes (the scale of Focus Room’s session log).
  • The streak counts consecutive days with practice ending on the report date, or on the day before when the report date has no session yet. Tempo progress uses the sessions with a tempo: first, latest and best tempo, and the latest tempo as a percentage of the piece’s target.

Your log is only used for this report and is not stored.

Sources

Part of Tonegrid

  • Tonegrid Tone matrix & beat sequencer

    Light up squares to build melodies, beats and acid bass, then arrange them into songs.

    Open Tonegrid

Related tools

How to use the Practice Log Report

Turn a practice log into totals, minutes per week, a calendar heatmap, streaks and the tempo progress of every piece towards its target.

What it is for

Writing down what you practised, for how long and at what tempo is one of the simplest habits that keeps musicians improving. A list of dates and minutes alone is hard to read, though. The Practice Log Report turns it into the picture you want: how much you practised this week and over the last weeks, on how many days, how long your current streak is, and for every piece how far the tempo has come towards your goal.

Paste a CSV with a header row — at least date and minutes, optionally piece, bpm, target_bpm and note — or the journal file exported from the practice journal in Tonegrid's Practice view. The app shows the same report from the same engine. Your log is only used for this report and not stored.

Worked example

The first example is a five-week piano log with two pieces, Bach Prelude in C (target 96 BPM) and Scales (target 120 BPM). The report says: "6 h 0 min of practice in 13 sessions over the last 12 weeks up to 2026-11-08, on 13 days; current streak 1 day." This week has 100 minutes and the average practice day 27.7 minutes.

In the pieces table the prelude has 235 minutes in 7 sessions, from a first tempo of 72 to a latest and best of 92 BPM: 95.8 % of the target. Scales went from 100 to 116 BPM, 96.7 % of 120. The weekly bars read 90, 55, 65, 50 and 100 minutes for the last five weeks.

A shorter study log with an étude and some sight-reading —

date,minutes,piece,bpm,target_bpm
2026-05-04,30,Etude 7,60,84
2026-05-05,25,Etude 7,62,
2026-05-06,30,Etude 7,64,
2026-05-07,20,Sight-reading,,
2026-05-11,35,Etude 7,68,
2026-05-12,30,Etude 7,70,

— over 4 weeks gives 2 h 50 min in 6 sessions, a streak of 2 days, and the étude at 70 BPM, 83.3 % of its target of 84. Sight-reading has minutes but no tempo, so its tempo columns stay empty.

How to read the result

  • Practice time, This week, Days with practice, Streak and Average per practice day cover the chosen weeks up to the report date.
  • The heatmap shades each day by 1–24, 25–74, 75–149 and 150 or more minutes; the bars beside it show the minutes per week.
  • The Pieces table gives minutes, sessions and the first, latest and best tempo. Progress is the latest tempo as a percentage of the target.
  • The tempo chart draws one line per piece, with the target as a dashed line.

Tips and common mistakes

  • Dates must be written as 2026-11-08. Semicolon- and tab-separated files work as well as commas.
  • The target belongs to the piece: write it once in any row, the last one wins.
  • Leave Report date empty to end the report on the latest session, or set it to see an earlier period.
  • The streak counts back from the report date; a report date without a session still counts the days before it.
  • Weeks run from Monday to Sunday, so a report on a Wednesday shows a short current week.

FAQ

Where does the log come from?

From any spreadsheet, or from the Tonegrid practice journal: Export CSV or Save journal file there, then paste the content here.

Why is a piece missing from the table?

Only sessions inside the chosen weeks count. Pick more weeks or a later report date.

Does it judge how well I practised?

No. It counts minutes and tempos; the quality of the practice is up to you.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://tonegridpracticereport.usefulweb.app/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://tonegridpracticereport.usefulweb.app/mcp · tool name tonegrid_practice_report
Example request
curl -s -X POST https://tonegridpracticereport.usefulweb.app/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"journal":"date,minutes,piece,bpm,target_bpm,note\n2026-10-05,25,Bach Prelude in C,72,96,hands separately\n2026-10-06,20,Scales,100,120,\n2026-10-08,30,Bach Prelude in C,76,96,\n2026-10-11,15,Scales,104,120,\n2026-10-13,35,Bach Prelude in C,80,96,left hand cleaner\n2026-10-17,20,Scales,108,120,\n2026-10-20,40,Bach Prelude in C,84,96,\n2026-10-22,25,Scales,112,120,\n2026-10-27,30,Bach Prelude in C,88,96,\n2026-10-29,20,Scales,112,120,\n2026-11-02,45,Bach Prelude in C,90,96,run-through\n2026-11-04,25,Scales,116,120,\n2026-11-08,30,Bach Prelude in C,92,96,","weeks":12}'
Feedback · ideas & bug reports welcome