Commit graph

1087 commits

Author SHA1 Message Date
Alan Brooks
a09f0cc356 Merge origin/fullscreen-apple into fullscreen-apple 2026-04-05 22:50:14 -04:00
Alan Brooks
8a567ab816 Merge upstream/main into fullscreen-apple 2026-04-05 22:47:56 -04:00
Alan Brooks
2573870004 feat: refine fullscreen apple player 2026-04-05 22:37:10 -04:00
binimum
bc004d3dc4
fix: refine image size logic and update build configuration for better performance 2026-04-05 18:49:23 +00:00
binimum
f3b9cfd2f0 style: auto-fix linting issues 2026-04-05 17:22:39 +00:00
binimum
10b7afc36e
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-04-05 17:21:55 +00:00
binimum
995906f572
refactor: optimize image loading and enhance performance
- Removed unnecessary preconnect link to jsDelivr in index.html.
- Added lazy loading to contribs in app.js for improved performance.
- Implemented dynamic loading of am-lyrics and shaka based on image loading status to reduce lcp
- Introduced waitForImagesLoading function in player.js to ensure all images are loaded before initializing the player
- Enhanced image loading attributes in ui.js to include fetchpriority based on loading strategy.
- Updated package.json to include vite-plugin-purgecss for CSS optimization
- Configured Vite to use purgecss and enabled tree-shaking in vite.config.ts to reduce bundle size
2026-04-05 17:21:10 +00:00
edideaur
a73a7f11cb style: auto-fix linting issues 2026-04-05 17:13:07 +00:00
a
ea330dee98 Update js/ui.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-05 20:12:29 +03:00
Alan Brooks
85d198c8c3 fix: mobile sizing 2026-04-05 20:12:29 +03:00
Alan Brooks
9d1e4871e2 fix: buttons when in visualizer only mode 2026-04-05 20:12:29 +03:00
Alan Brooks
2bb06f1159 Refine fullscreen player to look more like apple music 2026-04-05 20:12:29 +03:00
trentisiete
ef2edefc4c fix: normalize artist ID comparison to handle string/number types 2026-04-05 20:11:41 +03:00
trentisiete
fbe101050a fix: filter albums and tracks by artist ID to prevent showing wrong same-name artists 2026-04-05 20:11:41 +03:00
Daniel
3ecaa3c74a Add typed interfaces for HiFi.ts route returns 2026-04-05 20:08:08 +03:00
tryptz
388a2b81a6 style: auto-fix linting issues 2026-04-05 20:07:39 +03:00
tryptz
da6c2e2dd9 fix: address CodeRabbit review issues from PR #502
Android:
- Fix stale wake lock detection by checking isHeld() before reacquiring
- Wrap startForegroundService in try-catch to handle launch exceptions
- Add START/STOP intent actions to prevent stop/start race condition

HTML/Accessibility:
- Convert preset and preamp spans to proper <label> elements
- Add aria-controls to database collapse button
- Sync aria-expanded state when toggling database panel

JavaScript:
- Guard auto-resume with source check to avoid resuming when not playing
- Add _calculateQ() fallback in fast-path EQ filter updates
- Persist graphic EQ gains and preamp to storage from setters
- Include 'legacy' in EQ mode restoration check
- Clear container before rebuilding GEQ bands for idempotency
- Use AbortController for document-level listener cleanup
- Apply gain calculation for non-parametric modes in touch snap
- Validate stored GEQ values are finite numbers

