3.4
Release details
- Application
- Octave
- Bundle ID
- streaming.octave.dev
- Release date
- August 6, 2026
- Platform
- iOS
- Architecture
- Unknown
- Minimum OS
- 18.0
- File size
- Unknown size
- Artifact
- Verified · available
Tapping Download on a long list could end with one song being attempted again and again, its progress climbing to 100%, dropping to 90%, climbing back and then failing, while everything behind it sat waiting. Almost none of that was the track being difficult. Downloads are tagged as they stream — Octave writes the title, artist and cover art into the file on the way past — and a streamed reply loses the header that states how many bytes are coming. That one missing number caused most of this. Progress had to be estimated from the song's length and bitrate, which for anything not encoded at a constant rate reads 100% while bytes are still arriving. A connection that died part-way through ended the transfer cleanly enough to look finished, so a half-written song was saved to your library with a real entry, played as far as it got, and was then found short by the next launch's integrity check, deleted and fetched again — the other half of why downloads appeared to repeat themselves indefinitely. And because nothing identified the file, an interrupted download could not be continued: it began again at byte one, so a connection bad enough to break a large lossless track once broke the retry too, and after a few attempts the song was written off. All of that is fixed. The real size is sent with every download and checked against what lands, so a short file is a failed attempt that gets retried rather than a saved song that is quietly broken. Interrupted downloads resume from the byte they reached instead of starting over. The progress bar adds up genuine progress and never moves backwards. And when the servers say a particular track cannot be served for the next quarter of an hour, Octave stops holding the download open waiting on it — it parks that song, finishes the rest of the list, and tells you at the end which one it could not get.
Screenshots
Nothing here yet
No screenshots have been archived for this specific version.