Commit graph

953 commits

Author SHA1 Message Date
Samidy
3fc74738a5 this barely ever worked anyways lets just remove smooth scrolling 2026-03-12 10:16:38 +03:00
Daniel
079198c59e fix: improve discNumber formatting in formatTemplate function 2026-03-12 06:48:34 +00:00
Daniel
b04019f282 fix(downloads): mp4 files with flac audio are now tagged
This is resolved by using ffmpeg to copy the audio data into a new mp4 container file before passing it to taglib.
2026-03-12 06:43:45 +00: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
copilot-swe-agent[bot]
c9a1f49f23 feat: extract duplicated download utilities from api.js and downloads.js into download-utils.ts
Co-authored-by: DanTheMan827 <790119+DanTheMan827@users.noreply.github.com>
2026-03-12 06:04:59 +00:00
Samidy
51b88cc5e8 cdn to package for am-lyrics 2026-03-12 09:00:27 +03:00
Samidy
86df459dc1 chore(logs): remove accidental debug log for fetching tracks from artists (HOW DID I FORGET TO DO THIS FOR MONTHS LMFAOOO) 2026-03-12 07:53:51 +03:00
SamidyFR
7e6375919d style: auto-fix linting issues 2026-03-12 04:12:28 +00:00
Samidy
30b2e7d445 fix(downloading): hi-res M4A's having no embedded covers (FUCK YOU TAGLIB) 2026-03-12 07:12:02 +03:00
Samidy
0ed82f586c
didnt get it all lol 2026-03-12 05:59:20 +03:00
Samidy
34c3f8dbcf
Apply suggestion from @coderabbitai[bot]
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-12 05:04:42 +03: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
8b09635272
Merge pull request #297 from DanTheMan827/copilot/fix-invalid-total-tracks
Fix per-disc track total and add total disc count to embedded metadata
2026-03-12 04:55:26 +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
f576b35ce8 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-12 02:03:40 +03: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
e1d7744ab2 fix: correct total tracks per disc and add total discs to metadata for multi-disc albums 2026-03-11 15:17:17 -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
8cf7979d47
fix(downloads): cue generation now properly outputs correct tracks numbers and splits by disc 2026-03-11 20:00:44 +00:00
Daniel
33668ae118
fix: correct total tracks per disc and add total discs to metadata for multi-disc albums 2026-03-11 19:26:30 +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
edideaur
84df59624e style: auto-fix linting issues 2026-03-11 12:43:15 +00:00
edideaur
d8fdaac508
Merge pull request #300 from KalerKaler/fix/fixed-lcd-pixels-visualizer-and-visualizer-switching
fix(visualizer): correct LED layout and visualizer switching
2026-03-11 14:42:48 +02:00
Kaler
bb44b7559d fix(visualizer): correct LED layout and switching logic 2026-03-11 12:51:44 +05:30
SamidyFR
108387ac7a style: auto-fix linting issues 2026-03-11 07:12:10 +00:00
Samidy
ffdcc1d396 THERE YOU SHITHEAD 2026-03-11 10:11:38 +03:00
SamidyFR
a35b51f8cd style: auto-fix linting issues 2026-03-11 06:28:37 +00:00
Samidy
6fd334f74d PLEASE JUST FUCKING WORK WHAT 2026-03-11 09:28:03 +03:00
SamidyFR
3c51d45d74 style: auto-fix linting issues 2026-03-11 06:14:00 +00:00
Samidy
c4af3ea204 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-11 09:13:33 +03:00
Samidy
17964a8bc9 fix media playback errors in firefox 2026-03-11 09:13:28 +03:00
Samidy
07003f92f0 fix toggle UI console errors + volume button disappearing for no reason 2026-03-11 08:36:11 +03:00
SamidyFR
12baaaa55f style: auto-fix linting issues 2026-03-11 05:23:57 +00:00
Samidy
d167a9c869 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-11 08:23:30 +03:00
Samidy
71a2c5be93 make le diddy infinite radio better kinda 2026-03-11 08:23:27 +03:00
Daniel
3ef50cb6ce
fix(downloads): fix m3u generation artist [object Object] bug and mismatched file extensions 2026-03-11 04:50:53 +00:00
SamidyFR
0641e3da33 style: auto-fix linting issues 2026-03-11 04:03:24 +00:00
Samidy
b75245648d fix(playlists): queue loading in chunks for large playlists 2026-03-11 07:02:56 +03:00
Samidy
57a72ac5d7 fix: show warning for empty playlist names & fix notification z-index 2026-03-11 05:30:32 +03:00
Samidy
e290410aee fix(recommendations): add retry logic for renderHomeAlbums so they load all the time 2026-03-11 04:45:53 +03:00
Samidy
5794a12128 fix(profiles): let the first profile not get shot out in broad daylight 2026-03-11 03:41:16 +03:00
Samidy
f20935d2d2
Merge pull request #274 from DanTheMan827/taglib-wasm
Use taglib-wasm for writing and improve ffmpeg caching
2026-03-11 01:23:40 +03:00
edideaur
2e1367e5c2 video covers 2026-03-10 21:58:02 +00:00
Daniel
b596cbe8d9
refactor(flac): replace magic numbers with FLAC_BLOCK_TYPES constants for better readability, and pad comment block to at least 1024 bytes 2026-03-10 19:22:03 +00:00
Daniel
1c9c5fa242
Merge https://github.com/monochrome-music/monochrome into taglib-wasm 2026-03-10 18:48:18 +00:00
Kaler
97e41b521b Fixed lcd-visualiser CSS 2026-03-10 13:28:16 +05:30
SamidyFR
71b65e70a8 style: auto-fix linting issues 2026-03-10 07:45:19 +00:00
Samidy
92f8d4ef61 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-10 10:44:55 +03:00
Samidy
a4b84ec0b3 disable desktop app downloads page while we fix the desktop app 2026-03-10 10:44:52 +03:00
SamidyFR
dd2639b5f0 style: auto-fix linting issues 2026-03-10 07:31:34 +00:00
Samidy
ad615f52f8 fix(covers): embed album art for single track downloads 2026-03-10 10:31:04 +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
ce79d6d4c6 style: auto-fix linting issues 2026-03-10 02:43:19 +00:00
Samidy
49592e38a3 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-10 05:42:50 +03:00
Samidy
f67123a9d1 fix(inf-radio): IM A DUMBASS 2026-03-10 05:37:51 +03:00
SamidyFR
4cb8b84f91 style: auto-fix linting issues 2026-03-10 01:58:49 +00:00
Samidy
ce4979bdb2 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-10 04:58:21 +03:00
Samidy
473e5ba8b6 feat(recommendations): Infinite Radio 2026-03-10 04:58:17 +03:00
Daniel
56038a97ff
fix(workers): utilize vite ?worker imports. 2026-03-09 17:58:10 +00:00
Daniel
65e1b4e98d
fix(metadata): remove unnecessary audio buffer type check in addMetadataToAudio 2026-03-09 15:58:53 +00:00
Daniel
37f70f5390
Temporarily force FLAC files to go through ffmpeg
Something is wrong with the structure of the downloaded files and taglib is NOT happy with them
2026-03-09 15:56:42 +00:00
Daniel
42101353ab
feat(metadata): re-add flac and m4a metadata code as separate files 2026-03-09 15:54:28 +00:00
Daniel
de472c5891
Merge remote-tracking branch 'upstream' into taglib-wasm 2026-03-09 02:43:12 +00:00
SamidyFR
11a828668c style: auto-fix linting issues 2026-03-09 01:47:31 +00:00
Samidy
34ba920662 fix(anim-covers): not loading 99% of the time (i havent even properly tested this im js hoping it works) 2026-03-09 04:47:03 +03:00
Samidy
fe95cb23cd fix(DB): why did i make it overwrite 2026-03-09 04:23:08 +03:00
Daniel
efa3521aff
feat(taglib): refactor and improve metadata handling, worker integration, and code quality
- Refactor metadata handling to use fetchTagLib and addMetadataWithTagLib for improved loading and worker-based processing
- Update prefetchMetadataObjects and addMetadataToAudio for simplified and more robust metadata extraction
- Add taglib.worker.ts for audio metadata processing in a worker
- Implement getMetadataWithTagLib function
- Auto-fix linting issues and remove unnecessary debugger statements
2026-03-09 00:35:20 +00:00
Daniel
497d42b9fd
feat(ffmpeg): enhance progress tracking and logging
- Improved progress tracking in FFmpeg worker by extracting total duration and current time from logs.
- Updated downloadTrackBlob function to use console logging for progress updates.
- Enhanced error handling and progress reporting during audio encoding.
2026-03-09 00:35:09 +00: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
4d938b5478 UI: show FFmpeg encoding progress in toaster 2026-03-08 20:59:35 +01:00
Julien Maille
7dd8854ad1 UI: move lyrics panel close button to the right side 2026-03-08 20:38:05 +01:00
Julien Maille
ec06fed5cf fix: restore Kawarp visualizer selection and fix settings visibility 2026-03-08 20:33:08 +01:00
Julien Maille
9fe689db53 fix: handle JSON response in image upload 2026-03-08 20:01:38 +01: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
e3f781d588 feat(covers): animated covers 2026-03-08 05:27:20 +03:00
willianpm
7cf0b3d386 fix(ui): prevent duplicate wheel listeners and correct mute handling
- Remove stacked wheel event listeners on fullscreen reopen to avoid multiple handler executions.
- Replace non-existent Player mute methods with audioPlayer.muted property and localStorage update.
- Ensures volume wheel and mute logic work correctly after multiple fullscreen toggles.
2026-03-08 02:15:17 +00:00
Daniel
ff1efe093e feat(ffmpeg, taglib, utils): replace toBlobURL with fetchBlobURL for improved loading 2026-03-08 01:55:42 +00:00
Daniel
0f20106076 feat(downloads): prefetch data while downloading to improve performance and update taglib-wasm 2026-03-08 01:55:42 +00:00
Daniel
44a7c3b61c fix(downloads): cache ffmpeg core js and wasm
This creates a blob url outside of the worker for for the core .js and .wasm files so they aren't downloaded on each run.
2026-03-08 01:54:29 +00:00
Daniel
50a5b79d70 feat(downloads): use taglib-wasm to set tags
taglib supports multiple media formats beyond what was previously supported, this would enable transcoding to other formats without needing to write additional metadata libraries.
2026-03-08 01:54:29 +00:00
willianpm
277d8e801b feat: add mouse wheel support for fullscreen volume control
Added event handler to allow adjusting the fullscreen volume using the mouse wheel. Scrolling up unmutes and increases volume, scrolling down decreases volume. Improves user experience for volume adjustments in fullscreen mode.
2026-03-08 01:03:52 +00: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
c7a4ba194d style: auto-fix linting issues 2026-03-07 21:04:44 +00:00
Samidy
6dbd07ed88 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-08 00:04:18 +03:00
Samidy
ed566c94cc fix(profiles): remove double JSON.stringify on privacy field 2026-03-08 00:04:14 +03:00
edideaur
0b17fb1b4b higher image qualities for unreleased + fallbacks 2026-03-07 10:12:59 +00: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
db1d607603 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-07 05:50:19 +03:00
Samidy
0b2fe88731 feat(keyboard): command palette 2026-03-07 05:50:15 +03:00
SamidyFR
6865e45ff7 style: auto-fix linting issues 2026-03-06 23:57:54 +00:00
Samidy
135e5fd0af
lets try that again 2026-03-07 02:57:28 +03:00
SamidyFR
67eb5075d4 style: auto-fix linting issues 2026-03-06 23:42:53 +00:00
Samidy
e15ca352a0
fix(auth): ATTEMPTED fix for google oauth (lowk havent tested this) 2026-03-07 02:42:30 +03:00
SamidyFR
60d61f74d2 style: auto-fix linting issues 2026-03-06 21:01:28 +00:00
Samidy
cddf318d19
Merge pull request #279 from TimurCravtov/feat/local-files-duration
Feat/local files duration
2026-03-07 00:01:02 +03:00
edideaur
0de436a693 fix dockerfile and album cover clicks 2026-03-06 20:53:35 +00:00
Timur Cravtov
4e174297ca fix: move mvhd tag to run before udta guard 2026-03-06 22:40:05 +02:00
Timur Cravtov
6545b31388 feat(library): estimate flac and mp4 duration 2026-03-06 22:19:58 +02:00
Timur Cravtov
8c7a7547c9 feat(library): estimate mp3 files duration 2026-03-06 22:19:40 +02:00
edideaur
b88e55efb3 fix copilot findings in kawarp.js and themeStore.js cause they were bugging me 2026-03-06 09:45:05 +00:00
edideaur
f6bc60bd5e style: auto-fix linting issues 2026-03-06 08:57:13 +00:00
edideaur
c986921505 bun install in dockerfile and reload page when visualizer switching to avoid issues 2026-03-06 08:56:36 +00:00
edideaur
828e192362 fix visualizers 2026-03-06 08:43:53 +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
Samidy
73878b421d fix(community themes): fix not being able to upload community themes 2026-03-06 03:30:50 +03:00
Samidy
e013ad0de5 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-06 02:14:47 +03:00
Samidy
ad7d088e5c refactor(auth): migrate authentication from Firebase to (self-hosted) Appwrite 2026-03-06 02:14:43 +03:00
Boidushya
a2b8ce3cdf
feat: add kawarp as visualizer 2026-03-06 04:25:56 +05:30
edideaur
14cf949381 fix ddosing lmao 2026-03-05 18:22:54 +00:00
edideaur
8eefb1b79b open in harmony + context menu on album pages 2026-03-05 18:17:53 +00:00
edideaur
03ea16ac04 fix settings > system issue 2026-03-05 17:32:53 +00:00
edideaur
f967d29c52 donate and about page changes 2026-03-03 20:47:49 +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
edidealt
be67f79968
Merge pull request #266 from DanTheMan827/more-metadata
feat(downloads): add more metadata
2026-03-03 00:24:44 +02:00
Daniel
8035dd3873
feat(downloads): add BPM tag to Vorbis comments and MP4 metadata
- Added 'TEMPO' tag to Vorbis comments if BPM is available
- Added 'tmpo' tag to MP4 metadata if BPM is available
2026-03-02 21:38:16 +00:00
Daniel
82ca593894
fix(downloads): fix malformed m4a user atoms 2026-03-02 21:14:15 +00:00
edidealt
69652ba085 escaping 2026-03-02 21:14:14 +00:00
edidealt
3de1221c20 navigation 2026-03-02 21:04:04 +00:00
SamidyFR
0999fefda4 style: auto-fix linting issues 2026-03-02 20:42:59 +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
ebccec5903 FULLY hide show ui button 2026-03-02 20:35:45 +00:00
edidealt
5e437d4019 fullscreen mode settings 2026-03-02 20:14:25 +00:00
Daniel
6c09793276
feat(downloads): add XID ISRC tag to MP4 metadata
- Added 'xid ' tag for ISRC in createMp4MetadataAtoms function
2026-03-02 19:13:18 +00:00
Daniel
c430a5bd7e
fix(downloads): fix malformed m4a replaygain metadata 2026-03-02 17:59:05 +00:00
edideaur
b55734933d
Merge pull request #263 from DanTheMan827/m4a-replaygain
feat(downloads): write replaygain to m4a tracks
2026-03-02 09:55:42 +02: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
Samidy
23fdf10f86 fix(import): prevent incorrect artist matches and missing tracks 2026-03-02 06:47:50 +03:00
Daniel
2b2f61d1ee
feat(downloads): write replaygain to m4a tracks 2026-03-01 23:57:33 +00:00
edidealt
3a0edc3066 fix mpris covers 2026-03-01 11:48:39 +00:00
edidealt
2d8d93cbfa fix for firefox? 2026-03-01 11:29:40 +00:00
edidealt
5cac487c0f pitch shit 2026-03-01 10:52:03 +00:00
edidealt
a885e3d05a style: auto-fix linting issues 2026-03-01 10:23:30 +00:00
edidealt
eb61e87980
Merge pull request #260 from itsgareth/gareth/fix-ios-lockscreen-controls
feat: fix ios lockscreen controls
2026-03-01 12:23:08 +02:00
edidealt
de3e125bac
Merge pull request #261 from ericdaddario02/feature/replay-gain-flac
feat(downloads): save replay gain tags to FLAC metadata
2026-03-01 12:15:00 +02:00
Eric D'Addario
39206f4128 feat(downloads): save replay gain tags to FLAC metadata 2026-02-28 16:03:45 -05:00
Gareth Dawson
13ac84880b fix comment indentation 2026-02-28 19:05:47 +00:00
Gareth Dawson
523aa2d710 feat: fix ios lockscreen controls 2026-02-28 18:58:50 +00:00
Daniel
120073aea4
fix(downloads): write full track title to metadata 2026-02-28 16:55:37 +00:00
binimum
fb5fe05414
Remux instead of transcode 2026-02-28 11:59:27 +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
edidealt
72eae8f411 style: auto-fix linting issues 2026-02-28 11:18:26 +00:00
Daniel
dcf8563254
feat(downloads): add explicit content rating support
- Write ITUNESADVISORY for FLAC
- Write rtng for M4A
- Read the corresponding values from local media
2026-02-28 02:49:13 +00:00
Samidy
fc28f9faeb
Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-28 02:00:58 +03:00
Samidy
9ff62c52d4
Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-28 02:00:37 +03:00
Eduard Prigoana
fa4da493e6 UI hiding 2026-02-27 22:57:11 +00:00
Eduard Prigoana
4b5dc5865e consistent playback speed 2026-02-27 22:05:45 +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
2f7f0e61dc Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-27 23:36:22 +03:00
Samidy
ca173c2d58 fix(animated-covers): edis a fat worm 2026-02-27 23:36:19 +03:00
Samidy
6dbcd17e41
Merge pull request #250 from DanTheMan827/mp3-bulk-download-fix
fix(downloads): handle MP3_320 format in bulk downloads
2026-02-27 23:36:06 +03:00
Daniel
353ced831b
fix(downloads): handle MP3_320 format in bulk downloads 2026-02-27 20:32:19 +00:00
Daniel
52ad38c080
refactor(downloads): abstract ffmpeg worker logic
This refactors the ffmpeg worker logic and abstracts it into its own script file for easier use elsewhere.
2026-02-27 20:24:20 +00:00
SamidyFR
4aaffd2c22 style: auto-fix linting issues 2026-02-26 23:19:38 +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
Samidy
7d4294f906 my free trial ran out 2026-02-24 19:58:19 +03:00
Eduard Prigoana
424ee12d04 feat: animated covers 2026-02-24 12:43:36 +00: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
895cc20d26 whoops 2026-02-23 17:50:35 +00:00
Eduard Prigoana
49c054e64a userplaylists in editor picks + refresh button for playlist suggestions 2026-02-23 17:41:45 +00:00
gpulch
cde7080052 fix: address code review feedback
Inline fixes:
- Remove TDRC frame from ID3 writer (ID3v2.3 uses TYER only, not TDRC)
- Add try/finally cleanup in worker to prevent VFS leaks on errors
- Fix Blob creation to use Uint8Array directly (avoid extra bytes)
- Replace loadFFmpeg race guard with promise singleton pattern
- Add -map_metadata -1 to strip source metadata (prevent duplicate ID3)