CSS:
- Remove non-standard appearance: slider-vertical property
2026-04-05 20:07:39 +03:00
tryptz
bd70b81a39 fix: EQ toggle not disabling audio filters when turned off
setEQMode() was unconditionally setting isEQEnabled = true, overriding
the user's toggle state. Now respects equalizerSettings.isEnabled().
Also fixed the toggle handler to properly disable the graphic EQ chain
in legacy mode.
2026-04-05 20:07:39 +03:00
tryptz
d09e3aa72a feat: AutoEQ, speaker EQ enhancements, and audio performance fixes
- Add 16-band graphic equalizer with legacy EQ mode
- Add speaker measurement and room correction EQ
- Fix audio skipping with AutoEQ on Android background
- Improve audio performance to prevent skipping under CPU load
- Fix dual EQ applied when switching between legacy and parametric modes
- Remove redundant Equalizer settings tab
- Improve mobile EQ band layout and collapsible database section
2026-04-05 20:07:39 +03:00
Samidy
c58815b312 _blank BS 2026-04-05 20:05:35 +03:00
Samidy
b4a7f116f9 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-05 19:19:54 +03:00
Samidy
153d9b67ac feat(reviews): AOTY critics/users reviews 2026-04-05 19:19:50 +03:00
binimum
17e3430691 style: auto-fix linting issues 2026-04-05 15:23:38 +00:00
binimum
0d84ac2e95
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-04-05 15:22:57 +00:00
binimum
3ed9d8b589
refactor: streamline image processing and cover URL handling 2026-04-05 15:22:50 +00:00
Samidy
e1ce5293e9 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-05 17:55:03 +03:00
Samidy
6015904a38 mobile contributors list fixes (diddy bro !) 2026-04-05 17:54:59 +03:00
binimum
fb3099386d
finish merge 2026-04-05 14:45:26 +00:00
binimum
b3da2da672
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-04-05 14:44:50 +00:00
binimum
014d1ef74e
feat: change loading eagerness to make lcp faster 2026-04-05 14:44:40 +00:00
Samidy
fe8bfed0dc CORRECTLY handle catch in fetchcontributors() 2026-04-05 17:08:42 +03:00
a
476648ff8a
Update js/ui.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-05 09:13:22 -04:00
binimum
57226892ab
feat: seo 2026-04-05 12:09:52 +00:00
Alan Brooks
e00368597d fix: mobile sizing 2026-04-05 00:37:43 -04:00
Alan Brooks
759d9b75e2 fix: buttons when in visualizer only mode 2026-04-05 00:29:58 -04:00
Alan Brooks
0b1bb3cd11 Refine fullscreen player to look more like apple music 2026-04-05 00:18:34 -04:00
edideaur
f1e961d4a9
feat: compress editors picks images to webp 2026-04-05 01:05:22 +00:00
edideaur
2c9ac1ecb1
fix: gracefully handle contributor fetch faliure 2026-04-04 21:53:05 +00:00
edideaur
c73572e195
lint: fix JS errors and duplicate CSS selectors 2026-04-04 21:41:37 +00:00
binimum
6651136e5b
fix: lock preload audio codec and disable PreloadManager ABR 2026-04-04 21:01:32 +00:00
binimum
54e337d8d7
fix: pass current abr estimatedBandwidth to preloadManager 2026-04-04 20:56:09 +00:00
binimum
d7cbaa454d
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-04-04 20:42:54 +00:00
binimum
6557e525b4
fix: remove undefined catch from preloadNextTracks() 2026-04-04 20:39:51 +00:00
binimum
8a377d5332
chore(player): log preload load errors 2026-04-04 20:36:41 +00:00
edideaur
005bd2d2ee
merge all my contributions on alts to my main account 2026-04-04 20:13:44 +00:00
Samidy
90dc00ba5a Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-04 22:50:07 +03:00
Samidy
c3e9839845 feat(about): Contributors list 2026-04-04 22:49:01 +03:00
Daniel
648e47e1d8 fix(linting): fix js linting issues 2026-04-04 01:37:47 +03:00
Daniel
ddc986bc52 fix(downloads): update downloadTrackWithMetadata function
- Fix reference to enrichTrack
- Added detailed JSDoc comments for better documentation
- Updated API reference to use MusicAPI.instance for consistency
- Improved error handling and metadata enrichment process
2026-04-04 01:37:47 +03:00
Daniel
a282b37d88 refactor(hifi): add getArtistBiography 2026-04-04 01:37:47 +03:00
Daniel
e154215fc5 fix(downloads): update downloadTrackWithMetadata to use MusicAPI
- Added default parameter for api in downloadTrackWithMetadata function
- Updated api call to enrichTrack to use the correct instance
- Imported MusicAPI for proper functionality
2026-04-04 01:37:47 +03:00
Daniel
3a28ef54d1 fix(hifi): remove extra await 2026-04-04 01:37:47 +03:00
Daniel
5504e004cc fix(hifi): fix tokenExpiry assignment 2026-04-04 01:37:47 +03:00
edideaur
a0f60a2dbd style: auto-fix linting issues 2026-04-03 11:31:45 +00:00
Daniel
5b727a103e feat(downloads): allow writing multiple artists to metadata
This will write each artist separately to the metadata rather than as a single concatenated string.  This allows for better library searching if the player supports it.

