DFFtoDSF è una utility creata da Miska per convertire i DSD da un formato all'altro.
Qualcuno è a conoscenza dei comandi da utilizzare per la conversione (nello ZIP non trovo uno straccio di info)?
Grazie
DFFtoDSF è una utility creata da Miska per convertire i DSD da un formato all'altro.
Qualcuno è a conoscenza dei comandi da utilizzare per la conversione (nello ZIP non trovo uno straccio di info)?
Grazie
Credo sia:
dff2dsf "infile" "outfile" [tagfile]
PS: ora c'è la v1.2.0
Ultima modifica di bibo01 : 14-10-2014 a 17:57
Si. Ma esiste un comando per fare tutto l'album e non file per file?
Perdonate l'ignoranza ma a che fine la conversione?
se sei su Linux (oppure se installi bash su windoze) ti basta dare:
per convertire in un colpo solo in .dsf tutti i files .dff contenuti nella directory corrente.codice:for file in *.dff; do dff2dsf "$file" "$file.dsf"; done
Ultima modifica di UnixMan : 15-10-2014 a 00:46 Motivo: corretta una svista nel comando...
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.»
il sistema audio
Server HDPlex (i7-6700-WS2016) HQPlayer in Ramdisk + HQPDcontrol> Macmini (roon core + Tidal e qobuz ) ma anche hqplayer client con qobuz installato su portatile> HDPlex NAA (celeron G1840T-WS2016) NAD in Ramdisk, ma anche miniPC fitlet con immagine x86 per NAA > switch rete tp-link, Denafrips Ares2, SPLvolume2, monitor klein+hummel o410+sub Neumann KHo810
di nulla.
BTW: piccolo escursus didattico per spiegare il comando.
Nei sistemi Unix non sono i singoli comandi (programmi) a dover gestire, ciascuno per proprio conto (se lo fanno) le "wildcard" (metacaratteri) come '*' '?', ecc (come avviene in DOS/windoze), ma è la stessa "shell" (AKA "CLI", Command Line Interface/Interpreter) a farlo, per tutti.
Quando su una riga di comando scrivo ad es. *.dff, la shell sostituisce automaticamente questa stringa con la lista di tutti i files che corrispondono al pattern specificato (in questo caso tutti quelli il cui nome termina in .dff) prima di avviare qualsiasi altro comando (i comandi/programmi quindi non vedono le wildcard, ma direttamente la lista di files corrispondente).
Il comando: "for <nome_variabile> in <lista>; do <comando> ; done" definisce un ciclo, che esegue il comando indicato dopo il "do" tante volte quanti sono gli elementi della <lista>, assegnando di volta in volta il valore corrispondente (il singolo elemento della lista) alla variabile il cui nome è stato specificato in "nome_variabile".
Inoltre, sempre la shell sostituisce le stringhe "$nome_variabile" con il valore assegnato alla variabile con quel nome.
In definitiva, il risultato è che il ciclo esegue "n" volte (in questo caso una per ogni file .dff) il comando specificato dopo il "do" (in questo caso dff2dsf), con i relativi argomenti, in questo caso "$file" "$file.dsf", che vengono sostituiti di volta in volta con un elemento della lista, cioè il nome di un file .dff.
P.S.: nel comando che ho scritto nel post precedente c'era un errore (ora ho corretto): il primo argomento deve essere solo "$file" e non "$file.dff" come avevo erroneamente scritto, altrimenti al comando dff2dsf verrebbero passati come primo argomento nomi del tipo file.dff.dff, ovviamente inesistenti.
A questo punto dovrebbe essere evidente che il risultato saranno dei files con nomi del tipo "xxxxx.dff.dsf".
Non è un problema (anzi, potrebbe tornare utile per ricordarsi che sono stati convertiti), ma è "brutto".
Se si vogliono ottenere dei files con nomi più "civili" di tipo "xxxxx.dsf", i files si possono rinominare a posteriori, ad es. con il comando:
N.B.: solo se si è su una Debian o derivate (Mint, *Ubuntu, ecc) che hanno il comando rename scritto in Perl che usa quella sintassi! Purtroppo altre distribuzioni (tipicamente tutte le parenti di RedHat/Fedora) usano un comando "rename" diverso che usa una sintassi completamente diversa.codice:rename 's/\.dff\.dsf/.dsf/' *.dff.dsf
In alternativa più elegantemente si può modificare il ciclo in modo da utilizzare direttamente il nome "giusto". Ad es.:
La sintassi "$(<comando>)" esegue il comando al suo interno e sostituisce a sé stessa l'output del comando specificato all'interno delle parentesi, in questo caso "basename" che, utilizzato in quel modo, "taglia via" la stringa specificata come secondo argomento dalla fine del primo. Il risultato finale è che si ottiene il nome del file "senza estensione" (cui segue quella nuova, ottenendo così il nome di destinazione desiderato).codice:for file in *.dff; do dff2dsf "$file" "$(basename "$file" .dff).dsf"; done
Ora provatevi a fare una cosa del genere con la GUI di windoze (o MacOS) senza dover compiere una infinità di operazioni ripetitive a mano, se ci riuscite...
P.S.: va da sé che il comando puoi anche salvarlo sotto forma di comodo "script". Basta scriverlo in un file che ad es. puoi chiamare "dff2dsf.sh":
rendere eseguibile il file con il comando:codice:#!/bin/bash for file in *.dff do dff2dsf "$file" "$(basename "$file" .dff).dsf" done
e spostarlo in una dir inclusa nel PATH, ad es. /usr/local/bin oppure ~/bin (cioè $HOME/bin/).codice:chmod +x dff2dsf.sh
A questo punto, ogni volta che vuoi convertire tutti i .dff in una directory in .dsf, non devi fare altro che dare il comando df2dsf.sh ed il gioco è fatto.
Ultima modifica di UnixMan : 15-10-2014 a 01:09
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.»
Credo che per win basti scaricare il mitico Total commander..selezionare quello che si vuole e premere f6 con un bel *.dsf..et voila.
Gianni...
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)