Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Скрипт для генерации треков для разучивания вокальных фраз. Исходный трек
- # каждой фразы копируется в 4 файла, в каждом из которых -- 16 двойных
- # повторов. Темп каждого следующего повтора выше, чем темп предыдущего;
- # диапазон изменения темпа -- от 50% до 100%. Для работы должны быть
- # установлены: espeak, zenity, sox.
- function quitting()
- {
- espeak -v english "$1"
- exit "$2"
- }
- temporary_directory=$(mktemp -d)
- cd "$temporary_directory"
- target_directory=~/Test
- mkdir $target_directory/vcl_prctc_{1..4}
- tempos=(0.5 0.50796875 0.5159375 0.52390625 0.531875 0.53984375 0.5478125 0.55578125 0.56375 0.57171875 0.5796875 0.58765625 0.595625 0.60359375 0.6115625 0.61953125 0.6275 0.63546875 0.6434375 0.65140625 0.659375 0.66734375 0.6753125 0.68328125 0.69125 0.69921875 0.7071875 0.71515625 0.723125 0.73109375 0.7390625 0.74703125 0.755 0.76296875 0.7709375 0.77890625 0.786875 0.79484375 0.8028125 0.81078125 0.81875 0.82671875 0.8346875 0.84265625 0.850625 0.85859375 0.8665625 0.87453125 0.8825 0.89046875 0.8984375 0.90640625 0.914375 0.92234375 0.9303125 0.93828125 0.94625 0.95421875 0.9621875 0.97015625 0.978125 0.98609375 0.9940625 1.00203125)
- files=($(zenity --file-selection --title="Vocal practice" --text="Select the file" --filename="~/Data/kombinirovannyye/pesni/tekushchiye/" --multiple --file-filter=" | *mp3 *wav" --separator=" "))
- if test "$?" -eq 1; then
- quitting "Aborted" 1
- fi
- for file in "${files[@]}"; do
- target_filename=$(basename "${file%%.wav}").mp3
- for tempo in "${tempos[@]}"; do
- sox "$file" ./base.wav tempo "$tempo"
- sox ./base.wav ./quiet.wav vol -6dB
- sox ./quiet.wav ./base.wav "$(date +%s%N).wav"
- done
- rm -f ./{base,quiet}.wav
- for directory in $target_directory/vcl_prctc_*; do
- fileset=($(ls -1 ./*.wav | head -16))
- sox "${fileset[@]}" "$directory/$target_filename"
- rm -f "${fileset[@]}"
- done
- done
- quitting "Task accomplished!" 0
Add Comment
Please, Sign In to add comment