Jeffrey R. Fetzer

Posts

Musings on math, science, and other explorations.

MuseBar: Apple Music in the Menu Bar

A companion to muse — this one lives in the menu bar instead of the terminal. MuseBar shows the currently playing track from Apple Music directly in the macOS menu bar: artist, title, and a tiny album art thumbnail. Click it to open a dropdown with full artwork, a seekable progress bar, and playback controls. Features Menu bar display — artist, title, and album art at a glance Album artwork — full size in the dropdown, thumbnail in the bar Seekable progress bar — click or drag to scrub Playback controls — previous, play/pause, next No Dock icon — runs entirely in the menu bar How it works Built with SwiftUI’s MenuBarExtra (macOS 13+). Track info and artwork come from AppleScript queries to Music.app, with distributed notifications providing real-time updates on track changes. Playback commands are also sent via AppleScript. ...

March 13, 2026

muse: A Terminal UI for Apple Music

A small terminal app for controlling Apple Music from the command line. Built in Swift with no dependencies — just raw ANSI escape codes and AppleScript talking to Music.app. The interface is a single unified screen: the now-playing panel sits at the top with track info, a progress bar, and playback controls, while a tabbed panel below lets you switch between your queue, library, and search without ever leaving the player view. ...

March 12, 2026

Julia Sets Explorer

The Julia set for a complex number $c$ is the boundary between points that escape to infinity and those that remain bounded under iteration of: $$z_{n+1} = z_n^2 + c$$Each value of $c$ produces a different fractal. Connected Julia sets correspond to points inside the Mandelbrot set; disconnected “dust” fractals come from points outside. Controls: Click the Mandelbrot set (left) to choose $c$. Drag to pan, scroll to zoom the Julia set. ...

June 1, 2025

Fun with Chaos Attractors

The Clifford attractor is a 2D strange attractor defined by the iterative map: $$ \begin{aligned} x_{n+1} &= \sin(a \cdot y_n) + c \cdot \cos(a \cdot x_n) \\ y_{n+1} &= \sin(b \cdot x_n) + d \cdot \cos(b \cdot y_n) \end{aligned} $$With parameters $a = 1.8$, $b = -1.9$, $c = 1.0$, $d = 1.5$, the system traces out intricate fractal structures. The image above was generated from 300 million iterations, rendered as a density histogram with logarithmic scaling to reveal the fine detail in regions where the trajectory lingers. ...

May 30, 2025

Replicating the Chrono Trigger Time Gate in GLSL

The time gates in Chrono Trigger have a distinctive swirling blue portal effect. This shader recreates that look using layered sine waves, procedural hash noise for texture, and a spiral distortion centered slightly off-axis. The color gradient shifts from deep blue at the edges through cyan to near-white at the peaks, with a soft vignette that fades the portal into darkness at the rim. ...

May 30, 2025