Skip to content

Repository files navigation

SpectraGlyph logo

SpectraGlyph

Hide your logo in sound. Reveal it in the spectrogram.

A Windows desktop app that paints images and text into the upper spectrum of an audio file — inaudible to the ear, crystal-clear to Audacity, Spek, or Sonic Visualiser.

CI Release Latest release Downloads License: MIT Python Qt Platform Languages

Spectrogram of an audio file with the word 'SpectraGlyph' painted into the 17–21 kHz band

Why it's cool

Human speech and most music concentrate energy below ~8 kHz. SpectraGlyph paints your image into the upper spectrum (classic "invisible" mode: 15–20 kHz), where everyday speakers, mics, and hearing barely notice — so the mix stays clean to the ear, yet the picture is crystal-clear the moment someone views a spectrogram. Same spirit as hidden art in game soundtracks — here tuned so you control time, band, and strength.


Features

Dual modes Invisible (>15 kHz) — watermark above the vocal/instrument body; Full range — use the whole spectrum for bolder visuals (may color the sound at high strength).
Image or text Drop PNG/JPG/WebP or type directly in the app — your message becomes part of the spectrum.
Masking toolkit Alpha, auto-detect background, remove white/black, chroma key (any color), luminance, invert — get a crisp mask without leaving the UI.
Live spectrogram Pan and resize the time × frequency region; preview updates follow your edits.
Play before you share ▶ Play the spectrogram view (original or watermarked) through your speakers to confirm it really is inaudible.
Export Write WAV, FLAC, or MP3 (with a heads-up when codecs affect watermark fidelity). After export, Open in Audacity or Show in folder with one click.
Recent files File → Recent files remembers the last eight audio files you loaded.
Presets + view guide Save recipes; copy FFT settings to the clipboard so viewers can paste the same view into Audacity and see exactly what you intended.
Languages Swedish and EnglishView → Language (saved under the paths in Localization).
Shortcuts & help Ctrl+O / Ctrl+I / Ctrl+E / Space; Help → Keyboard shortcuts… lists them.
Where data is stored Next to SpectraGlyph.exe: SpectraGlyph_data\ (settings + presets) when writable; otherwise %APPDATA%\SpectraGlyph. Window size and last open/save folders are remembered.
Long audio Files > ~2 min or > ~40 MB trigger a choice: load everything or only a time range (faster). Progress is shown while decoding and building the spectrogram.

Download (Windows .exe)

Grab the signed-by-GitHub-Actions binary from the latest release. Each stable build is attached as SpectraGlyph-<version>-Windows-x64.exe. Preview builds appear as pre-releases when changes are pushed to the release branch or the workflow is triggered manually.

SmartScreen note: the .exe is not code-signed with a commercial cert, so Windows may show a warning the first time you run it. Click "More info → Run anyway" if you trust this project.


How viewers reveal the watermark

  1. Open the exported file in Audacity, Spek, or Sonic Visualiser.
  2. Switch to spectrogram view (e.g. Audacity: track spectrogram).
  3. Typical settings that work well: FFT size 4096, Hann window, ~80 dB dynamic range.
  4. Scroll to the time range and frequency band you chose at export (use View guide in the app for a copy-paste cheat sheet).

Requirements

  • Windows (primary target; Qt + audio stack tested there)
  • Python 3.10+ (only if running from source)

Quick start (from source)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python main.py

Run tests:

pytest -q

Build a standalone .exe

pyinstaller pyinstaller.spec

Output: dist\SpectraGlyph.exe


Localization

The desktop UI is available in Swedish and English (View → Language in the app). Code comments and this README are primarily English so the project stays approachable for contributors worldwide.

Where settings are stored: If you run the built .exe, presets and language live in a folder next to the executable: SpectraGlyph_data\ (delete that folder together with the app). If the app cannot create that folder (e.g. install under Program Files without write access), it falls back to %APPDATA%\SpectraGlyph. Running from source (python main.py) always uses %APPDATA%\SpectraGlyph.


Project layout

  • main.py — application entry
  • src/spectraglyph/ — GUI, DSP, audio I/O, watermark core
  • assets/ — icon, logo, and bundled resources for builds
  • docs/ — README imagery (spectrogram hero, future screenshots)
  • scripts/generate_branding.py — regenerates assets/icon.* and docs/hero_spectrogram.png
  • tests/ — pytest coverage for mask/text, watermark embedding, and audio I/O

Repository


License

MIT — see LICENSE.

About

Hide your logo in sound — reveal it in the spectrogram. Windows desktop app that paints images and text into the upper band of an audio file (default 15–20 kHz), inaudible to the ear but crystal-clear in Audacity, Spek, or Sonic Visualiser. Built with PySide6, NumPy, and SciPy.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages