You are browsing as a guest. Sign up (or log in) to start making projects!

Ship #1 Pending review

Spectralis shiplarp — v5.3.0

—shipped it—

Notepads. A spin wheel. Dead zones that aren’t OBS-only anymore. Playlists that don’t look like a log file. Spotify that actually behaves. That’s the version.

—what’s in it—

  • Notepad system: docked panel, tabs, pop-out window, saves to track tags
  • Spin wheel: weighted entries, saved wheel lists, notepad-fed
  • Dead zones now shift the app’s own layout, not just OBS overlays
  • Spotify: playlist sync, queue, pause, and Discord presence all fixed
  • Fixed: playlist rows missing RowBackground (looked like a terminal, my bad)
  • Fixed: nav rebuilding the entire view every click
  • Fixed: library load blocking window open on big libraries
  • Fixed: spectrum bars snapping instead of moving (FFT overlap bumped to 75%)
  • Fixed: soundcloud playhead, word-mode timestamp export, track-switch click/pop

—that’s it—

PICKLE!!!

  • 2 devlogs
  • 23h
Try project → See source code →
Open comments for this post

6h 7m 27s logged

Spectralis devlog #2
—Hello again proggers—
New project, same yapping. This one’s Spectralis — the WinForms-to-Avalonia refugee that somehow ended up with a spin wheel, notepads, dead zones, and Spotify playlist sync bolted onto it. 917 commits deep and counting.
Cat or dog? RowBackground
print(f”I try to make stu{2f} which {actually_renders} {2day}”)
Okay let’s get into it~
—Yap—
This stretch was less “one big feature” and more “death by a thousand small horrors,” which honestly might just be what maintaining a music app is. Playlists, now playing, the visualizer pipeline, and a wheel of all things all got touched.
a spin wheel. in a music app. sure
—The Great Suffering—
1 — Playlists Looked Like a Log File
For way too long, the playlist view rendered like plain rows in a terminal instead of, y’know, an app. Turns out library explicitly set RowBackground and playlists just… didn’t. So it fell back to the theme’s default accent-tinted fill on every single row instead of the real styling. One missing property. That’s it. That’s the bug.
found staring at my own code for an hour
2 — Every Nav Click Rebuilt The World
ContentControl was tearing down and rebuilding the entire section view from scratch on every single navigation click. Fixed by caching views per viewmodel instead of nuking them each time. App feels like it’s not fighting itself anymore.
3 — Library Load Was Blocking the Window From Even Opening
Big libraries meant the window just… wouldn’t show up. Load was sitting on the UI thread like it owned the place. Moved off it. Window opens now regardless of how unhinged your library size is.
4 — Spectrum Bars Were Snapping
FFT window was running back-to-back instead of overlapping, so spectrum/spectrogram/loudness only actually updated every ~185ms even at 60fps render — bars were snapping to new values instead of moving. Bumped overlap to 75% and eased toward target instead of drawing raw values. Smooth now. Suspiciously smooth.
5 — Notepads and the Wheel Happened
Somewhere in here a full notepad feature got built — embed model, tag service, docked panel in now playing, pop-out window, save-to-track-tags — and then immediately got wired into a spin wheel with weighted entries, its own model, and a saved-wheels list. Neither of these were planned at the start of the week. Both exist now.
6 — Spotify Actually Behaves
Spotify stopped pausing forever, stopped lying about the queue, stopped refusing to shut up, and playlists now actually sync instead of just vibing. Also Discord presence shows Spotify tracks now instead of just going blank like it forgot what music was.
7 — Small Bugs, Deployed With Extreme Prejudice
Soundcloud playhead was showing the previous track’s end position on load, fixed. Word mode wasn’t saving timestamps so exports came out empty, fixed. Track-switch click (and the pop when another app grabs the audio device) got a quick fade instead. Dead zones stopped being OBS-only and now shift the app’s own layout too.
—FAQ (no one asked these but they are here)—
Q: What is Spectralis?
A: A local + Spotify + SoundCloud music player with a visualizer pipeline, OBS integration, and apparently a spin wheel now. Originally WinForms, migrated to Avalonia across 917 commits.
Q: Why does a music player need dead zones?
A: For OBS overlay layouts — panels and toasts need to know where not to render so they don’t cover your stream elements. It’s a layout constraint system wearing a spooky name.
Q: Was the RowBackground bug really just one missing line?
A: Yes. I’m still thinking about it.
Q: Is the wheel feature load-bearing or a bit?
A: Unclear. It has weighted spins, saved wheel lists, and its own viewmodel. Feels load-bearing now.
Q: What’s next?
A: Whatever the changelog for the version after 5.4.0 ends up needing. Probably something I haven’t broken yet.
—This is the end*—
*end for now, RowBackground permitting
ADIOS!!!😎😎😎😎

0
0
4
Open comments for this post

16h 41m 40s logged

DEVLOG 001

initial setup with hackclub
this is the 5th iteration of the spectralis audio visualizer app

core features changed:

  • switched from WinForms to AvaloniaUI
  • refined UI design and theming
  • fixed api related issues
  • added streamer support and automated queueing
  • web share audio hosting
  • refinements to the embedded audio visualizer system

bug fixes:

  • fixed an issue with the youtube API
  • placeholder fix for Spotify webplayer playback
  • fixed an issue with the viz switcher would “hide” behind the html visualizers
0
0
1

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…