Skip to content

Releases: LinuxKernel44/SpectroFlac

SpectroFlac 1.3.0

Choose a tag to compare

@LinuxKernel44 LinuxKernel44 released this 03 Oct 14:16

SpectroFlac 1.3.0 — spectrogram export, thread presets, finish notification, permission prompts.

New

  • Export the spectrogram as a PNG at any resolution. The file is re-analysed at the size you ask for (a longer FFT for more rows, closer windows for more columns), so a bigger image really shows more detail. Pick Screen / 4K / 8K, any width x height (up to 32,768 rows and 1,000,000 columns), or Maximum, the finest the file allows within your free storage. The dialog shows the detail per pixel (FFT size, Hz per row, ms per column), the final image size, the estimated PNG size and time, and refuses sizes that do not fit.
  • Choose the channel (Mid, Left, Right, Side) and what the image contains: frequency and time axes, a header with the file, format and verdict, the track title and artist with a small cover, the measured cutoff line, and a dBFS colour legend. Save as... (you pick the place) or Share.
  • The PNG is streamed to disk, so memory stays small at any size: a 16384 x 16384 spectrogram (a 20275 x 19695 image) rendered in 47 s on a 4-core emulator with the Java heap around 40 MB. Exports keep running if you leave the app (notification with a Cancel button).
  • Thread presets in Settings: Quiet (a quarter of the cores, low priority), Balanced (Auto), Fast (all cores but one, full priority).
  • Notify when a scan finishes (on by default): "Scan complete: 123 files - 118 genuine, 4 not genuine, 1 damaged", shown even if the app is open; a tap opens the queue.
  • On the first scan the app explains, then asks for the notification permission and the battery-optimization exemption so long scans are not slowed down with the screen off. Settings has a Notifications and battery card showing both and letting you grant them later.

Fixes

  • Dialogs were see-through, so the screen behind showed through the text; they now have an opaque surface.

Notes

  • Signed with the same key as 1.1.x and 1.2.x: it updates them in place. 1.0.0 must be uninstalled first.
  • Tested on an emulator (120 unit tests, 74 instrumented tests, a real export through the system pickers on the release build). Not run on a real phone yet, so the heat thresholds, the Auto thread count and the render times are untested on real hardware. The PNG size shown in the dialog is a conservative upper bound.

SpectroFlac 1.2.0

Choose a tag to compare

@LinuxKernel44 LinuxKernel44 released this 03 Oct 12:56

SpectroFlac 1.2.0 — scan queue, parallel analysis and settings.

New

  • Parallel analysis: a folder scan now analyses several files at the same time. Auto uses half of the phone cores (4 on an 8-core phone) and backs off when the phone gets hot or Battery Saver is on; pick 1 to 8 yourself in Settings. (A single file still decodes on one thread; the speed-up comes from running several files together. On a 4-core emulator, 12 files took 7.9 s with 1 thread and 2.8 s with 4.)
  • Scan queue screen: an overall progress bar with files done, percentage and time left; one progress bar per running file; the waiting files (analyse next / remove); the finished files with filters, sorting and CSV / JSON export; Pause / Resume, Cancel all, Retry failed, Clear finished.
  • Background scans: a foreground service with one progress notification keeps a big scan going with the screen off, and stops by itself when the queue is empty.
  • Pick several files at once, share several files from a file manager, and add more while a scan runs. A single file still opens straight on its result.
  • Settings: files at once, background scan, thermal protection, low-priority threads, keep the screen on, pause below a battery level; skip files already analysed; offer to resume after a restart (default: start fresh); history size and auto-clean; auto-export a CSV / JSON into a folder you choose when a scan ends; liquid glass and animated backdrop switches.
  • Finished queue items keep only light results, so scanning thousands of files stays easy on memory. Tapping one re-analyses it to rebuild the charts.

