Commit graph

1711 commits

Author SHA1 Message Date
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
tryptz
1a6214f3ea fix: restore legacy 16-band graphic EQ CSS removed by PR #509
The visualizer/mobile support PR inadvertently deleted the entire
legacy graphic EQ stylesheet block. This restores vertical slider
bands, preamp, preset row, and mobile responsive styles.
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
uimaxbai
c6a967dc3a deps: bump am-lyrics 2026-04-09 16:29:45 +01:00
SamidyFR
f65af3fb10 style: auto-fix linting issues 2026-04-08 22:39:36 +00:00
Samidy
e06842c1cd Merge branch 'main' of github.com:monochrome-music/monochrome 2026-04-09 01:38:55 +03:00
Samidy
493ac9f175 mobile contribs 2026-04-09 01:38:52 +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
Samidy
7c23b5780d
Merge pull request #534 from windigerbus/main
samidy merge this i won't bother writing a title
2026-04-08 21:56:45 +03:00
windbus
08a85cf8a0 bump version number 2026-04-08 20:54:17 +02: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
uimaxbai
e9131c7e9a deps: bump am-lyrics again again 2026-04-08 13:49:58 +01:00
uimaxbai
080b268e29 deps: bump am-lyrics again 2026-04-07 21:41:47 +01:00
binimum
fdfe1a54d0
deps: update @uimaxbai/am-lyrics to version 1.1.5 2026-04-07 21:33:13 +01:00
Samidy
625b80ff64
Merge pull request #527 from tezvii/main
Fix for visually broken Repeat button
2026-04-07 20:01:46 +03: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