Commit graph

1085 commits

Author SHA1 Message Date
tryptz
88b01570f5 fix: position EQ nodes at individual band gain, not composite sum 2026-04-10 16:06:04 +03:00
tryptz
ab23c3e64e style: auto-fix linting issues 2026-04-10 16:06:04 +03:00
tryptz
5bbc36cdb1 feat: add binaural/spatial DSP with multichannel HRTF rendering
Implement a complete binaural audio processing pipeline that sits before
EQ Studio in the signal chain. Supports multichannel (5.1) HRTF
binauralization for Dolby Atmos and Apple 3D Audio content, with
crossfeed and stereo widening for regular stereo content.

New modules:
- hrtf-generator.js: Procedural HRTF impulse response synthesis using
  Woodworth head model (ITD, ILD, head shadow, pinna coloring)
- binaural-dsp.js: BinauralDSP engine with multichannel splitter,
  per-channel ConvolverNode HRTF rendering, Bauer-style crossfeed
  (low/medium/high), and M/S stereo widener

Integration:
- Audio graph: binaural block inserted before preamp/EQ, multichannel
  passthrough via MediaElementSource channelCount=6
- Storage: binauralDspSettings with full persistence (JSON in localStorage)
- UI: toggle + sub-controls (crossfeed level, HRTF preset, width slider)
  placed before EQ Studio in settings
- Player: auto-enables binaural DSP when Atmos content detected,
  shows binaural badge on Atmos tracks
2026-04-10 16:06:04 +03:00
tryptz
bee43e7e89 style: auto-fix linting issues 2026-04-10 16:06:04 +03:00
tryptz
4c35bed3f2 feat: EQ Studio header, channel select in band editor, tab reorder, legend toggle
- Rename section header to EQ Studio with updated description
- Add ST/M/S channel select dropdown to each parametric band control
- Move Parametric EQ tab before AutoEQ
- Hide Original/Target/Corrected legend in parametric mode
2026-04-10 16:06:04 +03:00
tryptz
2cc95c0ca0 feat: add channel select (ST/M/S) to parametric EQ band editor 2026-04-10 16:06:04 +03:00
tryptz
f892d80bf6 style: auto-fix linting issues 2026-04-10 16:06:04 +03:00
tryptz
44e811f56d feat: per-band Mid/Side EQ, context menus, shelf presets, performance fix
- Add per-band M/S processing with full encoder/decoder matrix in Web Audio API
- Right-click context menu on EQ nodes for filter type and channel switching
- Right-click empty graph space to add nodes
- Remove nearest-node snap-click interaction
- Replace IIR shelf filters with native BiquadFilter for glitch-free updates
- Add 6 M/S showcase presets with research-informed mastering values
- Add 5 shelf-based stereo presets (Warm, Bright, Hi-Fi, Dark, Radio Ready)
- Standard presets now reset all bands to stereo/peaking
- Graph contrast fix for light themes using color-mix()
- Colored help button and rewritten how-to documentation
- Default graph zoom changed to ±16 dB
2026-04-10 16:06:04 +03:00
tryptz
4192263176 style: auto-fix linting issues 2026-04-10 16:06:04 +03:00
tryptz
a16d489b9f fix: address CodeRabbit review - array padding, storage validation, Q accuracy
- Pad band arrays when import/AutoEQ has fewer filters than MIN_BANDS
- Early return in applyAutoEQBands for zero enabled bands
- Persist interpolated gains before audio rebuild on band count change
- Derive export Q from actual octave spacing between adjacent bands
- Validate inputs in all GEQ storage setters
2026-04-10 16:06:04 +03:00
tryptz
55b49cc77a fix: address CodeRabbit review - shelf Q round-trip, IIR gain setters, import persistence, tooltip sum 2026-04-10 16:06:04 +03:00
tryptz
91eaa1f1dc feat: configurable band count and frequency range for legacy graphic EQ
- Add Bands/Min Hz/Max Hz controls to legacy EQ section
- Dynamic frequency generation with log spacing and auto-scaling Q
- Import/export handles variable band counts, Q optional for shelves
- Custom presets interpolate across different band counts
- Update legacy EQ tutorial for new controls
2026-04-10 16:06:04 +03:00
tryptz
0cfff0b0b2 fix: make Q optional in EQ import regex for shelf filters 2026-04-10 16:06:04 +03:00
tryptz
eae8655877 feat: add APO export for legacy EQ and fix shelf filter Q support
- Add Export APO button to legacy graphic EQ (GraphicEQ config line format)
- Fix shelf filters ignoring Q: use IIR filters with RBJ cookbook coefficients
- Update graph visualization to use actual Q for shelf curves
- Omit Q from shelf filters in all EQ text exports
2026-04-10 16:06:04 +03:00
copilot-swe-agent[bot]
31b6af317e fix: apply PR review comments - derive GEQ_FREQUENCIES, validate import, fix delete btn visibility, store preamp in presets
Agent-Logs-Url: https://github.com/tryptz/monochrome-autoeq/sessions/6b47309f-1fb1-479d-91be-c0a54aa94b84