Error handling improvements:
- Create MP3EncodingError class with code property for reliable detection
- Update api.js to use instanceof check instead of string matching
- Pass AbortSignal to encodeToMp3 for proper cancellation support
- Remove error re-wrapping in mp3-encoder.js (preserve original errors)

Technical details:
- Promise singleton ensures FFmpeg loads once even with concurrent calls
- AbortSignal listener properly cleaned up on success/error/abort
- Virtual FS cleanup in finally block prevents file leaks
- MP3EncodingError.code = 'MP3_ENCODING_FAILED' for robust detection
2026-02-23 10:49:05 +01:00
Eduard Prigoana
fe6b1e9fad favourites importing 2026-02-22 21:31:53 +00:00
Julien Maille
1aaf2dfd46 Fix API instances settings list rendering for object entries 2026-02-22 21:26:59 +01: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
EduardPrigoanaAlt
6b55fd4c7a style: auto-fix linting issues 2026-02-22 15:47:05 +00:00
GooglyBlox
747f50f564 feat: add all artists to metadata 2026-02-21 18:31:43 -08:00
Julien Maille
c1973e81ff Shuffle full artist discography instead of artist radio 2026-02-22 00:57:42 +01:00
JulienMaille
651f4282e5 style: auto-fix linting issues 2026-02-21 23:33:29 +00:00
Julien Maille
bf346f756e Add multi-disc ZIP folders and fix playlist extension paths 2026-02-22 00:32:45 +01:00
Julien Maille
400197aabc Write disc number metadata for FLAC and M4A downloads 2026-02-21 23:52:33 +01:00
Julien Maille
888703f18b fix: resolve persistent labels 2026-02-21 23:42:45 +01:00
Julien Maille
73b9867d4b FIX: tooltip and css issues 2026-02-21 23:33:30 +01:00
Samidy
77d99245c8 feat(artists): artists socials 2026-02-22 01:04:02 +03:00
SamidyFR
87a8368fc3 style: auto-fix linting issues 2026-02-21 19:58:57 +00:00
Sietse
1f13e34249
fix(player): Uniform shuffle
Replaces the current naive solution with Fisher-Yates
2026-02-21 20:53:42 +01:00
binimum
1188a2dcce style: auto-fix linting issues 2026-02-21 14:57:44 +00:00
binimum
01309a9a15
Change instances.json in favour of Workers which have live API uptime 2026-02-21 14:56:55 +00:00
Julien Maille
acf64cbc17 fix: prevent home page double refresh and improve artist name extraction in album cards 2026-02-21 14:17:46 +01:00
JulienMaille
384dd867cd style: auto-fix linting issues 2026-02-21 10:35:52 +00:00
Julien Maille
43a6e17df9 FIX: search history 2026-02-21 11:35:27 +01:00
Julien Maille
baec739b01 IMP: viz performances 2026-02-21 11:33:08 +01:00
Julien Maille
2bd42fc202 feat: add ISRC and copyright metadata support for M4A downloads 2026-02-21 10:30:17 +01:00
Julien Maille
3cab0926e4 Avoid skipping tracks when autoplay is blocked
# Conflicts:
#	js/player.js
2026-02-21 10:30:17 +01:00
Julien Maille
0d16ea28a8 Avoid skipping tracks when autoplay is blocked 2026-02-21 01:12:54 +01:00
Samidy
1108a44df9 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-21 02:32:04 +03:00
Samidy
07376b7d55 fix(track pages): fix these idiots not loading 2026-02-21 02:30:41 +03:00
Samidy
8c79e69382 feat(search): search recs in queue 2026-02-21 02:30:03 +03:00
JulienMaille
8731ddb502 style: auto-fix linting issues 2026-02-20 23:07:15 +00:00
Julien Maille
ae853636ce IMP: 192kHz playback, adapted visualizers 2026-02-21 00:07:00 +01:00
SamidyFR
9b269d14fd style: auto-fix linting issues 2026-02-20 19:09:51 +00:00
Samidy
61da5c47b0 cover images on local files ⁉️ 2026-02-20 21:57:17 +03:00
Samidy
790a3b7f94 lol 2026-02-20 20:42:12 +03:00
BlackSigkill
bddf5a0d73 fix linting errors/warnings 2026-02-20 15:48:23 +01:00
SamidyFR
de8064410d style: auto-fix linting issues 2026-02-20 13:22:40 +00: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
EduardPrigoanaAlt
82700ae42e style: auto-fix linting issues 2026-02-20 10:50:13 +00:00
BlackSigkill
be7ca88221 keep track's artists order the same in subcontext menu 2026-02-20 10:57:58 +01:00
BlackSigkill
8be0fa944b add sub context menu for artists + add links to artists 2026-02-20 10:49:56 +01:00
BlackSigkill
eddb202b1b allow multi artist selection (go to artist context menu) 2026-02-20 10:16:08 +01:00
BlackSigkill
cefc49777c lint & prettier 2026-02-19 23:48:44 +01:00
BlackSigkill
242541a7bb remove qobuz bio as i can't test it 2026-02-19 23:45:43 +01: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
Julien Maille
d05a0ea9c0 FIX: local files in desktop app 2026-02-18 21:33:34 +01: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
03a7dcda52 fix codeql suggestions 2026-02-18 03:30:20 +00:00
Eduard Prigoana
62fe4fca8e whoops 2026-02-18 03:22:20 +00:00
Eduard Prigoana
58b77e904b fix codeql stuff 2026-02-18 03:17:37 +00:00
Eduard Prigoana
120c725233 guess who goin to jail tonight 2026-02-17 23:49:51 +00:00
Eduard Prigoana
f20f3dbb9d EQ changes 2026-02-17 20:22:47 +00:00
Eduard Prigoana
2fce3e382e make all editors picks show at once and make the line going through equalizer be at midpoint 2026-02-17 17:38:59 +00:00
SamidyFR
5663b841c9 style: auto-fix linting issues 2026-02-16 19:27:03 +00:00
Samidy
1cac6d249b Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-16 22:26:42 +03:00
Samidy
50d2dd252a feat(Playlists): youtube music imports, refined imports menu 2026-02-16 22:26:38 +03:00
binimum
2d0ab393a7 style: auto-fix linting issues 2026-02-16 18:20:50 +00:00
binimum
48a1a87104
Change lyrics highlight colour based on light/dark mode 2026-02-16 18:19:43 +00:00
Samidy
7496585b1b fix(User Playlists): fix track reordering 2026-02-16 17:36:49 +03:00
IsraelGPT
d0678cfc6c i had cors allowence on again 2026-02-16 13:44:45 +00:00
IsraelGPT
18fc409e56 feat: playlist art uploads? 2026-02-16 13:40:36 +00:00
IsraelGPT
399a48a386 unblocking 2026-02-16 00:55:19 +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
IsraelGPT
762488d823 load skeleton styling 2026-02-15 23:39:56 +00:00