If multiple artists are written to an m4a file, iTunes will only show the first artist.
2026-04-03 14:31:19 +03:00
Daniel
51e5e1973f fix: update taglib-ts 2026-04-03 14:31:19 +03:00
edideaur
2ddf26ec4c
feat: right clicking context menu on miniplayer 2026-04-02 18:52:38 +00:00
edideaur
2183610df1
further:allow right clicking blocked content for easier unblocking 2026-04-02 18:44:13 +00:00
edideaur
a6082a5288
fix:blocking 2026-04-02 18:32:48 +00:00
edideaur
bdde8fdb6a
fix: l opens lyrics 2026-04-02 18:28:46 +00:00
edideaur
fd1300fcb7
i understand i did u wrong but thats not all 2026-04-02 17:18:52 +00:00
edideaur
8ceaffe757
tilt settings 2026-04-02 16:09:58 +00:00
edideaur
c8b7a9cd17
tilting, rounding, and new trackerapi instance 2026-04-02 12:08:05 +00:00
edideaur
e71c989319
editor pick changes 2026-04-02 09:09:13 +00:00
tryptz
0652aa4866 style: auto-fix linting issues 2026-04-02 11:05:12 +03:00
tryptz
782e98061b fix: address all CodeRabbit review findings from PR #477
Engine & algorithm:
- Use default shelf Q (1/√2) in calculateBiquadResponse for shelf filters
- Compute normalization offset on measurement frequency grid to avoid bias
- Try stale cache for all fetch errors in autoeq-importer, not just timeouts

Audio pipeline:
- Pass postProcessingQuality (preserves Dolby Atmos override) in api.js
- Persist custom band frequencies in equalizerSettings storage
- Restore custom frequencies on _loadSettings instead of regenerating defaults
- Export clamped preamp value in applyAutoEQBands text output
- Propagate filter type and Q values through equalizer import chain
- Update freqRange after importing custom filter frequencies
- Remove return in finally block that hid LOSSLESS fallback failures

Data consistency:
- Normalize artist IDs with String() in blockArtist/unblockArtist

Lint & code quality:
- Annotate empty catch blocks (Atmos codec probes)
- Remove unused catch parameters

Accessibility:
- Add aria-label and for attributes to all AutoEQ form controls
- Add role="status" aria-live="polite" to feedback spans
- Update filter type documentation to reflect shelf support
- Hide parametric-only sections by default to match active tab

