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.
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.
| 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 English — View → 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. |
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
.exeis 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.
- Open the exported file in Audacity, Spek, or Sonic Visualiser.
- Switch to spectrogram view (e.g. Audacity: track spectrogram).
- Typical settings that work well: FFT size 4096, Hann window, ~80 dB dynamic range.
- Scroll to the time range and frequency band you chose at export (use View guide in the app for a copy-paste cheat sheet).
- Windows (primary target; Qt + audio stack tested there)
- Python 3.10+ (only if running from source)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python main.pyRun tests:
pytest -qpyinstaller pyinstaller.specOutput: dist\SpectraGlyph.exe
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.
main.py— application entrysrc/spectraglyph/— GUI, DSP, audio I/O, watermark coreassets/— icon, logo, and bundled resources for buildsdocs/— README imagery (spectrogram hero, future screenshots)scripts/generate_branding.py— regeneratesassets/icon.*anddocs/hero_spectrogram.pngtests/— pytest coverage for mask/text, watermark embedding, and audio I/O
- Product name: SpectraGlyph
- Upstream: github.com/joenb33/spectraglyph
- Security: see SECURITY.md
- Contributing & release process: see CONTRIBUTING.md
- Changelog: see CHANGELOG.md
MIT — see LICENSE.