Originariamente inviato da
UnixMan
“C3PO” è un droide autonomo, indipendente... non un "plugin" di un altro sistema...
"man in the middle", quella poteva essere la soluzione!
Prima che qualcuno chiami la neuro pensando che stia dando i numeri, provo a spiegarmi.
Il nostro problema: avere la possibilità di "processare" a piacimento (ad es. "upsamplare", filtrare, fare convoluzioni o quant'altro) gli stream audio a monte del "player" (o "renderer" che dir si voglia), con la possibilità di svolgere tali operazioni su una macchina diversa da quella dove gira squeezelite.
Come prima cosa abbiamo pensato e tentato di utilizzare direttamente LMS, sfruttandone le opzioni di configurazione... ma ci siamo scontrati con una serie di problemi insolubili. A quel punto Marco ha pensato bene di aggirare
quei problemi creando un plugin per LMS.
Ma per il nostro problema originale ci sarebbe stata un'altra soluzione possibile, che probabilmente sarebbe più semplice, più comoda e versatile: anziché agire su LMS (e su squeezelite) avremmo potuto invece aggiungere un altro pezzo, autonomo ed indipendente, che si frappone tra LMS e squeezelite: una sorta di "man in the middle", per l'appunto.
In sostanza si sarebbe trattato di creare un software che si presenta verso LMS come un player e verso squeezelite come un server LMS.
Questo nuovo software riceverebbe i vari comandi, le info e lo stream "nativo" da LMS, lo elaborerebbe come vogliamo e poi ritrasmetterebbe il tutto (adeguatamente corretto) a squeezelite (e quanto ricevuto da questo indietro verso LMS, nel caso la comunicazione sia bidirezionale).
Tutto ciò senza dover modificare in alcun modo né aggiungere alcunché né a squeezelite né a LMS, quindi senza interferenze: nessun problema di compatibilità con altri elementi dell'ecosistema, né con configurazioni, plugin e servizi vari (ad es. "Qobuz"), ecc, che non si accorgerebbero neanche della presenza del nostro "man in the middle".
Inoltre si tratterebbe di un software completamente autonomo ed indipendente, quindi più facile da mantenere, non essendo legato agli sviluppi futuri degli altri software (a meno ovviamente di cambiamenti nel protocollo di comunicazione tra il server LMS ed i "player", cosa però a dir poco improbabile in quanto renderebbe le nuove versioni incompatibili con i sistemi preesistenti).
Come se non bastasse ci sarebbe l'ulteriore vantaggio di avere la possibilità (se si vuole) di separare tale nuovo "server intermedio" tanto dalla macchina su cui gira squeezelite quanto da quella dove gira LMS, cosa che potrebbe tornare comoda ad es. per sfruttare i server LMS che girano su alcuni NAS, ecc.
...perché non ci ho pensato prima?