UI:
- Move AutoEq button directly under graph
- Hide shared button in Parametric/Speaker modes
- Replace hardcoded white legend dot with theme-adaptive color-mix
- Add pointer-events:none and focus-within to profile delete button
2026-04-02 11:05:12 +03:00
tryptz
77f9e10fdc style: auto-fix linting issues 2026-04-02 11:05:12 +03:00
tryptz
d4d1fe8494 feat: AutoEQ and speaker EQ enhancements
Adds AutoEQ integration with interactive parametric EQ graph,
speaker/room correction with shelf filters, and improved EQ
persistence via IndexedDB.
2026-04-02 11:05:12 +03:00
Daniel
6e98830fdd fix(downloads): change FLAC ffmpegArgs to use 'copy' codec 2026-04-02 10:40:45 +03:00
edideaur
b199844d07
Merge pull request #474 from DanTheMan827/vitest
feat(vitest): add vitest config and tests
2026-04-02 10:27:51 +03:00
SamidyFR
b00cb086f4 style: auto-fix linting issues 2026-04-01 21:02:31 +00:00
Samidy
2a6c763176 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-02 00:02:01 +03:00
Samidy
6ad728d106 feat(social): Listening Parties 2026-04-02 00:01:57 +03:00
Daniel
b94a832d2e feat(vitest): add vitest config and tests
Add tests for HiFi, ffmpeg, and download api functions.
2026-04-01 12:46:30 -05:00
edideaur
c8f64a52e8
tilting + background play fixes 2026-04-01 14:47:37 +00:00
SamidyFR
c17c249ca9 style: auto-fix linting issues 2026-03-31 17:09:15 +00:00
Daniel
bb387ac30b fix(downloads): pass DOLBY_ATMOS to applyAudioPostProcessing if track is atmos 2026-03-31 12:07:31 -05:00
Daniel
88ec8feb6b fix(downloads): improve ffmpeg logging 2026-03-31 10:23:03 -05:00
Daniel
286a123e02 fix(downloads): actually return the encoded blob 2026-03-31 09:56:04 -05:00
Daniel
39163fa4b6 fix(downloads): applyAudioPostProcessing now uses lookup audio quality to determine if the available track is lossless 2026-03-30 21:10:48 -05:00
IsraelGPT
386c6123d8 add new slop 2026-03-29 21:29:24 +00:00
SamidyFR
a63f87410f style: auto-fix linting issues 2026-03-29 18:58:24 +00:00
Samidy
edc0b5d1bd Fix(Blocked Content): Manage System Not Working 2026-03-29 18:05:05 +03:00
edideaur
022c27056b
Merge pull request #417 from DanTheMan827/download-fixes
Download fixes
2026-03-29 13:59:45 +03:00
SamidyFR
3d74bdb579 style: auto-fix linting issues 2026-03-29 10:10:07 +00:00
Samidy
1a63b898cc Merge branch 'main' of github.com:monochrome-music/monochrome 2026-03-29 13:09:36 +03:00
Samidy
8ed52d8843 Bye Bye Desktop App 2026-03-29 13:09:32 +03:00
Daniel
113d0c513f fix(ffmpeg): pass abort signal from ffmpegInfo to inner ffmpeg call 2026-03-28 19:27:31 -05:00
Daniel
cde606b5cc fix(downloads): pass abort signal to atmos manifest fetch 2026-03-28 19:25:55 -05:00
Daniel
e21f0f5153 fix(player): fix video preload 2026-03-28 19:21:36 -05:00
Daniel
a9798007cc fix(api): ensure all tracks are prepared 2026-03-28 19:21:18 -05:00
Daniel
1b5385d1ec fix(api): remove allowedDomains for getVideo
- Removed 'allowedDomains' parameter from the fetchWithRetry method call in getVideoStreamUrl.
2026-03-28 15:33:14 -05:00
Daniel
9b7e1e2369 refactor(downloads): rename functions to remove AsZip from names 2026-03-28 15:26:55 -05:00
Daniel
2923757029 fix(settings): organize downloads tab 2026-03-28 15:26:55 -05:00
Daniel
9c34dd4b9d feat(downloads): add check box for atmos, and fallback to desired quality if unavailable 2026-03-28 15:26:55 -05:00
Daniel
6e517fcb9b fix(downloads): check codec info in applyAudioPostProcessing if quality is in question 2026-03-28 15:26:55 -05:00
Daniel
9f7b0ff525 refactor(ffmpeg): add ffmpegInfo function and refactor ffmpeg usage 2026-03-28 15:26:55 -05:00
Mrigakshi Roy Choudhury
417d98c011 fix(api): format image url for the api to recognize it and to save the user details 2026-03-28 22:50:32 +05:30
edideaur
81ea141d48 style: auto-fix linting issues 2026-03-28 13:33:03 +00:00
Eduard Prigoana
0424e6bea7 add commit ID embedding for easier debugging 2026-03-28 15:31:18 +02:00
edideaur
27defce9b0 style: auto-fix linting issues 2026-03-28 13:19:22 +00:00
Eduard Prigoana
0b6262cdca re-add auth sources 2026-03-28 15:18:54 +02:00
edidealt
416f2ca6aa style: auto-fix linting issues 2026-03-28 09:42:05 +00:00
edidealt
6ace8e19be
Merge branch 'main' into fix/ui-ux-video-library-fullscreen 2026-03-28 11:28:38 +02:00
Eduard Prigoana
e809d1443f fix trackers, remove AI slop 2026-03-28 01:04:30 +02:00
Thiago Vinícius
8cf7010e7f 🐛 fix: library liked track card link (grid plays like list); my playlists grid layout 2026-03-27 18:32:13 -03:00
Thiago Vinícius
5be3d39b1b 🐛 fix: CodeRabbit review (library search, covers, likes, layout classes, clear-btn, styles) and lint workflow; keep scroll on list/grid toggle
Made-with: Cursor
2026-03-27 18:20:11 -03:00
Thiago Vinícius
2e92a34b00 🐛 fix: issues flagged by CodeRabbit
Made-with: Cursor
2026-03-27 18:11:12 -03:00
Thiago Vinícius
75a1465977 fix(ui): drop empty playlists placeholder and fix inline-like track grid on narrow viewports
Made-with: Cursor
2026-03-27 17:15:22 -03:00
Samidy
628b8ae017
Merge pull request #435 from vladbrox/main
HOTFIX: Fix track validation in loveTrack method
2026-03-27 22:32:05 +03:00
Thiago Vinícius
520c778f84 fix(ui): video library cards, fullscreen layout, and search UX
Made-with: Cursor
2026-03-27 16:26:51 -03:00
David Zeng
09bc49bd60
Merge branch 'monochrome-music:main' into fix-local-folder 2026-03-27 19:59:11 +01:00
David ZENG
d15a99dad8 fix(library) fixed undefined error, when importing local music folder 2026-03-27 19:55:09 +01:00
SamidyFR
4a38afe810 style: auto-fix linting issues 2026-03-27 18:52:20 +00:00
Mrigakshi Roy Choudhury
65d0eadb71 fix(library): share playlist with the correct url 2026-03-28 00:13:36 +05:30
.vlad
2b67fc2609
Fix condition in loveTrack method 2026-03-27 18:45:57 +03:00
SamidyFR
121aa44fd1 style: auto-fix linting issues 2026-03-27 15:42:30 +00:00
Samidy
b7be5a6556
Merge pull request #434 from vladbrox/main
Listebrainz improvments
2026-03-27 18:42:00 +03:00
.vlad
8177cc4789
Fix artist name check in loveTrack method
Add null check for artist name in loveTrack method.
2026-03-27 18:35:48 +03:00
.vlad
c3c3005428
fix issues. now use set for lovingTracks, lbid album check, const and let var fix 2026-03-27 18:21:22 +03:00
Samidy
68512c957a
Merge pull request #430 from vladbrox/main
Refactor MBID lookup and add love lock
2026-03-27 18:18:48 +03:00
.vlad
27c2a7b092
Refactor MBID lookup and add loving functionality 2026-03-27 17:26:35 +03:00
Samidy
4e75a734a2 remove qobuz 2026-03-27 14:30:39 +03:00
Eduard Prigoana
b962853b69 weights 2026-03-26 20:36:42 +02:00
Daniel
80cd8b2f9b refactor(downloads): cleanup downloads and add mp4 stik atom 2026-03-24 14:10:28 -05:00
edideaur
23c5baae5f style: auto-fix linting issues 2026-03-23 20:01:26 +00:00
Eduard Prigoana
1e8e62dbee remove unexistent instances from tracker.js and add new instance 2026-03-23 22:00:53 +02:00
edideaur
7f61e723da
Merge pull request #401 from DanTheMan827/hifi-update
Refactor HiFi.ts and add trackManifests route
2026-03-23 21:57:34 +02:00
Daniel
2440939f4b refactor(hifi): update HiFi.ts to add trackManifests route and refactor 2026-03-23 13:42:03 -05:00
Daniel
21cbfcdbf4 fix(hifi): throw errors instead of returning json with the error 2026-03-23 09:35:04 -05:00
edideaur
15e6e99269 d-d-d-d-drop that bitch 2026-03-23 16:30:51 +02:00
binimum
ef142f2ff0 style: auto-fix linting issues 2026-03-22 20:38:39 +00:00
binimum
44d92b46dc
feat: implement side panel resizer and responsive styles 2026-03-22 20:38:08 +00:00
binimum
d9878596e2 style: auto-fix linting issues 2026-03-22 20:13:27 +00:00
binimum
98cc3b9391
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-03-22 20:11:37 +00:00
binimum
d783642401
feat: add Atmos support, use new API endpoint, streamline API caching 2026-03-22 20:08:30 +00:00
edidealt
6ed58333e7 style: auto-fix linting issues 2026-03-22 19:13:04 +00:00
Daniel
111ade245f
fix(metadata): lyrics are now fetched 2026-03-22 14:05:07 -05:00
edideaur
b6e8068652 capacitor app 2026-03-22 20:59:00 +02:00
edidealt
4d18704e2e sure this works i guess 2026-03-22 04:57:18 +00:00
edidealt
c2f8d3fca1 feat: podcasts 2026-03-22 04:32:20 +00:00
Samidy
3cd54a2b5f fix(reset password): change reset-password link to remove .html (causes issues) 2026-03-22 07:30:22 +03:00
edidealt
7e16dc23c2
Merge pull request #380 from DanTheMan827/singleton
Convert classes to singleton pattern
2026-03-22 03:36:13 +02:00
edidealt
6f8b479d0f infinite track playing for popular tracks 2026-03-21 23:25:16 +00:00
Daniel
e32fbc3813 refactor(UIRenderer): convert to singleton 2026-03-21 18:14:48 -05:00
Daniel
2fdd169ba0 refactor(Hifi): convert to singleton 2026-03-21 18:05:09 -05:00
Daniel
aa1c6944d2 feat: expose certain classes under the monochrome object when in dev mode 2026-03-21 17:41:19 -05:00
Daniel
c768f8d675 refactor(lyrics): convert to singleton 2026-03-21 17:36:23 -05:00
Daniel
fb4b72bc39 refactor(music-api): convert to singleton 2026-03-21 17:29:04 -05:00
Daniel
852baeaa17 refactor(player): convert to singleton 2026-03-21 17:21:09 -05:00