Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Caro Marco,
mi sono iscritto a questo forum (che non conoscevo, mea culpa) apposta per ringraziarti della tua iniziativa di realizzare questo plugin.
Avevo già scritto sul forum.slimdevices: personalmente sono interessato all'equalizzazione e più in generale alle possibilità di DRC che sox potrebbe permettere. La mia idea era nata leggendo un post su un ennesimo altro forum: Synology Forum ? View topic - Transform LMS in simple DSP for Digital Room Correction
Vengo al nocciolo: pensi che sarebbe possible, in una versione futura del tuo plugin, avere la possibilità di passare una lista di opzioni a sox, come se fossero in una linea di comando?
Già solo questa possibilità sarebbe fantastica, per i miei bisogni.
Ciao, benvenuto e grazie, ma di la sei sempre scala? vuoi dire che sei riuscito a capire il mio pessimo inglese? sono commosso...
Ci sono diverse risposte:
a. Sai che esiste Inguz plugin che fa proprio quello (secondo me maluccio, ma lo fa).
b. se hai la lista di opzioni testata e funzionante sarebbe banale, potrei aprire una voce "others" da 'appendere' alla riga di comando di SOX. Tanto per provare se ti impegni a testarlo almeno su Win, Mac e Linux (nel forum c'è chi può aiutarti, basta chiedere) posso farlo in qualche ora.
c. qualcosa di un minimo più strutturato è comunque nei miei obiettivi.
Se vuoi aiutarmi a capire quali parametri dovrei inserire, che possibili valori ammettono e quale sarebbero i widget grafici giusti da usare (tendina, campo libero, caselle di opzione,...), in altre parole aiutarmi a disegnare l'interfaccia, sei il benvenuto.
Tempi, parliamone....
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Caro Marco
Grazie della risposta, purtroppo non sono molto assiduo sui forum, invece tu sei stato gentilissimo e rapidissimo a rispondere!
Ho usato Inguz in passato, ma adesso uso un NAS come server e Inguz esiste solo in versione Windows. Per questo motivo adesso uso la soluzione ¨ssox¨ spiegata nel messaggio che ho linkato, che ho un po' migliorato usando un file custom-convert.conf personalizzato che mi permette di attivare l'equalizzazione via ssox solo sulla SB3 che tengo in soggiorno, lasciando le mie altre SB Radio senza equalizzazione.
Svantaggio di questa soluzione è che se voglio cambiare i parametri di equalizzazione devo andare a editare dentro il NAS direttamente lo script che implementa ssox.
Come detto, se tu riuscissi a aggiungere la possibiltà di passare altri parametri a sox sarebbe fantastico. Al momento per esempio uso la seguente stringa di parametri
che mi implementano una equalizzazione a tre punti per il subwoofer (tre punti sono il limite della capacità di calcolo del mio NAS... ma un modello tutto nuovo è in arrivo a Natale). Se fosse possibile inserire una simile stringa tramite una ¨casella¨ sull'interfaccia web del tuo plugin sarei a posto. Mi chiedo però, nel caso più SB siano presenti, se tutte riceverebbero a questo punto il comando, o se sia possibile selezionarne una (o più) e lasciare le altre senza equalizzazione.codice:#!/bin/ash /share/MD0_DATA/.qpkg/LogitechMediaServer/bin/sox -v -1.0 $* equalizer 30.0 13.0h +14 equalizer 45.0 5.0h -7 equalizer 142.0 17.0h -7
Per il momento non sono ancora in grado di aiutare per testare eventuali sviluppi: come detto cambierò NAS a breve, e installerò LMS 7.9 (viaggio ancora sotto 7.8.1) e a quel punto dopo le feste sarò ¨operativo¨. Se tutto va bene, potrò anche suggerire varie opzioni per l'interfaccia grafica (i parametri sono tutto sommato semplici e ripetitivi). Peraltro, sox ha ben altre capacità ma che vanno ben al di là dei miei bisogni.
In questo momento sono impegnato per cercare di arrivare in fondo alla compilazione di Squeezelite-r2 per mac, non appena ho finito potrei fare una prova veloce per farti provare se potrebbe funzionare, per poi pensare ad una efficare interfaccia.
No, C-3PO ha una impostazione generale che viene 'ereditata' da tutti i lettori, quindi è possibile 'forzarla' per singolo lettore. In realtà sarebbe posibile differenziare anche per formato in ingresso, ma diventa un problema di 'pesantezza' dell'interfaccia.
Quando sei pronto ne riparliamo volentieri.
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Ciao Marco,
sto provando a far funzionare C-3PO sul mio sistema ma... non ne vuole sapere.
Se metto resampling alla max supported, nei log trovo raffiche di righe come questa:
se invece metto "max syncronous" (tra parentesi, non manca una 'h'?), gli errori se ne vanno, ma mi pare che non vada comunque... nel log di SL c'è questo:codice:[15-12-16 23:43:27.2662] Slim::Utils::Misc::msg (1233) Warning: [23:43:27.2661] Use of uninitialized value $fileSamplerate in concatenation (.) or string at /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/C3PO/Transcoder.pm line 223.
Ho provato a forzarlo aggiungendo "-c wav" a squeezelite... ma peggio che andar di notte:codice:[23:42:12.543039] stream_thread:176 headers: len: 118 HTTP/1.1 200 OK Server: Logitech Media Server (7.9.0 - 1448428613) Connection: close Content-Type: audio/x-flac [23:42:12.600665] write_cb:116 setting track_start [23:42:12.600934] resample_newstream:188 resampling from 44100 -> 384000 [23:42:12.601216] process_newstream:123 processing: active [23:42:12.602382] output_thread:638 open output device: hw:CARD=D20,DEV=0 [23:42:12.602417] alsa_open:355 opening device at: 44100 [23:42:12.602534] alsa_open:406 opened device hw:CARD=D20,DEV=0 using format: S32_LE sample rate: 44100 mmap: 1 [23:42:12.602562] alsa_open:485 buffer: 100 period: 3 -> buffer size: 4410 period size: 1470 [23:42:12.628102] _output_frames:61 start buffer frames: 33576 [23:42:12.628168] _output_frames:146 track start sample rate: 384000 replay_gain: 0 [23:42:12.638195] output_thread:638 open output device: hw:CARD=D20,DEV=0 [23:42:12.653740] alsa_open:355 opening device at: 384000 [23:42:12.654018] alsa_open:406 opened device hw:CARD=D20,DEV=0 using format: S32_LE sample rate: 384000 mmap: 1 [23:42:12.654050] alsa_open:485 buffer: 100 period: 3 -> buffer size: 38400 period size: 12800 [23:42:13.138035] stream_thread:249 end of stream
Evidentemente, il mio odio per LMS è ricambiato...codice:*** /var/log/squeezeboxserver//server.log *** [15-12-16 23:23:51.9101] Slim::Player::Song::open (409) Error: Couldn't create command line for flc playback for [file:///home/data/audio/music/Jazz%20&%20Co/Tommaso%20-%20Rava%20Quartet%20(2000)%20La%20Dolce%20Vita/05%20Il%20Sogno%20Di%20Hitchcock%20(E.Rava).flac]
Ciao, Paolo.
«Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
...forse ce l'ho fatta.
Questo LMS/C-3PO:
e questo è R2:codice:[Thu Dec 17 00:30:46 2015] DEBUG: Pref File: /var/lib/squeezeboxserver/prefs/plugin/C3PO.prefs [Thu Dec 17 00:30:46 2015] DEBUG: Prefs: { "#outByteOrder" => undef, "#useCueSheets" => undef, C3POfolder => "/var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/C3PO", C3POwillStart => "pl", "_client:00:16:e0:02:f0:d7" => { "#outByteOrder" => undef, "#useCueSheets" => undef, "_ts_#outByteOrder" => "1450306811", "_ts_#useCueSheets" => "1450306811", _ts_aliasing => "1450301945", _ts_bandwidth => "1450301945", _ts_codecs => "1450306811", _ts_dither => "1450301945", _ts_enableSeek => "1450306811", _ts_gain => "1450301945", _ts_id => "1450301945", _ts_macaddress => "1450301945", "_ts_maxSupportedSamplerate" => "1450301945", _ts_model => "1450301945", _ts_modelName => "1450301945", _ts_name => "1450301945", _ts_outBitDepth => "1450302477", _ts_outChannels => "1450301945", _ts_outCodec => "1450306695", _ts_outEncoding => "1450301945", _ts_phase => "1450301945", _ts_quality => "1450301945", _ts_resampleTo => "1450306695", _ts_resampleWhen => "1450301945", _ts_sampleRates => "1450306811", "_ts_useGlogalSettings" => "1450301945", _version => 0, aliasing => "on", bandwidth => 907, codecs => { aac => undef, aif => "on", dff => undef, dsf => undef, flc => "on", mp3 => undef, ogg => undef, pcm => "on", wav => "on", }, dither => "on", enableSeek => { aac => undef, aif => "on", dff => undef, dsf => undef, flc => "on", mp3 => undef, ogg => undef, pcm => "on", wav => "on", }, gain => 3, id => "00:16:e0:02:f0:d7", macaddress => "00:16:e0:02:f0:d7", "maxSupportedSamplerate" => 384_000, model => "squeezelite", modelName => "SqueezeLite", name => "spmc", outBitDepth => 4, outChannels => 2, outCodec => "wav", outEncoding => "s", phase => "M", quality => "v", resampleTo => "S", resampleWhen => "A", sampleRates => { 8000 => "on", 11025 => "on", 12000 => "on", 16000 => "on", 22050 => "on", 24000 => "on", 32000 => "on", 44100 => "on", 48000 => "on", 88200 => "on", 96000 => "on", 176400 => "on", 192000 => "on", 352800 => "on", 384000 => "on", 705600 => 0, 768000 => 0, }, useGlogalSettings => "on", }, "_ts_#outByteOrder" => "1450308637", "_ts_#useCueSheets" => "1450308637", _ts_C3POfolder => "1450301944", _ts_C3POwillStart => "1450301944", _ts_aliasing => "1450301944", _ts_bandwidth => "1450301944", _ts_dither => "1450301944", _ts_gain => "1450301944", _ts_logFolder => "1450301944", _ts_outBitDepth => "1450302477", _ts_outChannels => "1450301944", _ts_outCodec => "1450306526", _ts_outEncoding => "1450301944", _ts_pathToC3PO_exe => "1450305806", _ts_pathToC3PO_pl => "1450301944", _ts_pathToFFmpeg => "1450301944", _ts_pathToFaad => "1450301944", _ts_pathToFlac => "1450301944", "_ts_pathToHeaderRestorer_exe" => "1450305806", "_ts_pathToHeaderRestorer_pl" => "1450301944", _ts_pathToPerl => "1450301944", _ts_pathToSox => "1450301944", _ts_phase => "1450301944", _ts_quality => "1450301944", _ts_resampleTo => "1450308632", _ts_resampleWhen => "1450307845", _ts_serverFolder => "1450301944", _version => 0, aliasing => "on", bandwidth => 907, dither => "on", gain => 3, logFolder => "/var/log/squeezeboxserver/", outBitDepth => 4, outChannels => 2, outCodec => "wav", outEncoding => "s", pathToC3PO_exe => undef, pathToC3PO_pl => "/var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/C3PO/C-3PO.pl", pathToFFmpeg => "/usr/bin/ffmpeg", pathToFaad => "/usr/share/squeezeboxserver/Bin/x86_64-linux/faad", pathToFlac => "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac", "pathToHeaderRestorer_exe" => undef, "pathToHeaderRestorer_pl" => "/var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/C3PO/HeaderRestorer.pl", pathToPerl => "/usr/bin/perl", pathToSox => "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox", phase => "M", quality => "v", resampleTo => "X", resampleWhen => "A", serverFolder => "/usr/sbin", } [Thu Dec 17 00:30:46 2015] DEBUG: clientId: 00-16-e0-02-f0-d7 [Thu Dec 17 00:30:46 2015] DEBUG: client: _client:00:16:e0:02:f0:d7 [Thu Dec 17 00:30:46 2015] DEBUG: server foder: /usr/sbin [Thu Dec 17 00:30:46 2015] DEBUG: Start buildCommand [Thu Dec 17 00:30:46 2015] DEBUG: testfile: /home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac [Thu Dec 17 00:30:46 2015] DEBUG: AudioScan: { info => { audio_md5 => "9bb92001339bda1ef63c0204e5ab89ea", audio_offset => 5108, audio_size => 32_946_539, bitrate => 516_605, bits_per_sample => 16, channels => 2, file_size => 32_951_647, jenkins_hash => "2241066192", maximum_blocksize => 4608, maximum_framesize => 11_762, minimum_blocksize => 4608, minimum_framesize => 14, samplerate => 44_100, song_length_ms => 510_200, total_samples => 22_499_820, }, tags => { ALBUM => "Thimar", ARTIST => ["Anouar Brahem", "John Surman", "Dave Holland"], DATE => 1998, GENRE => "Jazz", TITLE => "Badhra", TRACKNUMBER => "01", TRACKTOTAL => 11, VENDOR => "reference libFLAC 1.1.0 20030126", }, } [Thu Dec 17 00:30:46 2015] DEBUG: file samplerate: 44100 [Thu Dec 17 00:30:46 2015] DEBUG: samplerate is supported [Thu Dec 17 00:30:46 2015] DEBUG: Max syncrounus sample rate : 352800 [Thu Dec 17 00:30:46 2015] DEBUG: Target Sample rate : 384000 [Thu Dec 17 00:30:46 2015] DEBUG: willResample ? 1 [Thu Dec 17 00:30:46 2015] DEBUG: Start splitTranscodeAndResample [Thu Dec 17 00:30:46 2015] DEBUG: Start split_ [Thu Dec 17 00:30:46 2015] DEBUG: $inCodec flc [Thu Dec 17 00:30:46 2015] DEBUG: $commandString "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --totally-silent -- "/home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac" [Thu Dec 17 00:30:46 2015] DEBUG: Command: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --totally-silent -- "/home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac" [Thu Dec 17 00:30:46 2015] DEBUG: Resample; "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox" -q -t wav - -t wav -r 384000 -c 2 -4 -s - gain -3 rate -v -M -a -b 90.7 384000 [Thu Dec 17 00:30:46 2015] DEBUG: transcode command: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --totally-silent -- "/home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac" | "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox" -q -t wav - -t wav -r 384000 -c 2 -4 -s - gain -3 rate -v -M -a -b 90.7 384000 [Thu Dec 17 00:30:46 2015] DEBUG: built command: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --totally-silent -- "/home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac" | "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox" -q -t wav - -t wav -r 384000 -c 2 -4 -s - gain -3 rate -v -M -a -b 90.7 384000 [Thu Dec 17 00:30:46 2015] INFO: Command is: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --totally-silent -- "/home/data/audio/music/Jazz & Co/Anouar Brahem, John Surman, Dave Holland (1998) Thimar [ecm 1641]/01 Badhra.flac" | "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox" -q -t wav - -t wav -r 384000 -c 2 -4 -s - gain -3 rate -v -M -a -b 90.7 384000
(l'ho già detto che odio LMS e le interfacce web?! una intera serata a combatterci... ma quanto si sarebbe fatto prima a copiare un banalissimo file di configurazione e via?!?)codice:[00:30:46.417383] stream_thread:176 headers: len: 115 HTTP/1.1 200 OK Server: Logitech Media Server (7.9.0 - 1448428613) Connection: close Content-Type: audio/L16 [00:30:46.648874] output_thread:638 open output device: hw:CARD=D20,DEV=0 [00:30:46.648946] alsa_open:355 opening device at: 384000 [00:30:46.649183] alsa_open:406 opened device hw:CARD=D20,DEV=0 using format: S32_LE sample rate: 384000 mmap: 1 [00:30:46.649213] alsa_open:485 buffer: 100 period: 3 -> buffer size: 38400 period size: 12800 [00:30:46.696058] _check_header:77 WAVE [00:30:46.696130] _check_header:101 header: fmt len: 40 [00:30:46.696143] _check_header:129 pcm size: 4 rate: 384000 chan: 2 bigendian: 0 [00:30:46.696155] _check_header:101 header: fact len: 4 [00:30:46.696166] _check_header:101 header: data len: 1567334400 [00:30:46.696176] _check_header:107 audio size: 1567334400 [00:30:46.696187] pcm_decode:200 setting track_start [00:30:46.696199] resample_newstream:231 disable resampling - rates match [00:30:46.696209] process_newstream:123 processing: inactive [00:30:46.696221] _checkfade:281 fade mode: 2 duration: 0 track-start [00:30:46.696232] _checkfade:290 fade IN: 0 frames [00:30:46.719651] _output_frames:146 track start sample rate: 384000 replay_gain: 0 [00:30:46.729749] _output_frames:174 fade start reached [00:30:46.729821] _output_frames:207 fade complete
Ciao, Paolo.
«Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)