Commit graph

264 commits

Author SHA1 Message Date
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