Releases: princess-pixels/voice-training
Release list
voice-training v1.2.0
Fixed
- Import archives are a trust boundary: manifest paths are confined to the archive,
symlinks are refused, a stored audio type has to be one, and every record is held to
the same rules as the API routes. One bad record is reported, not fatal. - Today's Practice adopts the new day after midnight, on the server's calendar.
- Deleting a session detaches it from the practice steps it was attached to.
- A proper error page for unknown routes and stale take links.
- The pitch graph no longer draws a line across breaths and pauses.
- Every page has its own title; one h1 per page.
- The sessions list is a card list on phones instead of a clipped table.
- YIN prefers the dip at double the lag when it is clearly deeper, so a weak
fundamental no longer reads an octave high; and it analyses the newest part of the
frame, taking ~30 ms off the live readout's delay. - Malformed API bodies answer 400 with a message, never 500.
- A failed save on the practice page keeps the step and its seconds instead of moving
on; the step rail is tappable; a finished step can be reviewed from the summary. - Microphone failures explain what to do; Settings no longer waits forever for a
device list. - Keyboard focus survives a whole take: one Start/Stop button, focus into the summary.
- Deleting a take removes the row before the file, and the empty folder with it.
- Total Practice Time counts routine time like the streak does; audio keys and export
names use the local day.
Changed
- Pitch is graded against the user's own target range (below / in / above target)
instead of fixed feminine / androgynous / masculine thresholds. - The headline pitch of a take, the session list, the dashboard and the trend is now
the median of the voiced frames, which a laugh or a glide cannot pull up the way
the mean was; the mean is still shown under it. Existing sessions get their median
computed from their stored points on first start (schema 2). - Export is a same-origin POST, one at a time.
- Screen readers hear state changes (recording, saved, errors) and a quiet cents
readout; animation honours reduced motion; canvas labels meet AA. - The
?day=&step=record flow, superseded by the embedded studio, is removed.
Added
src/lib/server/validate.ts: every input rule in one tested module.src/server.test.ts: the built server end to end over HTTP, run in CI after the
build;bun run coverage:gaplists what the coverage number leaves out.engines,packageManagerandauthorin package.json; a dependabot config.
One file, no install. Download the build for your machine, unpack it, run it, and the app opens in your browser at http://localhost:3000. Your data goes to your user data folder; voice-training --help lists the options.
| Platform | File |
|---|---|
| Linux x64 | voice-training-linux-x64.tar.gz |
| Linux arm64 (Raspberry Pi 4/5 and similar) | voice-training-linux-arm64.tar.gz |
| macOS Apple silicon | voice-training-darwin-arm64.tar.gz |
| macOS Intel | voice-training-darwin-x64.tar.gz |
| Windows x64 | voice-training-windows-x64.zip |
The binaries are not code-signed. macOS: right-click the file, choose Open, and confirm once. Windows: on the SmartScreen prompt choose "More info", then "Run anyway". SHA256SUMS.txt lets you verify a download.
What's Changed
- voice-training 1.2.0: the round 3 audit by @princess-pixels in #1
New Contributors
- @princess-pixels made their first contribution in #1
Full Changelog: v1.1.0...v1.2.0
voice-training v1.1.0
New in 1.1.0: reference notes. A strip of notes around your target range sits under the pitch graph in the recording studio. Tap one to hear it (a short blip, or sustained), it is drawn as a line on the graph, and a readout says how far sharp or flat you are while you hum, with "On it" inside 10 cents. Arrow keys step a semitone. The pitch exercises that used to send you to a piano app or tuner now point at the strip.
One file, no install. Download the build for your machine, unpack it, run it, and the app opens in your browser at http://localhost:3000. Your data goes to your user data folder; voice-training --help lists the options.
| Platform | File |
|---|---|
| Linux x64 | voice-training-linux-x64.tar.gz |
| Linux arm64 (Raspberry Pi 4/5 and similar) | voice-training-linux-arm64.tar.gz |
| macOS Apple silicon | voice-training-darwin-arm64.tar.gz |
| macOS Intel | voice-training-darwin-x64.tar.gz |
| Windows x64 | voice-training-windows-x64.zip |
The binaries are not code-signed. macOS: right-click the file, choose Open, and confirm once. Windows: on the SmartScreen prompt choose "More info", then "Run anyway". SHA256SUMS.txt lets you verify a download.
Full Changelog: v1.0.1...v1.1.0
voice-training v1.0.1
One file, no install. Download the build for your machine, unpack it, run it, and the app opens in your browser at http://localhost:3000. Your data goes to your user data folder; voice-training --help lists the options.
| Platform | File |
|---|---|
| Linux x64 | voice-training-linux-x64.tar.gz |
| Linux arm64 (Raspberry Pi 4/5 and similar) | voice-training-linux-arm64.tar.gz |
| macOS Apple silicon | voice-training-darwin-arm64.tar.gz |
| macOS Intel | voice-training-darwin-x64.tar.gz |
| Windows x64 | voice-training-windows-x64.zip |
The binaries are not code-signed. macOS: right-click the file, choose Open, and confirm once. Windows: on the SmartScreen prompt choose "More info", then "Run anyway". SHA256SUMS.txt lets you verify a download.
Full Changelog: v1.0.0...v1.0.1
voice-training v1.0.0
One file, no install. Download the build for your machine, unpack it, run it, and the app opens in your browser at http://localhost:3000. Your data goes to your user data folder; voice-training --help lists the options.
| Platform | File |
|---|---|
| Linux x64 | voice-training-linux-x64.tar.gz |
| Linux arm64 (Raspberry Pi 4/5 and similar) | voice-training-linux-arm64.tar.gz |
| macOS Apple silicon | voice-training-darwin-arm64.tar.gz |
| macOS Intel | voice-training-darwin-x64.tar.gz |
| Windows x64 | voice-training-windows-x64.zip |
The binaries are not code-signed. macOS: right-click the file, choose Open, and confirm once. Windows: on the SmartScreen prompt choose "More info", then "Run anyway". SHA256SUMS.txt lets you verify a download.
Full Changelog: https://github.com/princess-pixels/voice-training/commits/v1.0.0