Open Rsantct opened 6 years ago
Se implementa en la branch master_preset2.0
Cambios relevantes:
bin/server_process.py
v2.0f
speaker.get("out_channels", channel)
que queda en desuso por ser un mapeo en lspk/altavoz/speaker
que solo servía para resolver esta función. Se pasa a usar read_brutefir_process.py
bin/presets.py
v2.0
bin/read_brutefir_process.py
v2.1b
outputsMap
server_process.py
lspk/altavoz/presets.ini
Un ejemplo:
p 1 es un preset con cajas fullrange sin filtrar
[dynaudios]
; (i) cajas full range a pelo sin filtrado de caja, con PEQ matamodos
fr_L = 0.0 0.0 dirac_pulse
fr_R = 0.0 0.0 dirac_pulse
peq = c5
drc = off
balance = 0
p 2 es un preset con las mismas cajas limitadas a 80Hz y un subwoofer. Además el filtrado de la caja derecha es distinto del de la izquierda.
[dyns+sub]
; (i) cajas limitadas a 80 Hz, cruzadas con el subwoofer de amr
fr_L = 0.0 0.0 hpf_80
fr_R = 0.0 0.0 hpf_80_v2
sw1 = 6.0 0.0 sw_amr
peq = c5
drc = off
balance = 0
Veamos el comportamiento del sistema: (nota: el resto de vias que se ven son experimentales de otros altavoces conmutableas al vuelo)
~$ p 1; read_brutefir_process.py | grep ^f_ ; jack_conexiones.py brutefir
(presets) Configurando preset: dynaudios
f_eq_L 0 c_eq0 dirac pulse
f_eq_R 1 c_eq1 dirac pulse
f_drc_L -1 (no filter)
f_drc_R -1 (no filter)
f_fr_L 24 c_dirac-pulse dirac pulse
f_hi_L 12 c_lp-hi1 lp-hi.pcm
f_lo_L 14 c_lp-lo1 lp-lo.pcm
f_fr_R 24 c_dirac-pulse dirac pulse
f_hi_R 12 c_lp-hi1 lp-hi.pcm
f_lo_R 14 c_lp-lo1 lp-lo.pcm
f_sw1 15 c_lp-sw1 lp-sw_amr.pcm
f_sw2 16 c_lp-sw2 lp-sw_rel.pcm
brutefir:fr_L -->-- system:playback_1
brutefir:fr_R -->-- system:playback_2
~$ p 2; read_brutefir_process.py | grep ^f_ ; jack_conexiones.py brutefir
(presets) Configurando preset: dyns+sub
f_eq_L 0 c_eq0 dirac pulse
f_eq_R 1 c_eq1 dirac pulse
f_drc_L -1 (no filter)
f_drc_R -1 (no filter)
f_fr_L 10 c_lp-fr1 lp-hpf_80.pcm
f_hi_L 12 c_lp-hi1 lp-hi.pcm
f_lo_L 14 c_lp-lo1 lp-lo.pcm
f_fr_R 11 c_lp-fr2 lp-hpf_80_v2.pcm
f_hi_R 12 c_lp-hi1 lp-hi.pcm
f_lo_R 14 c_lp-lo1 lp-lo.pcm
f_sw1 15 c_lp-sw1 lp-sw_amr.pcm
f_sw2 16 c_lp-sw2 lp-sw_rel.pcm
brutefir:fr_L -->-- system:playback_1
brutefir:fr_R -->-- system:playback_2
brutefir:sw1 -->-- system:playback_5
~$ control xover toggle; read_brutefir_process.py | grep ^f_ ; jack_conexiones.py brutefir
f_eq_L 0 c_eq0 dirac pulse
f_eq_R 1 c_eq1 dirac pulse
f_drc_L -1 (no filter)
f_drc_R -1 (no filter)
f_fr_L 17 c_mp-fr1 mp-hpf_80.pcm
f_hi_L 19 c_mp-hi1 mp-hi.pcm
f_lo_L 21 c_mp-lo1 mp-lo.pcm
f_fr_R 18 c_mp-fr2 mp-hpf_80_v2.pcm
f_hi_R 19 c_mp-hi1 mp-hi.pcm
f_lo_R 21 c_mp-lo1 mp-lo.pcm
f_sw1 22 c_mp-sw1 mp-sw_amr.pcm
f_sw2 23 c_mp-sw2 mp-sw_rel.pcm
brutefir:fr_L -->-- system:playback_1
brutefir:fr_R -->-- system:playback_2
brutefir:sw1 -->-- system:playback_5
Se prueba y queda validado.
Merged en las branchs master
e info_display
Se propone revisar el módulo de presets. Actualmente se puede definir una o varias combinaciones:
Activación de vias en jack y coeffs de filtrado que deben cargarse en cada una (para ensayos multialtavoz al vuelo).
Atenuación y retardo en cada vía.
Etapa drc fir
Etapa drc iir (peq)
Ajuste de balance
Se propone:
Poder usar filtros personalizados por driver, ahora son comunes por canal presuponiendo parejas ideales.
Flexibilizar con uno o varios canales de subwoofer
No usar presets en ausencia de
lspk/altavoz/presets.ini
¿otras optimizaciones?