Commit graph

46 commits

Author SHA1 Message Date
Daniel
2db782d74f feat(downloads): add custom download formats 2026-03-11 15:18:39 -05:00
Daniel
1c9c5fa242
Merge https://github.com/monochrome-music/monochrome into taglib-wasm 2026-03-10 18:48:18 +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
Samidy
75d16e6ce4 feat: music videos 2026-03-09 03:03:29 +03: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
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
SamidyFR
4aaffd2c22 style: auto-fix linting issues 2026-02-26 23:19:38 +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
Eduard Prigoana
a9f3acb289 fix4dwayne 2026-02-18 04:19:12 +00:00
Julien Maille
8eaafd7e18 FIX: share link from neutralino's app 2026-02-15 21:07:43 +01:00
Julien Maille
7e635143be FIX: context menu on mobile or small screens 2026-02-12 23:17:20 +01:00
Eduard Prigoana
15fc0cf725
Merge pull request #138 from blacksigkill/fix/title-date
Show album release date next to tracks
2026-02-04 12:50:57 +02:00
BlackSigkill
50834a48e0 fix all errors/warnings during linting 2026-02-03 15:20:50 +01:00
BlackSigkill
8eaf3b376e Add a toggle to choose what kind of track date you want 2026-02-03 14:47:45 +01:00
BlackSigkill
9780263cf7 show album release date next to tracks 2026-02-03 13:09:01 +01:00
EduardPrigoana
db777a7923 unreleased rework 2026-02-01 14:48:01 +02:00
Samidy
6d9d2f4f89 fix(streaming): fix Hi-res playback on Firefox 2026-01-27 02:28:16 +03:00
JulienMaille
15c3702cae style: auto-fix linting issues 2026-01-26 21:12:21 +00:00
Julien Maille
2e322ac8a6 fix(downloads): detect actual format for all download paths
Fixes #117

- Add getExtensionFromBlob() to detect format from blob signature
- DASH Hi-Res streams are MP4 containers, not raw FLAC
- Fix api.downloadTrack to detect and correct filename extension
- Fix bulk download functions to use detected extension
- Fallback to mime type if signature detection fails
2026-01-26 22:11:50 +01:00
SamidyFR
4ede3b2664 style: auto-fix linting issues 2026-01-24 12:13:44 +00:00
Samidy
3f3e12817f basically monochrome 2.0 lol 2026-01-24 15:13:19 +03:00
Samidy
5975fdbac7 make HI-Res default 2026-01-20 00:29:28 +03:00
Julien Maille
baeff12c54 feat: handle unavailable tracks in playlists and mixes 2026-01-18 23:41:30 +01:00
Samidy
49d8783daa update to 1.7.0, change "HR" to "HD" 2026-01-17 22:45:49 +03:00
Julien Maille
e1a44b3502 feat: add Hi-Res and Lossless quality indicators to queue and play bar 2026-01-16 22:38:53 +01:00
JulienMaille
bae0d0a170 style: auto-fix linting issues 2026-01-16 20:37:51 +01:00
JulienMaille
dc3ae80d9f style: auto-fix linting issues 2026-01-11 00:36:22 +01:00
Julien Maille
bcb949d1ec FIX: broken display with tracks containing weird characters 2026-01-08 22:20:38 +01:00
Julien Maille
3e228a0d46 FEAT: add track mix button to player bar and display release year 2026-01-03 13:00:12 +01:00
Julien Maille
b828322a72 FIX: custom playlist download 2026-01-01 23:19:09 +01:00
Julien Maille
d286c80540 IMP: show link for each artist of current track 2025-12-27 23:20:41 +01:00
Julien Maille
aeea0038f3 improvements 2025-12-26 23:14:47 +01:00
Julien Maille
cdffe88eba Fix heart button interactions on cards and reorder library tabs
- Fix: Card heart buttons didn't work because of button nested in anchor. Changed cards to div with data-href.\n- Fix: Home page and Artist page cards didn't have data bound or like state initialized.\n- Feature: Move Playlists to the last position in Library tabs.
2025-12-26 22:39:13 +01:00
Julien Maille
47d64add72 Refactor cover art fetching to use centralized getCoverBlob with CORS workaround in metadata 2025-12-26 13:58:28 +01:00
Julien Maille
99f2ccfdb2 Refactor SVG icons and improve settings UI 2025-12-25 20:03:16 +01:00
Julien Maille
e67a444258 fix: non centered play button 2025-12-24 13:52:42 +01:00
eduardprigoana
ae7fae9b3d naming 2025-11-17 21:43:33 +02:00
Eduard Prigoana
b5cb97149f fuck your svelte kit 2025-10-26 21:55:13 +02:00
Eduard Prigoana
bd7e3fea33 fix. 2025-10-22 18:58:36 +03:00
Eduard Prigoana
8665a2d879 fix 2025-10-22 18:46:21 +03:00
Dazly Gonsalves
e2b5217f3a feat(player): display version beside track title 2025-10-22 20:53:48 +05:30
Eduard Prigoana
8ebc1542d5 lastfm integration 2025-10-21 18:18:03 +03:00
Eduard Prigoana
23fe06fdf2 cc 2025-10-12 17:10:45 +03:00
Eduard Prigoana
0f1a9841d1 cc 2025-10-11 19:22:53 +03:00
Eduard Prigoana
bfc7c6b685 2 2025-10-10 22:20:23 +03:00