feat: apply Option A linear forward path topology with wlim and tlim as final output stages
This commit is contained in:
91
graph.json
91
graph.json
@@ -28,9 +28,6 @@
|
||||
"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,
|
||||
@@ -81,18 +78,14 @@
|
||||
"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.014, "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.060, "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.080, "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.100, "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.130, "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.200, "mk_5": 1.5, "bth_5": 1.0, "bsa_5": 1.0, "scm_5": 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
|
||||
"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
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -179,6 +172,23 @@
|
||||
"gain": 1.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "lv2",
|
||||
"name": "thermal_guard",
|
||||
"plugin": "http://lsp-plug.in/plugins/lv2/sc_compressor_stereo",
|
||||
"control": {
|
||||
"enabled": 1,
|
||||
"g_in": 1.0,
|
||||
"g_out": 1.0,
|
||||
"at": 2500.0,
|
||||
"rt": 5000.0,
|
||||
"al": 0.4,
|
||||
"cr": 4.0,
|
||||
"kn": 0.5,
|
||||
"scp": 0,
|
||||
"scm": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "lv2",
|
||||
"name": "wlim",
|
||||
@@ -189,50 +199,21 @@
|
||||
"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.4,
|
||||
"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(1.0W / 6.25W) = sqrt(0.16) = 0.4 (-7.96 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,
|
||||
"rt": 2000.0,
|
||||
"al": 0.126491,
|
||||
"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."
|
||||
"scp": 0,
|
||||
"scm": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -261,16 +242,12 @@
|
||||
{"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": "convLW:Out", "input": "thermal_guard:in_l"},
|
||||
{"output": "convRW:Out", "input": "thermal_guard:in_r"},
|
||||
{"output": "thermal_guard:out_l", "input": "wlim:in_1"},
|
||||
{"output": "thermal_guard:out_r", "input": "wlim:in_2"},
|
||||
{"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"}
|
||||
],
|
||||
@@ -279,8 +256,8 @@
|
||||
"user_eq:in_r"
|
||||
],
|
||||
"outputs": [
|
||||
"thermal_guard:out_l",
|
||||
"thermal_guard:out_r",
|
||||
"wlim:out_1",
|
||||
"wlim:out_2",
|
||||
"tlim:out_1",
|
||||
"tlim:out_2"
|
||||
],
|
||||
|
||||
@@ -28,9 +28,6 @@
|
||||
"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,
|
||||
@@ -81,8 +78,6 @@
|
||||
"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,
|
||||
@@ -90,9 +85,7 @@
|
||||
"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
|
||||
"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
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -179,23 +172,12 @@
|
||||
"gain": 1.2
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "lv2",
|
||||
"name": "wlim",
|
||||
"plugin": "http://plugin.org.uk/swh-plugins/fastLookaheadLimiter",
|
||||
"control": {
|
||||
"ingain": 0,
|
||||
"limit": -0.5,
|
||||
"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,
|
||||
@@ -203,13 +185,18 @@
|
||||
"al": 0.4,
|
||||
"cr": 4.0,
|
||||
"kn": 0.5,
|
||||
"scp": 1,
|
||||
"scm": 1,
|
||||
"__comment_thermal__": "VIRTUAL VOICE-COIL WOOFER THERMAL GUARD (1.0W 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(1.0W / 6.25W) = sqrt(0.16) = 0.4 (-7.96 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."
|
||||
"scp": 0,
|
||||
"scm": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "lv2",
|
||||
"name": "wlim",
|
||||
"plugin": "http://plugin.org.uk/swh-plugins/fastLookaheadLimiter",
|
||||
"control": {
|
||||
"ingain": 0,
|
||||
"limit": 0,
|
||||
"release": 0.25
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -218,7 +205,6 @@
|
||||
"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,
|
||||
@@ -226,13 +212,8 @@
|
||||
"al": 0.126491,
|
||||
"cr": 4.0,
|
||||
"kn": 0.5,
|
||||
"scp": 1,
|
||||
"scm": 1,
|
||||
"__comment_thermal__": "VIRTUAL VOICE-COIL TWEETER THERMAL GUARD (100mW 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.100W / 6.25W) = sqrt(0.016) = 0.126491 (-17.96 dBFS)",
|
||||
"__comment_timing__": "Thermal Integration (at): 1000ms (1.0s heating tau), Thermal Cooling (rt): 2000ms (2.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."
|
||||
"scp": 0,
|
||||
"scm": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -247,12 +228,12 @@
|
||||
}
|
||||
],
|
||||
"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": "user_eq:out_l", "input": "equalizer:in_l"},
|
||||
{"output": "user_eq:out_r", "input": "equalizer:in_r"},
|
||||
{"output": "equalizer:out_l", "input": "virtualbass:in_l"},
|
||||
{"output": "equalizer:out_r", "input": "virtualbass:in_r"},
|
||||
{"output": "virtualbass:out_l", "input": "multiband_compressor:in_l"},
|
||||
{"output": "virtualbass: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"},
|
||||
@@ -261,16 +242,12 @@
|
||||
{"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": "convLW:Out", "input": "thermal_guard:in_l"},
|
||||
{"output": "convRW:Out", "input": "thermal_guard:in_r"},
|
||||
{"output": "thermal_guard:out_l", "input": "wlim:in_1"},
|
||||
{"output": "thermal_guard:out_r", "input": "wlim:in_2"},
|
||||
{"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"}
|
||||
],
|
||||
@@ -279,8 +256,8 @@
|
||||
"user_eq:in_r"
|
||||
],
|
||||
"outputs": [
|
||||
"thermal_guard:out_l",
|
||||
"thermal_guard:out_r",
|
||||
"wlim:out_1",
|
||||
"wlim:out_2",
|
||||
"tlim:out_1",
|
||||
"tlim:out_2"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user