2013-11-15 1 views
0

У меня есть набор стерео .aiff образцов фортепьяно от http://theremin.music.uiowa.edu/MISpiano.htmlBASH: зерна, разделенные каналы и исчезать из партии .AIFFs с Sox

Каждый образец предшествует ~ 5 сек молчания, и исчезает в ~ 30 секунды молчания; то есть он продолжает значительно ниже порога моего слуха.

Я хочу обрезать оба конца. Это приведет к угасанию, чтобы избежать резкого разрыва.

Кроме того, меня интересует только левый канал.

Как я могу выполнить это с моего терминала OS X?

π

PS держать своих лошадей, я собираюсь ответить на этот вопрос сам :)

ответ

1

Здесь мы идем:

for filePath in IN/*.aiff 
do 
    # Trim silence both ends 
    # http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/ 
    ./sox $filePath ./TMP/1_trim.wav silence 1 0.1 1% 1 0.1 0.5% 

    # LEFT channel 
    # https://www.nesono.com/node/275 
    ./sox TMP/1_trim.wav ./TMP/2_mono.wav remix 1 


    # Get length (seconds) 
    # http://stackoverflow.com/questions/4534372/get-length-of-wav-from-sox-output 
    #  file_length=`./sox ./TMP/2_mono.wav 2>&1 -n stat | grep Length | cut -d : -f 2 | cut -f 1` 
    file_length=`./soxi -D ./TMP/2_mono.wav` 

    # amount to truncate 
    trunc=$(echo "$file_length*0.75" | bc -l) 

    # http://stackoverflow.com/questions/965053/extract-filename-and-extension-in-bash 
    filename=$(basename "$filePath") 

    # fade out 
    # http://www.benmcdowell.com/blog/2012/01/29/batch-processing-audio-file-cleanup-with-sox/ 
    ./sox ./TMP/2_mono.wav ./OUT/$filename fade t 0 $file_length $trunc 
done 
+0

У меня есть одни и те же образцы и ту же задачу. Я хотел немного больше верности в игре, и это здорово: sox Piano.mf.A3.aiff Piano.mf.A3.trim.wav silence 1 1 .1% 1 1 .1%. Спасибо за ответ! – RealBlueSky

+0

Устраните вопрос, если это было полезно, есть идиот, пытающийся его закрыть. Слишком много идиотов нажимают кнопки на этом сайте: | –

+0

Определенно поддерживается. Благодаря! – RealBlueSky