v0.24.0 — SingZ learns two more languages, and the phone hands its songs over
SingZ now speaks Russian and Simplified Chinese. On iPhone, and on Android 13 and later, you choose the app's language in your phone's settings; older Android phones follow the device language. Songs kept only on this phone move into your Google Drive library in one go, and the computer takes them in on its next sync. A silence is fixed: every stem went quiet for the rest of a song if you pressed Play after it had ended, or scrubbed back out of its last seconds, while the metronome clicked on.
SingZ теперь говорит по-русски и на упрощённом китайском. На iPhone и на Android 13 и новее язык приложения выбирается в настройках телефона, на более старых Android — следует языку устройства. Песни, лежащие только на телефоне, переезжают в библиотеку Google Drive за один раз, а компьютер примет их при следующей синхронизации. Исправлена тишина: все дорожки замолкали до конца песни, если нажать «Воспроизвести» после её окончания или отмотать назад с последних секунд, а метроном щёлкал.
Everywhere:
-
SingZ speaks Russian and Simplified Chinese. Every word in the app —
menus, dialogs, the errors that appear when something goes wrong — is
translated. On the computer there is a flag beside the gear in the title
bar: pick a language or follow the system, and it changes under you with
a song playing. The phones have no picker on purpose; they follow the
language you give the app in the OS (iOS Settings › SingZ › Language,
Android 13+ Settings › Apps › SingZ › Language) and pick up a change the
moment you come back to the app. Android 9 to 12 have no per-app
language setting, so those phones follow the device language. Stem, key
and interval names are translated where you read them. -
Your stems come back after the song has run out. Press Play once a
song had played to its end, or scrub back out of its last few seconds,
and every stem went silent for the rest of that song while the metronome
clicked away as if nothing were wrong. Nothing on screen let on: the
button, the bar and the transport all moved normally. It happened on
ordinary songs — 44.1 kHz stems on a 48 kHz output is the common case —
and it has been there since streaming became the default (0.21.1 on the
computer, 0.21.0 on the phones). Reported by a Windows singer as "the
metronome plays, but the stems don't", which is exactly what it was.
On the phone:
-
One offer moves your songs into Google Drive. Below the songs kept
on this phone there is now a single offer — "Add all local songs to
Google Drive", with how many and how big — instead of a per-song swipe
nobody ever found. They go up one after another under a progress card
with a Stop button, each leaving "This phone" the moment it is safely in
Drive and playing from the Drive tab already downloaded. A closing
dialog says what went up, and in plain words what stayed behind and why.
A song is on this phone or in Drive, never both and never neither: a
move cut off by a dead signal, a killed app or a Stop is picked up where
it left off. The computer adopts the moved songs into its own library on
its next sync. A song you never split goes too: a vocal exercise, or any
backing track meant to be sung over whole, is not an unfinished song —
it moves, and it plays from the Drive tab like the rest. Tap Split on one
there and it comes home first — same as if you'd dragged it over
yourself — then splits like any other song. -
"Also in Google Drive" is checked against Drive. The badge used to
trust a saved listing, so a song the library already held could claim
otherwise. It asks Drive now — and only when the answer could change
a badge, so the library still opens instantly and offline. -
iPhone: songs whose titles start with a dot come back. Add a song
called ".hack" — or anything whose name opens with a dot — and it went
into a folder iOS treats as hidden. The add succeeded, no error
appeared, and the song simply never showed up in This iPhone. Android
lists hidden folders, which is why only the iPhone ever lost a song this
way. Such titles now get a folder the library can see, and any song an
older build already swallowed reappears — This iPhone lists hidden
song folders now, so it lists, opens and deletes like any other.
On the computer:
-
The playhead and the music finally agree. Four separate ways the bar
told a small lie, all fixed: Play moved it before the sound arrived and
then stepped it back (about 10 ms on this Mac's own speakers, 150 ms for
a transposed song, up to 250 ms over Bluetooth); Pause stepped it
backwards by up to 130 ms before settling; a seek while playing showed
its target and held it there while the music played on past it, then
jumped forward to catch up; and a short A-B loop redrew its tail for a
frame after wrapping. The bar now moves when the music does, and never
goes backwards on its own. -
An A-B loop set ahead of the playhead waits its turn. Mark a loop
further down the song while it plays, and the bar used to drop straight
into the loop's tail. It plays on to A now, the way you meant it. (The
phones draw their bar differently and never showed this.) -
Play starts sooner. Opening the output no longer walks every audio
device on the machine to read its channel names, and the first position
arrives on its own beat instead of waiting for the next poll. -
A song file named with dots stays inside your library. A loose file
called "...mp3" was filed under a name that resolved to the folder
above, so its project.json, song and stems were written into the
library's parent — and "..mp3" wrote straight into the library root.
Such names now fall back to a real folder, "Untitled song" if nothing
is left of the title. -
Windows: the glass comes back on a strong graphics card. Every
frosted surface was turned solid on Windows for the sake of the weaker
machines in the family. SingZ now looks at the card it is actually
drawing on and restores the blur when it can afford it (any RTX, a GTX
1050–1660, a Radeon RX above Polaris 12, Arc A/B), and takes it back if
Windows drops to software drawing. Weak cards stay solid, which is the
point. -
Windows: the player costs far less to draw. The glow around each
lane is painted into the waveform once instead of being re-blurred every
frame, which on the oldest laptop in the fleet took the playing player
from 57% of the graphics card down to 20%. Pans and zooms now land at
most once per frame and redraw each lane once: dragging a zoomed view
used to run at about 4 fps there, with a single wheel notch reaching the
screen a third of a second late. And two more blurs are gone: dragging a
song in used to frost the whole window over the song still playing
behind it, and the vocal training screen's glass head and listening
dock stayed frosted for as long as a note was held. On that laptop the
drop overlay alone cost about a third of the graphics card, and training
nearly halved the app's own processor time. -
The lanes look right again. The brightness step between played and
unplayed audio sits exactly on the playhead, whatever the zoom; the part
you haven't reached sits back in shadow instead of reading as flat; and
each lane's halo glows in the lane's own colour rather than white. -
Every launch keeps its log. The log used to live in memory and die
with the app — unhelpful, since restarting is the first thing anyone
does when something goes wrong. SingZ now writes each launch to its own
file and keeps the last ten, and the Log dialog has a picker to read,
copy or save an earlier one. -
Muted-track chips say what the track is called. In "Muted while you
sing:", a Backing vocals lane read "custom-backing-vocals" and your own
added track read its file name, and renaming a lane never reached its
chip. They use the lane's real name now.