Le voci Filter Finder di un automatore elaborano la musica in base alla lunghezza?

1

Voglio fare un flusso di lavoro di un automatore per trovare determinati file audio in una cartella, ma voglio che guardi la durata di quei file. Sto cercando campioni audio piuttosto brevi di meno di 2 secondi. Sembra che non abbia la possibilità di filtrare per durata. C'è qualche altro modo per farlo in Automator?

In alternativa, posso facilmente creare una Smart Folder che contenga ciò che sto cercando, ma Automator non riesce a trovare il contenuto di tale Smart Folder per manipolarle ulteriormente. C'è un modo per ottenere il contenuto di una smart folder in Automator?

    
posta Jonathan van Clute 18.04.2017 - 02:49
fonte

1 risposta

2

Supponiamo che tu abbia qualche azione che sta trasmettendo file a Elementi del filtro azione , impostato come Trova i file in cui sono presenti tutte le seguenti e Kind is music .

Ciò garantisce ciò che viene passato alla prossima azione , una Esegui script shell azione , impostata come Shell: / bin / bash e Passa l'input come argomenti sono file musicali.

Sostituisci il codice predefinito Esegui script shell azione , con le impostazioni precedenti, con il seguente codice :

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print int($3)}')"
    if [[ $d -lt 2 ]]; then
        echo "$f"
    fi
done

I risultati del code precedente sono i pathname completo dei file musicali con meno di 2 secondi di durata e vengono passati alla successiva azione come elenco .

Per indirizzare il tuo secondo commento alla mia risposta originale, utilizza il seguente codice al posto del codice sopra:

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print $3}')"
    if (( $(echo "1.5 > $d" | bc -l) )); then
        echo "$f"
    fi
done
    
risposta data 18.04.2017 - 07:07
fonte

Leggi altre domande sui tag