Commit graph

1736 commits

Author SHA1 Message Date
uimaxbai
de4871ac69 add fallback fonts for international languages 2026-04-13 20:58:35 +01:00
Samidy
7c15027577 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-13 22:51:08 +03:00
Samidy
d462542bbd fix password resets 2026-04-13 22:51:05 +03:00
SamidyFR
3e85941229 style: auto-fix linting issues 2026-04-13 19:02:42 +00:00
Samidy
4497863667 bring back animated album covers + improvements 2026-04-13 22:01:54 +03:00
Samidy
5f8cb6e947 Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-13 18:49:37 +03:00
Samidy
4c9f609b75 fuck you edideaur 2026-04-13 18:49:34 +03:00
edideaur
411681a3cd
one line fix btw 2026-04-13 18:42:26 +03:00
uimaxbai
ac08f750ab bump am-lyrics 2026-04-13 14:31:52 +01:00
Samidy
85d4546728
Merge pull request #538 from iannisimo/feature/android-background-audio
Feature/android background audio
2026-04-13 15:43:55 +03:00
Samidy
0bd2f29bce
Merge branch 'main' into feature/android-background-audio 2026-04-13 15:43:24 +03:00
Samidy
83403d43a6 fuck mobile 2026-04-13 15:06:26 +03:00
Samidy
7dd38bac80 feat(artists): Artist Banners 2026-04-13 14:55:13 +03:00
uimaxbai
4f36b60c82 bump am-lyrics 2026-04-12 12:36:15 +01:00
uimaxbai
b9d13182a6 bump am-lyrics 2026-04-11 16:21:27 +01:00
uimaxbai
6f602342b2 bump am-lyrics 2026-04-11 16:12:24 +01:00
uimaxbai
7c642c48a0 bump am-lyrics 2026-04-11 15:57:24 +01:00
uimaxbai
8f851ea203 bump am-lyrics 2026-04-11 14:44:15 +01:00
uimaxbai
3a244f4496 bump am-lyrics 2026-04-11 14:18:18 +01:00
binimum
d876eeb0ec
Merge branch 'main' of https://github.com/monochrome-music/monochrome 2026-04-11 11:53:43 +00:00
binimum
2827184fed
bump am-lyrics and add robust isrc input 2026-04-11 11:51:53 +00:00
p1nkhamster
49fce2944c fix: add good editor picks 2026-04-10 21:59:48 +03:00
Simone Ianniciello
56f8620505 feat(player): use @capgo/capacitor-media-session for android compatibility 2026-04-10 17:25:10 +02:00
Simone Ianniciello
6b3f78e608 fix(android): remove typo 2026-04-10 17:24:14 +02:00
Simone Ianniciello
1ae667bd6d chore(gitignore): ignore autogenerated / devenv paths 2026-04-10 17:23:49 +02:00
edideaur
edbec62a55 fix lockfiles 2026-04-10 16:20:04 +03:00
tryptz
0cbfa4d3f4 Update js/audio-context.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-10 16:06:04 +03:00
tryptz
7142569741 Update js/player.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-10 16:06:04 +03:00
tryptz
2938688308 Update js/hrtf-generator.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-10 16:06:04 +03:00
tryptz
a0e587eb97 style: fix no-descending-specificity for .binaural-sub-setting rules
Move .binaural-sub-setting select before .info/.label/.description so
selector specificity only increases, resolving the stylelint violation.
2026-04-10 16:06:04 +03:00
tryptz
8c9a613bee fix: resolve remaining PR #523 review issues
Guard generateFrequencies against bandCount=1 division by zero, fix
inverted HRTF ITD delays for left-side sources, remove unused variable,
promote _interpolateGains to public API, and add NaN guard to widening.
2026-04-10 16:06:04 +03:00
tryptz
589504d7fd style: auto-fix linting issues 2026-04-10 16:06:04 +03:00
tryptz
79313e7a0a fix: address PR #523 review comments for EQ and binaural DSP
- Remove stale IIR coefficient JSDoc comment
- Reset M/S channel state on EQ import to prevent stale assignments
- Enforce strictly increasing GEQ frequencies to prevent rounding duplicates
- Guard Q calculation against zero octave spacing (Infinity/NaN)
- Export EQ from stored metadata instead of live BiquadFilterNode state
- Accept .csv in legacy GEQ import file input
- Expose public reconnect() on BinauralDSP instead of calling _connectInternal
- Dispatch binaural-mode-changed on channel count change, not just mode change
- Remove no-op channelCount/channelCountMode on MediaElementAudioSourceNode
- Add void to floating promises (toggleBinaural, notifyBinauralChannelCount, _loadBinauralSettings)
- Wrap binauralDspSettings._setAll in try/catch for QuotaExceededError
- Make generateHRTF synchronous (no awaits, was misleadingly async)
2026-04-10 16:06:04 +03:00
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