repair instructions for the adventurous or unfortunate

This commit is contained in:
mynameisdeleted
2026-09-04 10:54:48 -04:00
parent 7e89fb631e
commit c44e1081be
2 changed files with 329 additions and 1 deletions

View File

@@ -169,7 +169,9 @@ If your specific physical unit requires custom acoustic tuning:
> While this DSP engine includes virtual thermal-emulation limiters and dynamic excursion limiters as a **best-effort protective measure**, this software is provided **"AS IS", WITH NO IMPLIED WARRANTY OR GUARANTEE OF ANY KIND**. You are solely responsible for protecting your own hardware and managing playback volume levels. The authors and maintainers assume no responsibility or liability for damaged speaker cones, blown voice coils, or hardware failures.
### 🔧 Speaker Replacement & Repair Resources for Power Users
For expert users who wish to customize thresholds, push thermal limits higher, or replace worn factory driver modules:
For expert users who wish to customize thresholds, push thermal limits higher will run a risk of speaker blowout.
Dont increase the limits unless you understand and are prepared for a speaker-driver replacement process at your own risk.
If you wish to replace speaker drivers or to be able to do so yourself these instructions and part-links may help.
* 🛠️ **iFixit Repair Guide:** [MacBook Pro 15" Touch Bar 2018 Speaker Replacement - iFixit](https://www.ifixit.com/Guide/MacBook+Pro+15-Inch+Touch+Bar+2018+Right+Speaker+Replacement/122784)
* 🛒 **Replacement Speaker Modules:** Cheap OEM speaker assemblies are readily available if you ever push limits and need a fresh set of drivers: search for MacBook Pro 15,1 / 15,2 (A1990 2018/2019) Left & Right Speaker Assemblies on [iFixit Parts](https://www.ifixit.com/Parts/MacBook_Pro_15%22_Touch_Bar) or [eBay A1990 Speakers](https://www.ebay.com/sch/i.html?_nkw=macbook+pro+a1990+speakers).

View File

@@ -0,0 +1,326 @@
{
"node.description": "MacBook Pro 15,1 DSP Speakers",
"media.name": "MacBook Pro 15,1 DSP Speakers",
"filter.graph": {
"nodes": [
{
"type": "lv2",
"plugin": "http://lsp-plug.in/plugins/lv2/para_equalizer_x16_stereo",
"name": "user_eq",
"control": {
"enabled": 1, "mode": 0, "g_in": 1.0, "g_out": 1.5,
"ft_0": 5, "f_0": 70.0, "g_0": 1.0, "q_0": 0.7, "s_0": 0,
"ft_1": 1, "f_1": 110.0, "g_1": 1.0, "q_1": 1.0,
"ft_2": 1, "f_2": 220.0, "g_2": 0.95, "q_2": 1.0,
"ft_3": 1, "f_3": 450.0, "g_3": 1.0, "q_3": 1.0,
"ft_4": 1, "f_4": 1000.0, "g_4": 1.0, "q_4": 1.0,
"ft_5": 1, "f_5": 2500.0, "g_5": 1.0, "q_5": 1.0,
"ft_6": 1, "f_6": 6000.0, "g_6": 1.0, "q_6": 1.0,
"ft_7": 3, "f_7": 10000.0, "g_7": 1.0, "q_7": 0.7, "s_7": 0
}
},
{
"type": "lv2",
"plugin": "http://lsp-plug.in/plugins/lv2/para_equalizer_x16_stereo",
"name": "equalizer",
"control": {
"enabled": 1,
"mode": 0,
"g_in": 1.0,
"g_out": 1.5,
"__comment__":"(for f>100) g_N = g_ref * (f_ref / f_N) ^ log2(sqrt(1.5))",
"__comment3__":"note the excessive bass gains require a solid multiband compressor",
"__comment4__":" macbook speakers dont pass f_N<80, thus these frequences are 100% virtualbass",
"ft_0": 2, "f_0": 20.0, "g_0": 2.5637, "q_0": 1.41, "s_0": 3, "xm_0": 0, "fm_0": 0,
"ft_1": 1, "f_1": 31.5, "g_1": 2.2448, "q_1": 1.41, "s_1": 0, "xm_1": 0, "fm_1": 0,
"ft_2": 1, "f_2": 50.0, "g_2": 1.9610, "q_2": 1.41, "s_2": 0, "xm_2": 0, "fm_2": 0,
"ft_3": 1, "f_3": 80.0, "g_3": 1.7091, "q_3": 1.41, "s_3": 0, "xm_3": 0, "fm_3": 0,
"ft_4": 1, "f_4": 125.0, "g_4": 1.5, "q_4": 1.41, "s_4": 0, "xm_4": 0, "fm_4": 0,
"ft_5": 1, "f_5": 200.0, "g_5": 1.3073, "q_5": 1.41, "s_5": 0, "xm_5": 0, "fm_5": 0,
"ft_6": 1, "f_6": 315.0, "g_6": 1.1447, "q_6": 1.41, "s_6": 0, "xm_6": 0, "fm_6": 0,
"ft_7": 1, "f_7": 500.0, "g_7": 1.0, "q_7": 1.41, "s_7": 0, "xm_7": 0, "fm_7": 0,
"ft_8": 1, "f_8": 800.0, "g_8": 0.8716, "q_8": 1.41, "s_8": 0, "xm_8": 0, "fm_8": 0,
"ft_9": 1, "f_9": 1250.0, "g_9": 0.7649, "q_9": 1.41, "s_9": 0, "xm_9": 0, "fm_9": 0,
"ft_10": 1, "f_10": 2000.0, "g_10": 0.6667, "q_10": 1.41, "s_10": 0, "xm_10": 0, "fm_10": 0,
"ft_11": 1, "f_11": 3150.0, "g_11": 0.5837, "q_11": 1.41, "s_11": 0, "xm_11": 0, "fm_11": 0,
"ft_12": 1, "f_12": 5000.0, "g_12": 0.5099, "q_12": 1.41, "s_12": 0, "xm_12": 0, "fm_12": 0,
"ft_13": 1, "f_13": 8000.0, "g_13": 0.4444, "q_13": 1.41, "s_13": 0, "xm_13": 0, "fm_13": 0,
"ft_14": 1, "f_14": 12500.0, "g_14": 0.3901, "q_14": 1.41, "s_14": 0, "xm_14": 0, "fm_14": 0,
"ft_15": 1, "f_15": 20000.0, "g_15": 0.3400, "q_15": 1.41, "s_15": 0, "xm_15": 0, "fm_15": 0
}
},
{
"type": "lv2",
"plugin": "https://chadmed.au/bankstown",
"name": "virtualbass",
"control": {
"bypass": 0,
"amt": 1.0,
"sat_second": 1.0,
"sat_third": 1.0,
"blend": 1.0,
"ceil": 150.0,
"floor": 60.0
}
},
{
"type": "lv2",
"plugin": "http://lsp-plug.in/plugins/lv2/mb_compressor_stereo",
"name": "multiband_compressor",
"control": {
"enabled": 1,
"mode": 1,
"g_in": 1.0,
"g_out": 1.25,
"g_dry": 0.0001,
"g_wet": 1.0,
"cbe_1": 1, "sf_1": 40.0,
"cbe_2": 1, "sf_2": 50.0,
"cbe_3": 1, "sf_3": 60.0,
"cbe_4": 1, "sf_4": 80.0,
"cbe_5": 1, "sf_5": 120.0,
"cbe_6": 1, "sf_6": 200.0,
"cbe_7": 1, "sf_7": 500.0,
"cbe_8": 1, "sf_8": 1000.0,
"cbe_9": 1, "sf_9": 2000.0,
"ce_0": 1, "at_0": 5.0, "rt_0": 100.0, "cr_0": 30.0, "kn_0": 0.10, "al_0": 0.025, "mk_0": 1.0, "bth_0": 1.0, "bsa_0": 1.0, "scm_0": 0,
"ce_1": 1, "at_1": 6.0, "rt_1": 110.0, "cr_1": 30.0, "kn_1": 0.10, "al_1": 0.050, "mk_1": 1.0, "bth_1": 1.0, "bsa_1": 1.0, "scm_1": 0,
"ce_2": 1, "at_2": 6.0, "rt_2": 100.0, "cr_2": 25.0, "kn_2": 0.12, "al_2": 0.070, "mk_2": 1.1, "bth_2": 1.0, "bsa_2": 1.0, "scm_2": 0,
"ce_3": 1, "at_3": 5.0, "rt_3": 90.0, "cr_3": 20.0, "kn_3": 0.12, "al_3": 0.090, "mk_3": 1.2, "bth_3": 1.0, "bsa_3": 1.0, "scm_3": 0,
"ce_4": 1, "at_4": 4.5, "rt_4": 80.0, "cr_4": 16.0, "kn_4": 0.15, "al_4": 0.120, "mk_4": 1.3, "bth_4": 1.0, "bsa_4": 1.0, "scm_4": 0,
"ce_5": 1, "at_5": 4.0, "rt_5": 60.0, "cr_5": 10.0, "kn_5": 0.20, "al_5": 0.250, "mk_5": 1.5, "bth_5": 1.0, "bsa_5": 1.0, "scm_5": 0,
"ce_6": 1, "at_6": 3.0, "rt_6": 40.0, "cr_6": 6.0, "kn_6": 0.30, "al_6": 0.300, "mk_6": 1.4, "bth_6": 1.0, "bsa_6": 1.0, "scm_6": 0,
"ce_7": 1, "at_7": 2.5, "rt_7": 30.0, "cr_7": 4.0, "kn_7": 0.40, "al_7": 0.300, "mk_7": 1.2, "bth_7": 1.0, "bsa_7": 1.0, "scm_7": 0,
"ce_8": 1, "at_8": 2.0, "rt_8": 20.0, "cr_8": 2.0, "kn_8": 0.50, "al_8": 0.300, "mk_8": 1.0, "bth_8": 1.0, "bsa_8": 1.0, "scm_8": 0,
"ce_9": 1, "at_9": 1.5, "rt_9": 10.0, "cr_9": 1.0, "kn_9": 0.60, "al_9": 0.300, "mk_9": 1.0, "bth_9": 1.0, "bsa_9": 1.0, "scm_9": 0
}
},
{
"type": "lv2",
"plugin": "http://lsp-plug.in/plugins/lv2/loud_comp_mono",
"name": "ell",
"control": {
"enabled": 1,
"volume": 0.0
}
},
{
"type": "lv2",
"plugin": "http://lsp-plug.in/plugins/lv2/loud_comp_mono",
"name": "elr",
"control": {
"enabled": 1,
"volume": 0.0
}
},
{
"type": "builtin",
"label": "copy",
"name": "copyL"
},
{
"type": "builtin",
"label": "copy",
"name": "copyR"
},
{
"type": "builtin",
"label": "convolver",
"name": "convLT",
"config": {
"filename": [
"/usr/share/t2-linux-audio/15_1/tweeters-44k.wav",
"/usr/share/t2-linux-audio/15_1/tweeters-48k.wav",
"/usr/share/t2-linux-audio/15_1/tweeters-96k.wav"
],
"channel": 0,
"gain": 1.1
}
},
{
"type": "builtin",
"label": "convolver",
"name": "convRT",
"config": {
"filename": [
"/usr/share/t2-linux-audio/15_1/tweeters-44k.wav",
"/usr/share/t2-linux-audio/15_1/tweeters-48k.wav",
"/usr/share/t2-linux-audio/15_1/tweeters-96k.wav"
],
"channel": 0,
"gain": 1.1
}
},
{
"type": "builtin",
"label": "convolver",
"name": "convLW",
"config": {
"filename": [
"/usr/share/t2-linux-audio/15_1/woofers-44k.wav",
"/usr/share/t2-linux-audio/15_1/woofers-48k.wav",
"/usr/share/t2-linux-audio/15_1/woofers-96k.wav"
],
"channel": 0,
"gain": 1.2
}
},
{
"type": "builtin",
"label": "convolver",
"name": "convRW",
"config": {
"filename": [
"/usr/share/t2-linux-audio/15_1/woofers-44k.wav",
"/usr/share/t2-linux-audio/15_1/woofers-48k.wav",
"/usr/share/t2-linux-audio/15_1/woofers-96k.wav"
],
"channel": 0,
"gain": 1.2
}
},
{
"type": "lv2",
"name": "wlim",
"plugin": "http://plugin.org.uk/swh-plugins/fastLookaheadLimiter",
"control": {
"ingain": 0,
"limit": 0,
"release": 0.25
}
},
{
"type": "lv2",
"name": "thermal_guard",
"plugin": "http://lsp-plug.in/plugins/lv2/sc_compressor_stereo",
"control": {
"enabled": 1,
"mode": 1,
"g_in": 1.0,
"g_out": 1.0,
"at": 2500.0,
"rt": 5000.0,
"al": 0.282843,
"cr": 4.0,
"kn": 0.5,
"scp": 1,
"scm": 1,
"__comment_thermal__": "VIRTUAL VOICE-COIL WOOFER THERMAL GUARD (500mW Rating)",
"__comment_power__": "P_peak = V_peak^2 / R_vc = 5.0^2 / 4.0 = 6.25W Peak per Channel",
"__comment_threshold__": "Linear RMS Threshold: al = sqrt(P_continuous / P_peak) = sqrt(0.50W / 6.25W) = sqrt(0.08) = 0.282843 (-10.97 dBFS)",
"__comment_timing__": "Thermal Integration (at): 2500ms (2.5s heating tau), Thermal Cooling (rt): 5000ms (5.0s exponential decay into air gap)",
"__comment_instructions__": "TO RECALIBRATE: Set al = sqrt(P_target_watts / 6.25W). Set at = tau_heat_ms, rt = tau_cool_ms."
}
},
{
"type": "lv2",
"name": "tweeter_thermal_guard",
"plugin": "http://lsp-plug.in/plugins/lv2/sc_compressor_stereo",
"control": {
"enabled": 1,
"mode": 1,
"g_in": 1.0,
"g_out": 1.0,
"at": 1000.0,
"rt": 2500.0,
"al": 0.109545,
"cr": 4.0,
"kn": 0.5,
"scp": 1,
"scm": 1,
"__comment_thermal__": "ULTRA-SAFE VIRTUAL VOICE-COIL TWEETER THERMAL GUARD (75mW Rating)",
"__comment_power__": "P_peak = V_peak^2 / R_vc = 5.0^2 / 4.0 = 6.25W Peak per Channel",
"__comment_threshold__": "Linear RMS Threshold: al = sqrt(P_continuous / P_peak) = sqrt(0.075W / 6.25W) = sqrt(0.012) = 0.109545 (-19.21 dBFS)",
"__comment_timing__": "Thermal Integration (at): 1000ms (1.0s heating tau), Thermal Cooling (rt): 2500ms (2.5s exponential decay into air gap)",
"__comment_instructions__": "TO RECALIBRATE: Set al = sqrt(P_target_watts / 6.25W). Set at = tau_heat_ms, rt = tau_cool_ms."
}
},
{
"type": "lv2",
"name": "tlim",
"plugin": "http://plugin.org.uk/swh-plugins/fastLookaheadLimiter",
"control": {
"ingain": 0,
"limit": 0,
"release": 0.15
}
}
],
"links": [
{"output": "user_eq:out_l", "input": "virtualbass:in_l"},
{"output": "user_eq:out_r", "input": "virtualbass:in_r"},
{"output": "virtualbass:out_l", "input": "equalizer:in_l"},
{"output": "virtualbass:out_r", "input": "equalizer:in_r"},
{"output": "equalizer:out_l", "input": "multiband_compressor:in_l"},
{"output": "equalizer:out_r", "input": "multiband_compressor:in_r"},
{"output": "multiband_compressor:out_l", "input": "ell:in"},
{"output": "multiband_compressor:out_r", "input": "elr:in"},
{"output": "ell:out", "input": "copyL:In"},
{"output": "elr:out", "input": "copyR:In"},
{"output": "copyL:Out", "input": "convLT:In"},
{"output": "copyL:Out", "input": "convLW:In"},
{"output": "copyR:Out", "input": "convRT:In"},
{"output": "copyR:Out", "input": "convRW:In"},
{"output": "convLW:Out", "input": "wlim:in_1"},
{"output": "convRW:Out", "input": "wlim:in_2"},
{"output": "wlim:out_1", "input": "thermal_guard:in_l"},
{"output": "wlim:out_2", "input": "thermal_guard:in_r"},
{"output": "wlim:out_1", "input": "thermal_guard:sc_l"},
{"output": "wlim:out_2", "input": "thermal_guard:sc_r"},
{"output": "convLT:Out", "input": "tweeter_thermal_guard:in_l"},
{"output": "convRT:Out", "input": "tweeter_thermal_guard:in_r"},
{"output": "convLT:Out", "input": "tweeter_thermal_guard:sc_l"},
{"output": "convRT:Out", "input": "tweeter_thermal_guard:sc_r"},
{"output": "tweeter_thermal_guard:out_l", "input": "tlim:in_1"},
{"output": "tweeter_thermal_guard:out_r", "input": "tlim:in_2"}
],
"inputs": [
"user_eq:in_l",
"user_eq:in_r"
],
"outputs": [
"thermal_guard:out_l",
"thermal_guard:out_r",
"tlim:out_1",
"tlim:out_2"
],
"capture.volumes": [
{
"control": "ell:volume",
"min": -65.0,
"max": 0.0,
"scale": "linear"
},
{
"control": "elr:volume",
"min": -65.0,
"max": 0.0,
"scale": "linear"
}
]
},
"capture.props": {
"node.name": "audio_effect.t2-151-speakers",
"media.class": "Audio/Sink",
"audio.channels": "2",
"audio.position": ["FL", "FR"],
"device.api": "dsp",
"audio.allowed-rates": [48000, 44100],
"node.virtual": "false",
"priority.session": 2500,
"priority.driver": 2500,
"state.default-volume": 1.0,
"device.icon-name": "audio-speakers"
},
"playback.props": {
"node.name": "effect_output.t2-151-speakers",
"node.description": "MacBook Pro 15,1 DSP Speakers Out",
"media.name": "MacBook Pro 15,1 DSP Speakers Out",
"target.object": "alsa_output.platform-sound.RawSpeakers",
"node.dont-fallback": "true",
"node.passive": "true",
"audio.channels": "4",
"audio.allowed-rates": [48000, 44100],
"audio.position": ["FL", "FR", "RL", "RR"]
}
}