Commit graph

995 commits

Author SHA1 Message Date
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
edidealt
4b4d701e9f
Merge pull request #258 from DanTheMan827/write-full-title
fix(downloads): write full track title to metadata
2026-03-01 12:13:12 +02:00
Samidy
0fd5ad9c58 chore(deps): update dependencies 2026-03-01 02:11:52 +03:00
Eric D'Addario
39206f4128 feat(downloads): save replay gain tags to FLAC metadata 2026-02-28 16:03:45 -05:00
Daniel
120073aea4
fix(downloads): write full track title to metadata 2026-02-28 16:55:37 +00:00
edidealt
a7d0099c96
Merge pull request #256 from binimum/main
URGENT: Remux instead of transcode to FLAC!
2026-02-28 14:02:28 +02: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
edidealt
bebb530d2c
Merge pull request #252 from DanTheMan827/explicit-rating-metadata
feat(downloads): add explicit content rating support
2026-02-28 13:18:01 +02: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
dd7a60e002 remove my bullshit 2026-02-27 22:13:20 +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
Samidy
a772e7ef66
Merge pull request #249 from DanTheMan827/refactor-ffmpeg-worker
refactor(downloads): abstract ffmpeg worker logic
2026-02-27 23:35:04 +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
2621e44adf
Merge pull request #245 from h1dd3n3y3/main
minor documentation addition
2026-02-26 19:30:10 +03:00
david011011
877855888f minor documentation addition 2026-02-26 18:27:32 +02:00
Samidy
7970df4e41
Merge pull request #244 from h1dd3n3y3/main
Add Tailscale documentation and minor comment changes
2026-02-26 19:14:26 +03:00
david011011
ec89b62c67 1. add tailscale documentation
2. beautify some comments in vite.config.js
2026-02-26 17:51:02 +02:00
Eduard Prigoana
be11c3af43
Merge pull request #240 from h1dd3n3y3/main
Python3 Installation and Tailscale Support
2026-02-26 15:35:32 +02:00
SamidyFR
0047c723f3 style: auto-fix linting issues 2026-02-25 23:14:12 +00:00
Samidy
41e7819e26 holy AI (ima kill u edideaur) 2026-02-26 02:13:44 +03:00
david011011
5d1f90fb46 1. Add python3 installation to Dockerfile
2. Add tailscale optional support
2026-02-25 10:57:47 +02:00
Samidy
7d4294f906 my free trial ran out 2026-02-24 19:58:19 +03:00
Samidy
d2a489c920
Merge pull request #238 from monochrome-music/sure-this-works
update README.md for new contribute link (making this PR to test my template
2026-02-24 19:53:41 +03:00
Samidy
f5a6779853 PR template works? 2026-02-24 19:49:05 +03:00
Samidy
9f30a667bc make sure people actually READDDD 2026-02-24 19:40:27 +03:00
Samidy
4457895885 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-02-24 19:33:40 +03:00
Samidy
a60e6f6313 chud 2026-02-24 19:33:36 +03:00
SamidyFR
dc11e0dde9 style: auto-fix linting issues 2026-02-24 16:31:26 +00:00
Samidy
fca3ea5841 add new section in contributing guide 2026-02-24 19:30:43 +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
562e8aa6b2 add goat to editors picks 2026-02-22 21:34:31 +00:00
Eduard Prigoana
fe6b1e9fad favourites importing 2026-02-22 21:31:53 +00:00