Notes

  • Signed with the same key as 1.1.x: it updates 1.1.0 and 1.1.1 in place. 1.0.0 must be uninstalled first.
  • Android 13+ asks for the notification permission once, the first time a scan starts. If you refuse, scans still run without a visible notification.
  • Tested on an emulator (unit tests, 39 instrumented tests, a folder scan on the release build). Not yet run on a real phone, so the Auto thread count and the heat thresholds are untested on real hardware.

SpectroFlac 1.1.1

Choose a tag to compare

@LinuxKernel44 LinuxKernel44 released this 03 Oct 11:28

SpectroFlac 1.1.1 — calibration fixes from real-music testing.

Fixed

  • A genuine lossless track could get a "Joint-stereo coding artifacts" warning. The stereo-narrowing threshold went from 12 to 20 dB, and that signal alone is now informational only.
  • A loud Opus 128 kbps transcode was rated genuine: sparse clipping bursts blurred the peak-hold spectrum. The detector now falls back to the average spectrum when peak-hold finds no cut.
  • Vorbis q4 fingerprint band widened (19.1–19.45 kHz on real music).

Checked against a real 17-track lossless album and 21 lossy transcodes of three of its tracks: every genuine file came out genuine and every transcode was caught. That is still a small corpus; other encoders and other kinds of music may behave differently.

Signed with the same key as 1.1.0, so 1.1.0 updates in place. Installs of 1.0.0 must be uninstalled first (different signing key).

SpectroFlac 1.1.0

Choose a tag to compare

@LinuxKernel44 LinuxKernel44 released this 03 Oct 11:00

SpectroFlac 1.1.0 — interactive spectrogram, per-channel spectra and stereo analysis.

New

  • Interactive spectrogram: pinch to zoom (horizontal = time, vertical = frequency, diagonal = both), drag to pan, double-tap to zoom, a frequency/time/level cursor, Mid / Left / Right / Side views and a measured-cutoff overlay.
  • Spectrum chart with per-channel peak-hold and average curves.
  • Stereo analysis: left/right correlation (with a timeline), balance, width, out-of-phase passages, silent-channel and near-mono detection.
  • Joint-stereo artifact detection (supporting evidence only; never changes the verdict by itself).
  • Encoder fingerprints rebuilt from measured MP3 (CBR/VBR), AAC, Vorbis and Opus round trips.
  • Stereo values added to the text, CSV and JSON exports.

Important: this release is signed with a NEW key. Android will not update an existing 1.0.0 install over it — uninstall 1.0.0 first (the local history is not kept).

Limits: very high bitrate encodes (AAC 256+, LAME V0, Vorbis q6+) leave no spectral cut and cannot be detected; fingerprints were calibrated on synthetic noise through FFmpeg encoders.

SpectroFlac 1.0.0

Choose a tag to compare

@LinuxKernel44 LinuxKernel44 released this 14 Aug 17:13

First release. Signed APK, minSdk 29, no permissions, no network.

What it does

  • Decodes every sample of a .flac on device and gives a verdict: genuine, fake, damaged, or not a FLAC at all.
  • Catches lossy transcodes (brick wall in the peak-hold spectrum, matched to encoder profiles), fake hi-res (upsampled), padded 24-bit, renamed MP3s, MD5/CRC damage.
  • Reports the headline spec (24 BIT 44.1KHZ 1616 KBPS FLAC), full technical detail, the spectral reasoning, integrity, levels and dynamics, encoder fingerprints, tags and cover.
  • Single file, whole-folder scan, share-to, local history, text/CSV/JSON export.
  • Liquid glass interface: real AGSL refraction with chromatic dispersion on Android 13+, frosted fallback below.

Verified

  • The decoder is bit-exact against the MD5 stored by the encoder on every test file (silence, incompressible noise, 24/192 at compression level 12, mono, 8 kHz, wasted bits).
  • Detection checked against files of known provenance: MP3 128/320, AAC 128, upsampled 24/96, padded 24-bit — all caught; genuine 16/44.1, 24/96 and a dull-but-lossless master — all cleared.
  • Analysis runs at roughly 80x realtime on a desktop core.

Install: download the APK and open it on the phone (allow installs from your browser/file manager when asked).