Commit graph

442 commits

Author SHA1 Message Date
edidealt
7bcb9e1fb5 listenbrainz love on like 2026-03-20 18:07:06 +00:00
Daniel
e2a09b9b32 refactor: externalize svg images and add new vite plugin
The plugin runs all imported SVG files through svgo.

For index.html, you can use the following syntax:
```html
<use svg="file.svg" size="24" />
```

For scripts, use the `?svg` import query
```javascript
import SVG_FILE from './file.svg?svg&size=24
```

Note: size is shorthand for specifying both width and height individually.  You can also set any property of the base SVG element.

You can also use the `?svg&icon` query to return a function that allows dynamically resizing the SVG string.
2026-03-19 15:28:33 -05:00
Daniel
b7cac5724d fix(downloads): don't disable hi-res downloads on iOS or Safari
Just because the browser can't play them doesn't mean the user may not want to download them
2026-03-19 15:11:15 -05:00
Daniel
c315d2dfcd fix(downloads): update lossless quality labels 2026-03-19 15:09:58 -05:00
Nohan-V2
a18e865906 Fix settings persistence: ReplayGain Pre-Amp and Gapless Playback 2026-03-17 22:13:02 +01:00
edideaur
e5b4cf6adf
Merge pull request #335 from Xenuel/feature/in-your-library
feat(ui): add "In Your Library" section to artist detail page
2026-03-17 11:00:11 +02:00
Samidy
0f0cbb71ff meta: point mirrors back to main domain 2026-03-17 05:57:30 +03:00
Xenuel
43f816ad25 refactor(ui): improve accessibility and security in "In Your Library" section
Replace h2 toggle with semantic button and aria-expanded attribute,
switch from style.display to hidden attribute for visibility control,
use DOM methods instead of innerHTML for source labels and modal
options to prevent XSS, improve artist matching with ID-based lookup,
and clean up event listeners before re-attaching to prevent leaks.
2026-03-16 23:46:25 +01:00
Xenuel
52d5166363 feat(ui): add "In Your Library" section to artist detail page
Show liked tracks and playlist tracks by the artist with source
labels, collapsible chevron toggle, and real-time updates via
favorites-changed and playlist-tracks-changed events.
2026-03-16 22:38:29 +01:00
lsmda
6b38809fd7 feat(playlists): add strict album matching toggle on playlist creation modal 2026-03-15 02:17:15 +00:00
Samidy
3dca5d3ebb Remove Julien as hes no longer a dev 2026-03-14 03:47:50 +03:00
edideaur
eb3c7f75c8 fix samidys chud styling 2026-03-12 20:18:24 +00:00
edideaur
a776e24aee
Merge pull request #303 from DanTheMan827/copilot/extract-duplicated-code-to-ts
Extract shared download utilities and abstract bulk download handlers + new folder picker support
2026-03-12 21:18:47 +02:00
Daniel
37a74ad755
refactor(downloads/ffmpeg): refactor ffmpeg usage and add additional logging for ffmpeg 2026-03-12 16:02:44 +00:00
Samidy
3b088d1692 unecessary comments 2026-03-12 10:24:08 +03:00
Samidy
3fc74738a5 this barely ever worked anyways lets just remove smooth scrolling 2026-03-12 10:16:38 +03:00
Samidy
fe7a9e5497 replace discord link here 2026-03-12 10:10:50 +03:00
Samidy
5589521818 change custom pocketbase URL placeholder 2026-03-12 10:10:19 +03:00
Samidy
312fe99a75 also not needed 2026-03-12 09:52:12 +03:00
Samidy
ea46d7c021 woopsie daisys 2026-03-12 09:49:33 +03:00
Samidy
401c2687fb both arent needed anymore and practically worse for privacy 2026-03-12 09:17:22 +03:00
Samidy
3967e8fe14 we dont need to pre-connect to any hifi API 2026-03-12 09:16:58 +03:00
Samidy
6ff010d098 consistency shi ykwim 2026-03-12 09:13:20 +03:00
Samidy
489b606654 why the fuck is this here 2026-03-12 09:08:18 +03:00
Daniel
c1552980eb feat: extract bulk download handlers into bulk-download-writer.ts and add folder picker + settings 2026-03-12 06:04:59 +00:00
Samidy
3814358f0d
Merge branch 'main' into copilot/fix-m3u-generation-logic 2026-03-12 05:01:20 +03:00
Samidy
5b4bff97e0
Merge branch 'main' into copilot/add-custom-download-formats 2026-03-12 04:56:28 +03:00
Samidy
4728455b90 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-12 02:49:00 +03:00
Samidy
5e55e141da feat(missing-songs-import): export missing songs to CSV or copy to clipboard 2026-03-12 02:48:55 +03:00
SamidyFR
6efd88b31e style: auto-fix linting issues 2026-03-11 23:04:04 +00:00
Samidy
4b7833dc8e update outdated self-hosting shit 2026-03-12 02:03:36 +03:00
Daniel
4def7b8e51
Merge branch 'combined-fixes' into copilot/fix-m3u-generation-logic 2026-03-11 15:20:30 -05:00
Daniel
7448ddce1e feat(downloads): add FLAC - Max Compression option and refactor transcoding logic 2026-03-11 15:18:39 -05:00
Daniel
2db782d74f feat(downloads): add custom download formats 2026-03-11 15:18:39 -05:00
Daniel
aa728f970b
feat(downloads): add discNumber template for file name.
Also update disc number handling in download logic and metadata extraction
2026-03-11 20:10:38 +00:00
Daniel
3e24470401
feat(downloads): add FLAC - Max Compression option and refactor transcoding logic 2026-03-11 19:26:05 +00:00
Daniel
3f2651633b
feat(downloads): add custom download formats 2026-03-11 19:26:05 +00:00
Samidy
cafb3ea7bb oh fuck i pushed this on aiccdent 2026-03-11 09:14:38 +03:00
Samidy
17964a8bc9 fix media playback errors in firefox 2026-03-11 09:13:28 +03:00
Samidy
7fc685d8dc eh js update the vers to what we have locally 2026-03-11 05:06:22 +03:00
edideaur
2e1367e5c2 video covers 2026-03-10 21:58:02 +00:00
Samidy
a4b84ec0b3 disable desktop app downloads page while we fix the desktop app 2026-03-10 10:44:52 +03:00
SamidyFR
04f04ca03a style: auto-fix linting issues 2026-03-10 05:53:37 +00:00
Samidy
4ce3bb42e0 i got bored idk 2026-03-10 08:53:09 +03:00
SamidyFR
4cb8b84f91 style: auto-fix linting issues 2026-03-10 01:58:49 +00:00
Samidy
473e5ba8b6 feat(recommendations): Infinite Radio 2026-03-10 04:58:17 +03:00
SamidyFR
c8b919a4c7 style: auto-fix linting issues 2026-03-09 00:04:26 +00:00
Samidy
83c705a60a Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-09 03:03:59 +03:00
Samidy
75d16e6ce4 feat: music videos 2026-03-09 03:03:29 +03:00
Julien Maille
ec06fed5cf fix: restore Kawarp visualizer selection and fix settings visibility 2026-03-08 20:33:08 +01:00
JulienMaille
71ed8c7c1f style: auto-fix linting issues 2026-03-08 19:04:57 +00:00
Julien Maille
c7b1d301db fix: linting errors and settings structure cleanup 2026-03-08 19:42:26 +01:00
Julien Maille
473d63c899 reorganize settings menu, add playback speed reset and instances tab 2026-03-08 18:35:07 +01:00
Samidy
4762dea607 feat(visualizer): visualizer dimming 2026-03-08 02:55:51 +03:00
Samidy
3685e33b48 fix(context menu): Change from "Like" to "Unlike" depending on state 2026-03-08 01:15:51 +03:00
SamidyFR
d4733020b6 style: auto-fix linting issues 2026-03-07 05:26:40 +00:00
Samidy
911a2016d0 test 2026-03-07 08:26:13 +03:00
SamidyFR
346e4b2861 style: auto-fix linting issues 2026-03-07 05:03:21 +00:00
Samidy
38dd6f8220 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-07 08:02:56 +03:00
Samidy
c074b48b0a shitty prob not working implementation for auto-updates in the desktop app 2026-03-07 08:02:52 +03:00
SamidyFR
1da88ac568 style: auto-fix linting issues 2026-03-07 02:50:41 +00:00
Samidy
0b2fe88731 feat(keyboard): command palette 2026-03-07 05:50:15 +03:00
Samidy
af45d86a2a Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-06 23:57:36 +03:00
Samidy
3f2d1c0a57 fix: make sidebar logo link to homepage (no matter the instance you're using) 2026-03-06 23:57:32 +03:00
edideaur
f6bc60bd5e style: auto-fix linting issues 2026-03-06 08:57:13 +00:00
edideaur
55854020b6
Merge pull request #275 from boidushya/main
feat: add kawarp as visualizer
2026-03-06 09:58:46 +02:00
Samidy
3772295a07 feat(home): explore page 2026-03-06 08:58:24 +03:00
Boidushya
a2b8ce3cdf
feat: add kawarp as visualizer 2026-03-06 04:25:56 +05:30
edideaur
8eefb1b79b open in harmony + context menu on album pages 2026-03-05 18:17:53 +00:00
edideaur
f967d29c52 donate and about page changes 2026-03-03 20:47:49 +00:00
edideaur
98741b4f18 style: auto-fix linting issues 2026-03-03 19:41:46 +00:00
edideaur
434d1ae164 LMAOOOOOOO 2026-03-03 19:40:27 +00:00
edideaur
b29160385a keybind rebinding 2026-03-03 12:20:42 +00:00
edidealt
9054016ff2 settings import + export 2026-03-02 23:32:51 +00:00
Samidy
103cce6338 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-02 23:42:14 +03:00
Samidy
e983030c23 feat(community themes): edit themes after publishing theme 2026-03-02 23:42:09 +03:00
edidealt
5e437d4019 fullscreen mode settings 2026-03-02 20:14:25 +00:00
SamidyFR
0735d2a202 style: auto-fix linting issues 2026-03-02 04:14:10 +00:00
Samidy
46c565e437 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-02 07:13:46 +03:00
Samidy
5eabfc13e8 donate button shit 2026-03-02 07:13:41 +03:00
edidealt
5cac487c0f pitch shit 2026-03-01 10:52:03 +00:00
edidealt
e8ad19b2d7
Merge pull request #251 from DanTheMan827/lossless-container-option
feat(downloads): add lossless container option
2026-02-28 13:19:07 +02:00
Eduard Prigoana
fa4da493e6 UI hiding 2026-02-27 22:57:11 +00:00
Daniel
07422debb9
feat(downloads): add lossless container option
This uses ffmpeg to ensure that the downloaded lossless audio is in the desired container format.
2026-02-27 21:23:33 +00:00
Samidy
1c1d202e91
Merge pull request #235 from gpulch/feat/mp3-download-ffmpeg-wasm
feat: add ffmpeg.wasm + MP3 320kbps download option
2026-02-27 02:19:13 +03:00
SamidyFR
700645919c style: auto-fix linting issues 2026-02-23 22:58:08 +00:00
Samidy
38434f5419 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-24 01:57:43 +03:00
Samidy
29b4899089 feat(themes): Community Themes 2026-02-24 01:57:17 +03:00
Eduard Prigoana
49c054e64a userplaylists in editor picks + refresh button for playlist suggestions 2026-02-23 17:41:45 +00:00
gpulch
8a17bddbc3 feat: add MP3 320kbps download option with ffmpeg.wasm
Implements MP3 320kbps download functionality using ffmpeg.wasm for
industry-standard encoding with libmp3lame.

Features:
- New MP3_320 quality option in download settings UI
- ID3v2.3 metadata writing (title, artist, album, cover art, ISRC, etc.)
- Non-blocking encoding via Web Worker to keep UI responsive
- Proper UTF-16 with BOM text encoding for international characters
- Album artist fallback to track artist (mirrors FLAC/M4A behavior)
- Automatic format detection for downloaded audio
- Year validation to prevent writing NaN to ID3 tags

Implementation:
- mp3-encoder.js: Main encoder module with worker orchestration
- mp3-encoder.worker.js: FFmpeg Web Worker for async encoding
- id3-writer.js: ID3v2.3 tag writer with synchsafe size encoding
- Updates to api.js, metadata.js, utils.js for MP3 support
- Vite config excludes @ffmpeg packages from dep optimization

Technical details:
- Uses @ffmpeg/ffmpeg (libmp3lame 320kbps CBR, 44.1kHz)
- FFmpeg binary lazy-loaded from CDN (~25MB, cached)
- Encoding runs in separate thread (non-blocking UI)
- Proper error handling with distinct encoding vs network errors
- Memory-efficient: transfers ArrayBuffer with zero-copy

Dependencies:
- @ffmpeg/ffmpeg ^0.12.10
- @ffmpeg/util ^0.12.1
- Removed: package-lock.json (project uses bun.lock)

Closes maintainer request to use ffmpeg.wasm instead of lamejs.
2026-02-22 19:13:03 +01:00
Julien Maille
bf346f756e Add multi-disc ZIP folders and fix playlist extension paths 2026-02-22 00:32:45 +01:00
Samidy
77d99245c8 feat(artists): artists socials 2026-02-22 01:04:02 +03:00
SamidyFR
9b269d14fd style: auto-fix linting issues 2026-02-20 19:09:51 +00:00
Samidy
6eda36b8df we chuds who love credit 2026-02-20 22:09:26 +03:00
BlackSigkill
bddf5a0d73 fix linting errors/warnings 2026-02-20 15:48:23 +01:00
Samidy
04e4de0fb8 fix(APIs): remove now broken free tier API, oh and other stuff but idc 2026-02-20 16:22:13 +03:00
BlackSigkill
acc9d8b5cd add tidal biography to artists pages 2026-02-19 23:37:18 +01:00
SamidyFR
48937ed573 style: auto-fix linting issues 2026-02-19 13:55:31 +00:00
Samidy
5eba6aa224 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-19 16:55:02 +03:00
Samidy
250ebb9f99 feat(social): profiles feature 2026-02-19 16:54:58 +03:00
Eduard Prigoana
a9f3acb289 fix4dwayne 2026-02-18 04:19:12 +00:00
Eduard Prigoana
64ff09910b close modals on navigation 2026-02-18 03:50:00 +00:00
Eduard Prigoana
f20f3dbb9d EQ changes 2026-02-17 20:22:47 +00:00
SamidyFR
5663b841c9 style: auto-fix linting issues 2026-02-16 19:27:03 +00:00
Samidy
50d2dd252a feat(Playlists): youtube music imports, refined imports menu 2026-02-16 22:26:38 +03:00
IsraelGPT
18fc409e56 feat: playlist art uploads? 2026-02-16 13:40:36 +00:00
IsraelGPT
a6b27fbfc3 clear queue on navigation 2026-02-16 00:48:05 +00:00
IsraelGPT
830155c14a more imports 2026-02-16 00:36:36 +00:00
IsraelGPT
084bf957f5 FMCL 2026-02-15 23:57:06 +00:00
satanyahoo
3fbc6b1b26 style: auto-fix linting issues 2026-02-15 22:08:08 +00:00
Gareth Dawson
64037d6ad4 refactor(settings): rename sidebar order sections 2026-02-15 21:25:42 +00:00
Gareth Dawson
bd2ef5d8d5 fix(settings): restrict sidebar reorder to main vs bottom sections 2026-02-15 21:06:48 +00:00
Julien Maille
094ae91af9 BREAK IT: the damn auth login (and fix neutralino downloads too) 2026-02-15 20:55:32 +01:00
IsraelGPT
c23f858412 JSPF playlist imports + plausible 2026-02-15 16:30:54 +00:00
IsraelGPT
790f5ee8b4 more font size changing 2026-02-15 15:30:48 +00:00
IsraelGPT
0b20caff69 equalizer changes 2026-02-15 15:01:34 +00:00
Samidy
6a438a0551
update github links 2026-02-15 16:58:32 +03:00
Gareth Dawson
0d1910285c fix: restore iOS background play by detecting iOS before UA spoof 2026-02-14 22:56:33 +00:00
Samidy
152beda73b uhhuh yeah 2026-02-14 23:06:03 +03:00
Samidy
283f0f3c90 DESKTOP APP FIXED WOOOO!!! 2026-02-14 22:58:56 +03:00
Samidy
2b9c9b344c Merge branch 'main' of github.com:SamidyFR/monochrome 2026-02-14 22:40:44 +03:00
Samidy
c69d497037 feat(sidebar): pinned items 2026-02-14 22:40:39 +03:00
Eduard Prigoana
615f5dc8bd add apple music fonts 2026-02-14 16:43:05 +00:00
Julien Maille
1a7a16d501 WIP: trying to fix neutralino linux 2026-02-14 00:46:31 +01:00
Julien Maille
cafa97cb0f refactor(desktop): separate js for neutralino from the js used on the website 2026-02-12 14:55:06 +01:00
Eduard Prigoana
1134680c88 (WIP) add qobuz 2026-02-11 10:28:48 +00:00
Eduard Prigoana
3a1e3baec2 button fixes and new editors pick 2026-02-11 07:16:44 +00:00
Eduard Prigoana
f6dae2223f artist blocking 2026-02-10 21:03:48 +00:00
Eduard Prigoana
ea005c68ad remove pitch changing and allow more granular playback speed control, remember what setting tab youre on 2026-02-10 19:57:18 +00:00
Samidy
f90a85aef2 privacy friendly google api font service 2026-02-10 20:33:10 +03:00
SamidyFR
fc1bc066d2 style: auto-fix linting issues 2026-02-10 12:37:39 +00:00
Samidy
2d43e2d3cc Merge branch 'main' of github.com:SamidyFR/monochrome 2026-02-10 15:37:18 +03:00
Samidy
d3bee6f066 fix(Player): add back add playlist button in player 2026-02-10 15:37:14 +03:00
Julien Maille
2c165d7148 FIX: clean my own mess 2026-02-10 13:19:54 +01:00
Eduard Prigoana
37b0747e05 add a clear site data button and auto-updates 2026-02-10 10:41:53 +00:00
Eduard Prigoana
f73c75f668 user playlists descriptions 2026-02-09 20:34:40 +00:00
Eduard Prigoana
fdae4ce585 back to ko-fi 2026-02-09 15:59:36 +00:00
Eduard Prigoana
29061ccd30 editor pick changes 2026-02-09 15:37:13 +00:00
Eduard Prigoana
f81973af88 pitch and speed in settings, back to ko-fi 2026-02-09 14:04:40 +00:00
Eduard Prigoana
af1c0fc1ee feat: exponential volume 2026-02-09 13:36:33 +00:00
Eduard Prigoana
43be45b76f feat: username and password scrobbling for last.fm 2026-02-09 12:33:11 +00:00
Eduard Prigoana
3974ec7551 feat: mono audio 2026-02-09 12:06:44 +00:00
Eduard Prigoana
19baee21aa add custom last.fm api credential support 2026-02-09 11:44:38 +00:00
Eduard Prigoana
62937e551e Restore manual track ordering in playlists (fix #165) 2026-02-09 11:18:37 +00:00
EduardPrigoana
a308d380b9 style: auto-fix linting issues 2026-02-09 10:49:11 +00:00
Eduard Prigoana
4636ae3151 (final) implement butterchurn 2026-02-09 04:09:44 +02:00
Eduard Prigoana
cc6c600817 (beta) butterchurn visualizer 2026-02-09 03:30:38 +02:00
Eduard Prigoana
9d53abada5 slight visual changes 2026-02-09 01:00:15 +00:00
Eduard Prigoana
003ddc0ab3 add more fonts functionality 2026-02-09 00:01:40 +00:00
Eduard Prigoana
8bb3b285b1 editor's picks and open in new tab 2026-02-08 22:59:21 +00:00