Reworks the per-peer shaping tab (held for next release):
* Renamed the tab to "Volume, pan and EQ for peers"; the Preferences toggle now defaults ON.
* Collapsed the two master switches (Enable EQ / Enable pan) into ONE: "Enable volume, pan and
EQ for all peers" (Alt+E). Volume now obeys it too. PeerDspChain.Build takes a single enabled
flag; Profile.EnableAllPeerShaping replaces the two bools (old ones kept for load-migration).
* Peer picker is now a CheckedListBox: ticking a peer shapes them (per-peer bypass via new
PeerShaping.Enabled, default true); the focused row is the one the controls edit. Effective
shaping = master switch AND that peer's tick. Letter-nav suppressed so keys never toggle a tick.
* Three EQ modes, renamed: "3 band simple EQ", "12 band advanced graphic EQ", and the new
"16 band parametric EQ" (PeerEqMode.Parametric16Band).
* Parametric EQ: up to 16 user bands, each a boost/cut across a start->end range (PeerShaping
.ParametricBands; ParametricToPeaking maps range -> peaking centre+Q, shared by DSP and curve).
Add band dialog (spin-or-type, numeric-only, live preview, OK/Escape); Bands list sorted
bass->treble reading "X Hz to Y Hz, plus/minus N dB"; Delete key / Delete button, multi-select.
Set peer EQ to default clears the parametric list too.
* dB now spoken as words ("plus 3 dB" / "minus 6 dB" / "flat") on the graphic sliders and the
parametric list, since NVDA users typically have punctuation off and never hear a "+".
* New unbound machine-wide global shortcut "Toggle volume, pan and EQ for all peers" (not stored
in any profile) via the hotkey controller + settings store.
* Renamed the Inputs/outputs "Set volume for all received audio" to "Master receive volume".
* Added EqCurveControl: a purely-visual EQ response graph (not focusable, invisible to NVDA).
* Full manual sweep (readme.html + regenerated MANUAL.md).
Build clean; --selftest passes. Deployed to both test folders. Held for next release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
361 lines
11 KiB
JSON
361 lines
11 KiB
JSON
{
|
|
"runtimeTarget": {
|
|
"name": ".NETCoreApp,Version=v10.0",
|
|
"signature": ""
|
|
},
|
|
"compilationOptions": {},
|
|
"targets": {
|
|
".NETCoreApp,Version=v10.0": {
|
|
"RemSound/3.9": {
|
|
"dependencies": {
|
|
"CUETools.Codecs.FLAKE": "1.0.5",
|
|
"Concentus.Native.NetCore": "1.5.2",
|
|
"Concentus.Oggfile": "1.0.7",
|
|
"Mono.Nat": "3.0.4",
|
|
"NAudio": "2.3.0",
|
|
"NAudio.Lame": "2.1.0",
|
|
"RemSound.Core": "1.0.0",
|
|
"RemSound.Receiver": "1.0.0",
|
|
"RemSound.Sender": "1.0.0"
|
|
},
|
|
"runtime": {
|
|
"RemSound.dll": {}
|
|
}
|
|
},
|
|
"Concentus/2.2.2": {
|
|
"runtime": {
|
|
"lib/net8.0/Concentus.dll": {
|
|
"assemblyVersion": "2.2.2.0",
|
|
"fileVersion": "2.2.2.0"
|
|
}
|
|
}
|
|
},
|
|
"Concentus.Native.NetCore/1.5.2": {
|
|
"runtimeTargets": {
|
|
"runtimes/linux-arm64/native/libopus.so": {
|
|
"rid": "linux-arm64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/linux-armv6/native/libopus.so": {
|
|
"rid": "linux-armv6",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/linux-x64/native/libopus.so": {
|
|
"rid": "linux-x64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/osx-arm64/native/libopus.dylib": {
|
|
"rid": "osx-arm64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/osx-x64/native/libopus.dylib": {
|
|
"rid": "osx-x64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/win-arm64/native/opus.dll": {
|
|
"rid": "win-arm64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/win-x64/native/opus.dll": {
|
|
"rid": "win-x64",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
},
|
|
"runtimes/win-x86/native/opus.dll": {
|
|
"rid": "win-x86",
|
|
"assetType": "native",
|
|
"fileVersion": "0.0.0.0"
|
|
}
|
|
}
|
|
},
|
|
"Concentus.Oggfile/1.0.7": {
|
|
"dependencies": {
|
|
"Concentus": "2.2.2"
|
|
},
|
|
"runtime": {
|
|
"lib/net8.0/Concentus.Oggfile.dll": {
|
|
"assemblyVersion": "1.0.7.0",
|
|
"fileVersion": "1.0.7.0"
|
|
}
|
|
}
|
|
},
|
|
"CUETools.Codecs/1.0.2": {
|
|
"runtime": {
|
|
"lib/netstandard2.0/CUETools.Codecs.dll": {
|
|
"assemblyVersion": "1.0.2.0",
|
|
"fileVersion": "1.0.2.0"
|
|
}
|
|
}
|
|
},
|
|
"CUETools.Codecs.FLAKE/1.0.5": {
|
|
"dependencies": {
|
|
"CUETools.Codecs": "1.0.2"
|
|
},
|
|
"runtime": {
|
|
"lib/netstandard2.0/CUETools.Codecs.FLAKE.dll": {
|
|
"assemblyVersion": "1.0.5.0",
|
|
"fileVersion": "1.0.5.0"
|
|
}
|
|
}
|
|
},
|
|
"Mono.Nat/3.0.4": {
|
|
"runtime": {
|
|
"lib/net6.0/Mono.Nat.dll": {
|
|
"assemblyVersion": "3.0.0.0",
|
|
"fileVersion": "3.0.4.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.Asio": "2.3.0",
|
|
"NAudio.Core": "2.3.0",
|
|
"NAudio.Midi": "2.3.0",
|
|
"NAudio.Wasapi": "2.3.0",
|
|
"NAudio.WinForms": "2.3.0",
|
|
"NAudio.WinMM": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/net6.0-windows7.0/NAudio.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.Asio/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.Core": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/net8.0-windows7.0/NAudio.Asio.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.Core/2.3.0": {
|
|
"runtime": {
|
|
"lib/netstandard2.0/NAudio.Core.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.Lame/2.1.0": {
|
|
"dependencies": {
|
|
"NAudio.Core": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/netstandard2.0/NAudio.Lame.dll": {
|
|
"assemblyVersion": "2.0.1.0",
|
|
"fileVersion": "2.0.1.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.Midi/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.Core": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/netstandard2.0/NAudio.Midi.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.Wasapi/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.Core": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/netstandard2.0/NAudio.Wasapi.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.WinForms/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.WinMM": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"NAudio.WinMM/2.3.0": {
|
|
"dependencies": {
|
|
"NAudio.Core": "2.3.0"
|
|
},
|
|
"runtime": {
|
|
"lib/net6.0/NAudio.WinMM.dll": {
|
|
"assemblyVersion": "2.3.0.0",
|
|
"fileVersion": "2.3.0.0"
|
|
}
|
|
}
|
|
},
|
|
"RemSound.Core/1.0.0": {
|
|
"runtime": {
|
|
"RemSound.Core.dll": {
|
|
"assemblyVersion": "1.0.0.0",
|
|
"fileVersion": "1.0.0.0"
|
|
}
|
|
}
|
|
},
|
|
"RemSound.Receiver/1.0.0": {
|
|
"dependencies": {
|
|
"Concentus": "2.2.2",
|
|
"NAudio": "2.3.0",
|
|
"RemSound.Core": "1.0.0"
|
|
},
|
|
"runtime": {
|
|
"RemSound.Receiver.dll": {
|
|
"assemblyVersion": "1.0.0.0",
|
|
"fileVersion": "1.0.0.0"
|
|
}
|
|
}
|
|
},
|
|
"RemSound.Sender/1.0.0": {
|
|
"dependencies": {
|
|
"Concentus": "2.2.2",
|
|
"NAudio": "2.3.0",
|
|
"RemSound.Core": "1.0.0"
|
|
},
|
|
"runtime": {
|
|
"RemSound.Sender.dll": {
|
|
"assemblyVersion": "1.0.0.0",
|
|
"fileVersion": "1.0.0.0"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"libraries": {
|
|
"RemSound/3.9": {
|
|
"type": "project",
|
|
"serviceable": false,
|
|
"sha512": ""
|
|
},
|
|
"Concentus/2.2.2": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-2B9YmHPKO+k7YpAAnqmiXwiMJnfjfj1C868RszOll2iZWLnGTAiC1q21L/d7CvTan7T+hyqU8dR0Dcy3cpjVfQ==",
|
|
"path": "concentus/2.2.2",
|
|
"hashPath": "concentus.2.2.2.nupkg.sha512"
|
|
},
|
|
"Concentus.Native.NetCore/1.5.2": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-ry9TdS2Su3dOtWalTT6d0aJyx3NPQ/NjisotmAKxmgPdnhYpymZeZHZz4WnRA5Vw71yUnhj1lHqPQP71O5hHTg==",
|
|
"path": "concentus.native.netcore/1.5.2",
|
|
"hashPath": "concentus.native.netcore.1.5.2.nupkg.sha512"
|
|
},
|
|
"Concentus.Oggfile/1.0.7": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-rKWtI5oiTWqK2ol1aWvIT1BRTPi07Uo1hAet0ysQoZQqFo/mxBRwr+ERw89fIdkL3tbMf3ncoW7b3HDGx8Sk4g==",
|
|
"path": "concentus.oggfile/1.0.7",
|
|
"hashPath": "concentus.oggfile.1.0.7.nupkg.sha512"
|
|
},
|
|
"CUETools.Codecs/1.0.2": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-nWTrdvV8sBVkOcAxkARSMuLnbSJEYEZvPLJhsXKaBrac6lJyTNUyFuChB2/mIZiODJ1gPdDNoPx2yynI4TgKIA==",
|
|
"path": "cuetools.codecs/1.0.2",
|
|
"hashPath": "cuetools.codecs.1.0.2.nupkg.sha512"
|
|
},
|
|
"CUETools.Codecs.FLAKE/1.0.5": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-s+ubq2xIG2M8vKgE4JRuTm4LxXhT0DlUlIAA5P00w72PxhliVJ+GOfntUXTlA7CU55cyV+evb3FbJBPuTdqNTA==",
|
|
"path": "cuetools.codecs.flake/1.0.5",
|
|
"hashPath": "cuetools.codecs.flake.1.0.5.nupkg.sha512"
|
|
},
|
|
"Mono.Nat/3.0.4": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-oodXnwdcML4qUaZ+J44gaC/hn0n3uZHkvxScdt8NOcBbmbNmA7z1t5FEvUvn8cOnYSha8F4ZS57FJuXSKYhqdw==",
|
|
"path": "mono.nat/3.0.4",
|
|
"hashPath": "mono.nat.3.0.4.nupkg.sha512"
|
|
},
|
|
"NAudio/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-xN+Lzlu9DmXqBiL6XkP0VZmgTxZPdSGjVSWtKG9HKuar3LhIYNOIYQETieigS+QDS+nrs1QmHbBWWOru0nWA5A==",
|
|
"path": "naudio/2.3.0",
|
|
"hashPath": "naudio.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.Asio/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-I+rAAPT8vmSEw4d4ie+AoSkrvNK6ylRrXznnjQKS+qZgTA9Jnt1Pxe0EaU8nXxOOq5h8ucBSWccBEw6I/J0nkQ==",
|
|
"path": "naudio.asio/2.3.0",
|
|
"hashPath": "naudio.asio.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.Core/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-jMd7r6dB6tAtXhOYL58ntPqwERNm1/Rhw5MKOIYvsnXzuX+PTGsa2VMam6n0npZYSwlSidKa4GAm4bFcXFUlcg==",
|
|
"path": "naudio.core/2.3.0",
|
|
"hashPath": "naudio.core.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.Lame/2.1.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-Y+FtVgvjT+bNpBFqDiAKcFGelix1UavpX66vLymzWalXOGvY+MsoLNKL6aNGA0INjvBxeI3qd1LlD+bg7Nv2Ww==",
|
|
"path": "naudio.lame/2.1.0",
|
|
"hashPath": "naudio.lame.2.1.0.nupkg.sha512"
|
|
},
|
|
"NAudio.Midi/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-t8wvPFPHHQOHhoNMCaDE8OiYZoJuxmY4H6UPBtmnf+xx7oQuajFCqlG4Q00ID+tiEyj471WeVb4Nkylr4tDoow==",
|
|
"path": "naudio.midi/2.3.0",
|
|
"hashPath": "naudio.midi.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.Wasapi/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-y5K2BxrLnvohgu5znzg5wRsai3YcuNXfrpo68i7PmCQqpK5MC/R24e5aO3OyN/XhfRr12e0QYV0OnUWEHi5SzA==",
|
|
"path": "naudio.wasapi/2.3.0",
|
|
"hashPath": "naudio.wasapi.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.WinForms/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-vyKqFUlAZrZ0QPcCM1T+zimjYgC1cNDloHaiOdtV4S1eK4AGu3Dz1EE4yy/WgcneJwQNjGFaELY7b2TsL+g56w==",
|
|
"path": "naudio.winforms/2.3.0",
|
|
"hashPath": "naudio.winforms.2.3.0.nupkg.sha512"
|
|
},
|
|
"NAudio.WinMM/2.3.0": {
|
|
"type": "package",
|
|
"serviceable": true,
|
|
"sha512": "sha512-5G1dRjsZm50T3luyuqcmI2BSvj3K4ZJaD/x776/0Epj88qOsOryDZG40+MufwIk1UFJSFWhRobBqtJYFc8Ss4g==",
|
|
"path": "naudio.winmm/2.3.0",
|
|
"hashPath": "naudio.winmm.2.3.0.nupkg.sha512"
|
|
},
|
|
"RemSound.Core/1.0.0": {
|
|
"type": "project",
|
|
"serviceable": false,
|
|
"sha512": ""
|
|
},
|
|
"RemSound.Receiver/1.0.0": {
|
|
"type": "project",
|
|
"serviceable": false,
|
|
"sha512": ""
|
|
},
|
|
"RemSound.Sender/1.0.0": {
|
|
"type": "project",
|
|
"serviceable": false,
|
|
"sha512": ""
|
|
}
|
|
}
|
|
} |