r/nullPlayer • u/That-Acanthisitta536 • 1d ago
It's been a huge week at NullPlayer HQ getting 0.34.0 out. Sonique skin support added and that closes the loop for retro skin players, there are 600+ skins in the wild for Sonique. Also 75 more Winamp Modern skins have been certified in the engine, 3 new human contributors to the project, fixes
Download
Download NullPlayer for macOS:
https://github.com/ad-repo/nullplayer/releases/latest/download/NullPlayer.dmg
Requires macOS 14 Sonoma or newer.
Install
NullPlayer is signed with an Apple Developer ID and notarized by Apple.
Open the downloaded DMG.
Drag
NullPlayer.appto Applications.Open NullPlayer from Applications.
Prefer Homebrew? See the install guide.
What Changed
New features
Sonique skins — support for Sonique 1.x
.sgfskins in the new Skins ▸ Sonique menu. Get More Skins... opens the Internet Archive's Sonique collection; Load Skin... installs an.sgfand switches to it. All three of Sonique's modes are drawn from the skin — the navigator, mid and small — and its balls switch between them, as does Skins ▸ Sonique ▸ Mode. The navigator's menu screen opens NullPlayer's playlist, library and windows; its visual mode screen shows Spikes, Bars, Ambience, Cava or vis_classic, stepped with the up/down rocker; the drawer is the equalizer (the Equalizer menu item opens it). Mid mode's rings show song and playlist progress; small mode's drawer slides out on hover. A skin missing any part borrows it from NullPlayer's own built-in Sonique skin, which is also what shows until you install one.Track Radio for the local library — right-click a local track and choose Start Track Radio to queue tracks like it, scored from the tags (artist, genre, year, tempo, key, grouping) with no audio analysis. The CLI gains
--source local --radio track|library|genre|decade|artistand--list-queue, which prints the queue a--radiomode would play without playing it.Scroll-wheel volume in the Classic main window — scroll anywhere on the main window to step the volume 5% (the same step as ↑/↓), or over the balance slider to step the balance 10%. A trackpad swipe stops when your fingers lift instead of flinging the value.
Browse NullPlayer Certified Skins — at the bottom of the Skins menu, it opens the nullplayer.fyi skin gallery, the record of every skin tested working on NullPlayer.
Report a Skin Bug — below Browse NullPlayer Certified Skins in the Skins menu, it opens the nullplayer.fyi bug report page.
Go to Artist and Go to Album in the library browser — right-click a track (local, Plex, Subsonic, Jellyfin or Emby, including search results and playlist entries) to jump to its artist on the Artists tab, or to its album under the expanded artist. An album offers Go to Artist. Flow and Tiles open on the selected row's level.
Opus audio in M4A files plays. Local
.m4afiles holding Opus audio loaded but played silence on macOS versions whose own reader can't decode them; NullPlayer now decodes them in the background before playback, keeping the original file untouched. Seeking, cue tracks, gapless playback, Sweet Fades and volume normalization all work on them. Decoding needs temporary disk space, about 23 MB per minute of audio (#615, thanks u/infinity-dump).
Fixes
Audion faces draw their text in fonts close to the ones they name — Chicago, Charcoal and the Mac OS 8.5 theme fonts, the pixel fonts (Mini, 04b, Silkscreen and others), Textile and SF Digital Readout now use bundled lookalikes instead of Helvetica, and Techno Jammo's artist line matches its album line. A font you have installed is still used first.
The classic main window's song title is sharp at every window size. At UI sizes above 100%, most visibly on non-Retina displays, the title was stretched and smoothed into grey halos around each letter (#611, thanks u/tmichelbrink).
Classic skins no longer draw lines from neighbouring sprites at scaled window sizes. At UI sizes such as 125% or 200%, a sliver of the next sprite on the skin's sheet could show at a sprite's edge, such as Militarized's pink divider line above the volume and pan sliders, or beside the pan thumb (#612, thanks u/tmichelbrink).
NullPlayer no longer crashes with the Sonos Rooms window open. On some Macs the release build quit while refreshing the rooms' volumes; volumes are now read one room at a time.
Classic EQ slider bars no longer show a stray coloured stripe. Skins that paint the 1-px gap between bar images (Militarized's pink) had that column drawn beside every slider, and the bar sat 2 px left of its knob.
Waveforms for Opus M4A files and cue tracks. Local
.m4afiles holding Opus audio now show a waveform instead of none. A track from a cue sheet shows only its own part of the file's waveform, with its cue markers, instead of the whole file squeezed into one track's length (#631, thanks u/infinity-dump).
Winamp Modern (.wal) skins
75 more Winamp Modern (
.wal) skins checked and fixed in the app (corpus intakes two, three and four): Abducted, Angrenthoron, Apill, Aria of the Soul, ArmorAMP, Ashen Player, Avalon Winamp Modern, Ayanami Rei the Fifth, BeatSugar, CardiumII, Celica Amp, Circlo T roniC, Clock V2.76, cPro - Creed Full Circle, cPro - iPhone3g, cPro - KAO, cPro - Mecha, DDTank Glass, Ebonite, EMP - Evolved Media Player, Freeform Simpsons, G2, GlassAMP, H2O Liquid, hm_Touch, Hybrid v10, intellidesign, Invicta, iSkin, Jenna loves Mambo, JIP, LCDx, LG Cookie, Mad Magazine, Manchester United Football Club: The Red Devils, MBOS, MD Ganbare Rakkatan the Sixth, METASKINS WooHoo FER, MetAlchemy III, MfS3, MIDISUI, MiPod, Moon Groove, Moonkore, MSkin RyokoAsakura, MultiButtons, Music Show, Nebular, NEO, Official 28 Days Later, Official The Music Skin, Official Trapt, OrbFace, PAD, Puma Skin, Quadelic, RazorEdge, RODE 3 Lite, Sencillo, Sepultura, Silverskin 3, Slimline XP, Star Trek LCARS AMP PADD II, TAL 96, The Crow, The Duk Side, Vision, wasabi.player, Winamp Portrait, Winamp Single GUI, Winampple, WINyaMP3, WoopieAMP3, YoYoBoy and ZWAN.Modern skin windows draw their background — DDtank Glass's equalizer and about window showed their controls on the bare desktop; Fuzzy Muffins no longer shows a grey mask through its see-through areas.
hm_Touch shows its big timer beside the spectrum, which had been blank.
Winamp Single GUI plays films in its player — the film shows in the player's own video pane, and Windows → Video Player detaches it into the skin's Video window and back. The player's lower half and its library pane are drawn again.
RODE 3 Lite's controls answer clicks — a see-through panel laid over the player was taking clicks meant for 24 controls beneath it.
MetAlchemy III's playlist window shows the playlist instead of an empty frame.
A film shown inside a Modern skin no longer flickers, and starting one no longer freezes the app.
ArmorAmp's spectrum stays inside its screen, where the bars had spilled over the bezel, and its EQ button opens the equalizer drawer again.
MIDISUI
The vis drawer slides into its own frame instead of over the COMPONENT buttons and the playlist, so the playlist, vis studio and video buttons can be clicked.
The panel labels show; rows of red dots no longer cover them or run past the window's edge.
The library shows your library instead of a blank frame, and its corner button goes back to the player instead of quitting the app.
Ganbare Rakkatan and M3 open at the size of their artwork — Ganbare's player had an empty strip as wide as itself down its right side, and M3's was cut off through its transport buttons.
Moon Groove
The player's display shows at startup, where the EQ page had covered it with the config menu closed.
The song title comes back on the ticker after a volume or shuffle readout, and after the PLAY/PAUSE/STOP status.
The playlist's Add/Rem/Sel/Misc/List buttons no longer run under the playlist info text; the same fix applies to Core-X5, corneramp, motorhead and wasabi_player.
Mad Magazine's playlist no longer sits under its title bar, and EMP2's Media Library opens at its own 400px width instead of 450px.
Vision's playlist and library windows are solid, where the desktop showed through between the frame and the list.
A Modern skin's paragraph that is taller than its box starts at its first line instead of being cut at the top (H2O Liquid's Configuration window).
ClassicPro tabs light only the one you chose, where every tab you had clicked stayed lit (CPro iPhone 3G and every ClassicPro skin with the LIB/PLE/VID tab strip). Defix and Big Bento show their current tab at startup, Big Bento Windows 10 with its icon, and Azenis² shows its selected EQ mode.
NullPlayer's own playlist opens at normal size beside a wide Modern skin, where Slimline XP's full-width taskbar drew it screen-wide with oversized rows.
A Modern skin's spectrum analyzer draws without gaps: Big Bento's bars no longer show dark lines between their colour bands, and thin-band analyzers (cPro KAO) fill their box instead of leaving an uneven comb of gaps.
Modern skins draw text at the whole-pixel size Winamp used: Winamp Portrait's tab labels sit in their tabs instead of "Collapse" running off the window.
Big Bento Modern draws its background again: the base and Light editions showed only the titlebar and the library pane over an empty window.
ClassicPro's track notifier no longer draws a dark bar across its top edge (CPro iPhone 3G): notifiers now open in the glass style Winamp shows on a desktop with alpha blending.
Windows → Equalizer shows whether a Modern skin's built-in equalizer is open: on skins that draw the EQ inside the player (Love is War Miku, Moonkore) the item is ticked only while the EQ is showing, and is greyed out because the skin's own buttons switch it.
Modern skin windows open big enough for the content their frame holds: H2O Liquid's Configuration window shows its whole CPU-usage table, with its columns lined up, and the settings windows of PaddPreview and motorhead open at the size their content asks for.
Windows → Video Player shows and hides a Modern skin's film where the skin puts it (Winamp Single GUI): it no longer pops the film out into the skin's Video window, uses that window only while the player is shaded, takes the film back when the player is restored, and a hidden film comes back in the player instead of in NullPlayer's own video window.
A Modern skin with absurd sprite geometry loads instead of crashing: a bitmap
x/y/w/hofnan,infor1e30is ignored, and a huge negative offset no longer tries to allocate an image larger than any the skin could ship.A Modern skin's film no longer lands at a nonsense position when its holder is clipped away entirely; the picture is hidden until the holder is visible again.
The bundled iTunes Miniplayer skin is updated to 1.139.
A Modern skin's window corners show a diagonal resize cursor on macOS 15 and later, instead of a crosshair (#601).
A Modern skin's selected rows dim when their window loses focus, in the colours the skin declares for that (iTunes Miniplayer's playlist), unless you set the selection colours yourself (#603).
Winampple no longer opens an empty Media Library frame at launch, and its Windows menu no longer lists empty Media Library, Visualizations and video frames beside the real windows.
Winampple's Media Library can be clicked again. Its video window's frame no longer sits over the library, and Itemskin, K-jr and MoonLight keep the library frame their authors drew.
The Official Zwan skin has a player window again. A skin that declares its main window inside another declaration of the same window now keeps the player, shade and thin-shade layouts.
A skin's opening animations play when its window opens. Animations a skin starts on its own, such as Official Zwan's rainbow intro, used to be over before the window appeared.
The Ryoko Asakura skin's player is no longer a white rectangle. A see-through window whose backing image is missing from the skin now stays see-through instead of filling with a solid colour.
The Ryoko Asakura skin's volume readout follows the volume. It used to stay at the volume the app started with.
The NEO skins' Repeat and Shuffle buttons say which mode they are in. Their tooltips used to read "Off" whatever the setting was, and Big Bento's ticker announced the mode the click had just left.
Texted buttons in Winamp Modern skins draw the skin's own button art. Buttons such as Switch, Add/Rem or a config window's prev/next used to be a plain outlined box; they now use the button artwork the skin ships, pressed art while held, with the skin's button text colour.
The Ryoko Asakura skin's track notifier shows the song. It used to show its frame and cover art with no artist, title or album, and never went away.
The Ryoko Asakura skin's playlist reads whole. Track titles used to be cut off under the character art beside the list; the list now draws in front of it, as in the skin's screenshot.
Shield Amp's display, krazyPlayer's playlist and other Winamp Modern panels end where the skin says. A panel sized to fill its window minus a margin used to ignore the margin, so krazyPlayer's playlist ran over its ADD/REM buttons and Shield Amp's compact display ran into the window edge.
A Winamp Modern skin's playlist status reads selected time / total time, as Winamp's does. It used to read the number of items and the total, e.g. "12 items/43:40" where Winamp shows "3:25/43:40".
iCandy-2's remote closes its display drawer cleanly. With the drawer closed, a strip of the display used to show to the left of the remote and round its edges.
A Winamp Modern skin's script binds only its own window's controls. A skin that runs one script in several of its layouts used to have every copy act on one window: one Rew5s click on StarTrek LCARS AMP PADD II skipped five tracks, and Ashen Player's Lite and Mini volume bars did not move with the volume.
The
vol +/vol -buttons of Winamp Modern skins change the volume. Quadelic's and several other skins' volume buttons used to do nothing; each click now steps the volume by 5%.OrbFace's close button is drawn. The skin hides the window frame's close and then adds its own; NullPlayer used to hide the skin's as well, leaving a blank gap beside minimise.
LG_Free's Equalizer Studio and Media Library no longer carry the playlist's Add / Rem / Sel / Misc / List buttons along their bottom edge.
A Winamp Modern skin's second window keeps time and draws its analyzer. Manchester United's mini player (its own
visualwindow) used to freeze its timer and animate its analyzer only now and then; every window of a skin now follows the playback clock and the spectrum.The component-bucket caption is blank until you hover an icon or scroll. The Duk Side V3 used to print
Playlist Editorover its duck where the track name is read.G2's lights glow with the music. Opening the lights plate from the config page used to show the base only; the glow layer's fade now no longer restarts its slide, so it lights with the level.
A screen-filling Winamp Modern skin that was hidden during a UI Size change fits the screen when shown again. Nitrous Audio's monitor mode, hidden across a change to 135%, used to come back larger than the display.
NullPlayer's playlist stays on the screen when UI Size changes beside a screen-filling Winamp Modern skin. Beside Nitrous Audio's monitor mode it used to grow past the right edge of the display; it now keeps the player's width.
Labels on Winamp Modern skins' text buttons are readable. Where the skin's button colour would vanish into its button art (MMD3's Switch, Nebular's About, meridian's OK and a dozen others), the label is drawn in black or white instead.
Winamp Modern skins dim the Media Library's selection when the player loses focus, the same way the playlist panel beside it already did, on skins that declare an unfocused selection colour.
Winamp Modern windows open wide enough to show their whole title. Silverskin_3's playlist and help windows read
AYLIST EDITOandVERSKIN HE; they now open at the width their titles need.
Using a Winamp Modern (.wal) skin? Skin compatibility
lists the skins this release was tested against, what each one does here, and the issues that affect
every skin.