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