Co-authored-by: tryptz <216453278+tryptz@users.noreply.github.com>
2026-04-10 16:06:04 +03:00
tryptz
cb49904a21 fix: address remaining PR #519 review comments
- Preserve existing preamp when importing files without Preamp line
- Extend import regex to accept k/kHz/Hz suffixes and +signed gains
- Rename localStorage key to monochrome- prefix for backup/restore compat
- Add try/catch to localStorage writes for quota/disabled storage
- Validate custom preset gains array before applying
- Fix delete button visibility for all preset change paths
- Add overflow-x: auto for mobile EQ band scrolling
- Add flex-wrap and responsive sizing for bottom controls on mobile
2026-04-10 16:06:04 +03:00
tryptz
452b810efd fix: apply PR review comments - derive GEQ_FREQUENCIES, validate import, fix delete btn visibility, store preamp in presets 2026-04-10 16:06:04 +03:00
tryptz
79a5e8cf71 Add save/delete custom presets for legacy graphic EQ
Save button prompts for a name and stores the current 16-band gains
as a custom preset in localStorage. Custom presets appear in an
optgroup at the bottom of the preset dropdown. Delete button shows
when a custom preset is selected.

https://claude.ai/code/session_01AgSx7SP1dH5KFmpGXCAUvU
2026-04-10 16:06:04 +03:00
tryptz
ae9446cbd1 Add import/export for legacy graphic EQ
Export outputs EqualizerAPO-compatible format with all 16 bands.
Import accepts EqualizerAPO format or simple freq/gain pairs,
maps to nearest GEQ band by log-frequency distance, and ignores
Q values since legacy mode uses fixed dB sliders.

https://claude.ai/code/session_01AgSx7SP1dH5KFmpGXCAUvU
2026-04-10 16:06:04 +03:00
binimum
4394cce61d style: auto-fix linting issues 2026-04-08 21:20:29 +00:00
binimum
d35c15370e
fix: temporarily disable video artwork at maintainer's request 2026-04-08 22:19:49 +01:00
Samidy
d1aee9dc2c Remove Mossad tracking software (why THE FUCK were we tracking everything) 2026-04-08 23:19:42 +03:00
Samidy
b8818e73c9
im such a fat chud
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-04-08 22:12:58 +03:00
SamidyFR
558df133e1 style: auto-fix linting issues 2026-04-08 18:57:24 +00:00
windbus
07efefff1c Refactor status rendering to fix XSS 2026-04-08 20:53:42 +02:00
Samidy
3fbd4492db Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-08 20:16:50 +03:00
Samidy
efbd16c1f0 let genius annotation feature work in .tf 2026-04-08 20:16:46 +03:00
a
96f670affb
fix scrolling (#533) 2026-04-08 12:41:44 -04:00
tezvii
b40fc4617e
Added await to player.toggleRepeat 2026-04-07 19:41:15 +03:00
tezvii
893138e15b
Add async and await to repeatBtn 2026-04-07 19:40:08 +03:00
Samidy
020176167e Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-06 22:49:18 +03:00
Samidy
6e3ae8a04e update workers link so no more limits 2026-04-06 22:49:15 +03:00
a
1edbcc454e
fix: enable mobile fullscreen visualizer (#517) 2026-04-06 15:15:20 -04:00
SamidyFR
9d1e957f54 style: auto-fix linting issues 2026-04-06 16:56:49 +00:00
Samidy
91d69b4e1a Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-06 19:56:04 +03:00
Samidy
db20643a61 feat(reviews): detailed critics reviews 2026-04-06 19:56:01 +03:00
Nohan-V2
2fac783542 Handle NaN in numeric settings parsing
Replace usages of parseFloat(... ) || default and parseInt(... ) || default with explicit parse + isNaN checks to avoid treating valid numeric zeros as falsy. Changes in js/settings.js and js/storage.js update parsing for replayGain preamp, playback speed, scrobble percentage, equalizer band count, and font size so only NaN triggers the fallback value and valid 0 values are preserved.
2026-04-06 18:34:04 +02:00
SamidyFR
77ffff3a85 style: auto-fix linting issues 2026-04-06 15:54:39 +00:00
Alan Brooks
4dba288592 fix: honor selected visualizer & fix scrollbar bug and lyrics shortcut bug 2026-04-06 11:50:48 -04:00
Samidy
704074d275 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-06 15:55:34 +03:00
Samidy
d7642ff78e test: Add first row of tests for the site 2026-04-06 15:55:30 +03:00
SamidyFR
b3145c5c3e style: auto-fix linting issues 2026-04-06 11:50:34 +00:00
Samidy
e59e14fdb6
Gracefully handle no Critic Reviews yet 2026-04-06 14:49:53 +03:00
ap5z
d031c44a40 style: auto-fix linting issues 2026-04-06 03:47:25 +00:00
a
f2135cc455
fix: visualizer bugs and better mobile support (#509)
* Refine fullscreen player to look more like apple music

* fix: buttons when in visualizer only mode

* fix: mobile sizing

* Update styles.css

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update js/ui.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat: refine fullscreen apple player

* fix: add lyrics toggle for mobile

* add lyrics toggle for mobile

* wrong branch oops 😭

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-05 23:46:50 -04:00
Alan Brooks
41f6467299 wrong branch oops 😭 2026-04-05 23:45:46 -04:00
Alan Brooks
daa553488f add lyrics toggle for mobile 2026-04-05 23:41:34 -04:00
Alan Brooks
4dd3ec1a0c fix: add lyrics toggle for mobile 2026-04-05 23:03:59 -04:00
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