| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
Во всяком случае, Вас честно предупредили:[ 146.342] (WW) NVIDIA: This server has an unsupported input driver ABI version (have 19.1, need < 19.0). The driver will continue to load, but may behave strangely. Можно попробовать воспользоваться советом из первого предложения - откатиться на 19.0, если совет Kycok не поможет. |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
Только что проверил. SystemMaxUse=100M, размер директории с файлами журнала 400М, из них половина - резервные копии. Это мы не правильно маны читаем или правда бага? |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
crawlingЭто позволит понять, аппаратная проблема или программная. |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
vadikДля чистоты эксперимента можно Live-CD с WinXP скачать. Их полный интернет. |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
crawlingПредлагаю кардинальное средство - выпилить пульс нафик. Всё равно от него вреда больше, чем пользы. Мне в своё время помогло от слишком громкого фона в скайпе избавиться. |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
crawlingНу так и поубирать не используемые во время записи с микрофона захваты |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
Это не ноутбук? Встроенных микрофонов, других источников звука нет? |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
Прошу прощения, если скажу глупость, но не пробовали скормить ей то, что она просит, т.е.arecord -f dat -r 48000 -D hw:0,0 -d 5 test.wav И что на это отвечает? |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
nafanjaНу это вопрос для другой темы в разделе "Курилка" lumberjackС тех пор скриптик изрядно пожирнел, был заточен под мои собственные предпочтения, и так и не переведён из разряда "учебных" в "рабочие", что не помешало нарезать им с полтора терабайта жирных лосей. Так что прежде чем запускать, посмотрите там, может чего поменять надо типа путей или формирования имени файлов. #!/bin/bash
# скрипт нарезки wavpack, flac или wav lossless файла на кусочки по файлу разметки cue
# зависимости: sox
# wavpack
# flac
# vorbis-tools
# shntool
# enca
#set -x
E_CREAT_FILE=64 # ошибка создания файла
E_UNNKNOWN_FT=65 # неподдерживаемый формат файла
E_UNNKNOWN_ENC=66 # неизвестная ошибка чтения файла (скорее всего неизвестная кодировка)
E_CREAT_WAV=67 # ошибка создания временной вафки
OGG_DIR=~/Музыка/Музыка # папка с музыкой в формате ogg
LOSSLESS_DIR=~/Музыка # папка с музыкой в lossless формате
VinilLog=*log.txt # это маска файла с логом рипа
VINILLOG=$(basename "`find -name $VinilLog -print`")
[[ -e "$VINILLOG" ]] && enconv --convert-to=UTF8 "$VINILLOG" # конвертация лога в utf-8
TEMP_DIR=$(mktemp --directory --tmpdir "`basename $0`.XXX" ) || exit $?
TIMEPOINTS="$TEMP_DIR/timepoints" # временный файл с точками начала и длины будущих кусочков
TEMP_WAV="$TEMP_DIR/temp.wav" # временная вафка
CUE="$TEMP_DIR/correct.cue" # обработанный cue
echo "читаем $1" # сюда бы проверку на наличие аргумента
# конвертация cue в utf-8, удаление виндовых символов перевода строки, пробелов и табуляций в начале строк
# и добавление пустой строки в конец файла (а то некоторые забывают)
cat "$1" | enconv --convert-to=UTF8 | sed -e 's/\r//' -e 's/^[ \t]*//' -e '$ a\' > $CUE || exit $E_UNNKNOWN_ENC
# блок по разбору cue
ALBUM_DATE=$(awk '/^(REM DATE)/ {printf "%4d", $NF}' "$CUE") # выдёргиваем из куя тег, которого не знает cueprint
ALBUM_GENRE=$(awk '/^(REM GENRE)/ { for (i=3;i<=NF;i++) printf " " $i; print "" }' "$CUE") # а этот тэг хоть и знает, но не обрабатывает
ALBUM_COMMENT=$(awk '/^REM [Cc][Oo][Mm][Ee][Nn][Tt]|[Cc][Oo][Mm][Mm][Ee][Nn][Tt]/ { for (i=3;i<=NF;i++) printf " " $i; print "" }' "$CUE") # то же # поля с третьего до конца строки
ALBUM_TITLE=$(cueprint --disc-template '%T\n' "$CUE")
ALBUM_ARTIST=$(cueprint --disc-template '%P\n' "$CUE")
ALBUM_SONGWRITER=$(cueprint --disc-template '%S\n' "$CUE")
# маленькое исторически сложившееся отступление от общепринятых правил
if [ "$ALBUM_ARTIST" = "Various" ]
then ArtistDirName="VA"
else ArtistDirName="$ALBUM_ARTIST"
fi
OUT_OGG="$OGG_DIR"/"$ArtistDirName"/"$ALBUM_DATE - $ALBUM_TITLE" # сюда будем складывать то, что получилось
OUT_LOSSLESS="$LOSSLESS_DIR"/"$ArtistDirName"/"$ALBUM_DATE - $ALBUM_TITLE" # склад готовой продукции
mkdir -pv {"$OUT_OGG","$OUT_LOSSLESS"}
track_tags () { # объявление функции, выдёргивающей теги треков из cue
TRACK_NUMBER=$(cueprint --track-template '%02n\n' --track-number $N_TRK "$CUE") # а лучше обойтись без cueprint
Track_Artist=$(cueprint --track-template '%p\n' --track-number $TRACK_NUMBER "$CUE")
if [ "$Track_Artist" = "" ] # переключатель %P <-> %p по условию наличия последнего
then TRACK_ARTIST="$ALBUM_ARTIST"
else TRACK_ARTIST="$Track_Artist"
fi
TRACK_TITLE=$(cueprint --track-template '%t\n' --track-number $TRACK_NUMBER "$CUE")
TRACK_COMPOSER=$(cueprint --track-template '%c\n' --track-number $TRACK_NUMBER "$CUE") # то же
TRACK_SONGWRITER=$(cueprint --track-template '%s\n' --track-number $TRACK_NUMBER "$CUE")
}
creat_wav () {
sox --multi-threaded --buffer 131072 --no-dither -q "$IN_FILE" -t wav $ENCODING - \
trim `sed -n "$N_STR"p "$TIMEPOINTS"` =`sed -n "$(($N_STR + 1))"p "$TIMEPOINTS"` \
|| exit $E_CREAT_WAV
}
creat_ogg () { # ну тут всё ясно
oggenc - --quality 9 --ignorelength --quiet \
-d "$ALBUM_DATE" -G "$ALBUM_GENRE" -l "$ALBUM_TITLE" \
-c albumartist="$ALBUM_ARTIST" -c comment="$ALBUM_COMMENT" \
-c albumsongrwriter="$ALBUM_SONGWRITER" \
-N "$TRACK_NUMBER" -a "$TRACK_ARTIST" -t "$TRACK_TITLE" \
-c composer="$TRACK_COMPOSER" -c songwriter="$TRACK_SONGWRITER" \
--output="$OUT_OGG"/"$OUT_FILE_NAME.ogg"
}
creat_wv () { # не только создаст файл, но и удалит временный (ключ -d); c тегом ALBUM_ARTIST непонятки, похоже, форматом не предусмотрено
pv --name "$OUT_FILE_NAME.wv" --eta --rate --bytes --size `stat -c %s "$1"` "$1" --cursor | \
wavpack -hiq \
-w year="$ALBUM_DATE" -w genre="$ALBUM_GENRE" -w album="$ALBUM_TITLE" \
-w albumartist="$ALBUM_ARTIST" -w track="$TRACK_NUMBER" -w artist="$TRACK_ARTIST" \
-w songwriter="$TRACK_SONGWRITER" \
-w title="$TRACK_TITLE" -w composer="$TRACK_COMPOSER" -w comment="$ALBUM_COMMENT" - \
-o "$OUT_LOSSLESS"/"$OUT_FILE_NAME" \
|| exit $E_CREAT_FILE
}
creat_flac () { # не только создаст файл, но и удалит временный
# pv --name "$OUT_FILE_NAME.flac" --eta --progress --rate --bytes --size `stat -c %s "$1"` "$1" --cursor | \
flac --delete-input-file --compression-level-8 --force --totally-silent --output-name "$OUT_LOSSLESS"/"$OUT_FILE_NAME.flac" \
--tag date="$ALBUM_DATE" --tag genre="$ALBUM_GENRE" --tag album="$ALBUM_TITLE" \
--tag albumartist="$ALBUM_ARTIST" --tag albusongrwriter="$ALBUM_SONGWRITER" \
--tag tracknumber="$TRACK_NUMBER" --tag artist="$TRACK_ARTIST" --tag songwriter="$TRACK_SONGWRITER" \
--tag title="$TRACK_TITLE" --tag composer="$TRACK_COMPOSER" --tag comment="$ALBUM_COMMENT" $1 \
|| exit $E_CREAT_FILE
}
IN_FILES=$(awk -F\" '/^FILE/ { print $2 }' "$CUE") # cписок разрезаемых файлов
NS_IN_FILES=$(awk '/^FILE/ { print NR }' "$CUE") # номера строк куя, в которых эти файлы поименованы
COUNT_FILES=`echo "$IN_FILES" | wc --lines` # кол-во разрезаемых файлов
for N_FILE in `seq "$COUNT_FILES"`
do
IN_FILE=$(echo "$IN_FILES" | awk 'NR == '$N_FILE) # разрезаемый файл
IN_FILE_TYPE=$(echo "$IN_FILES" | awk -F. 'NR == '$N_FILE'{ print $NF }') # его разрешение
echo "Режем $IN_FILE"
NS_CorrFile=`echo "$NS_IN_FILES" | awk 'NR == '$N_FILE` # номер строки, с которой начинается нужный фрагмент куя
NS_NextFile=`echo "$NS_IN_FILES" | awk 'NR == '$(($N_FILE+1))'{ print ($1-1) }'` # номер строки, на которой он заканчивается
[ "$NS_NextFile" ] || NS_NextFile=$(awk 'END {print NR}' "$CUE") # если номера строки нет, значит это конец файла
Part_CUE=$(awk 'FNR == '$NS_CorrFile', FNR == '$NS_NextFile' { print $0 }' "$CUE") # выделение нужной части куя
echo "$Part_CUE" | awk '/^INDEX 01/ {print $3}' | awk -F: '{print $1":"$2"."$3}' > "$TIMEPOINTS" # пишем во временный файл метки начала треков.
C_TRK=`sed -n '$=' "$TIMEPOINTS"` # кол-во треков
echo "`soxi -s "$IN_FILE"`s" >> "$TIMEPOINTS" # пишем во временный файл кол-во семплов (в качестве метки конца последнего трека)
if [ $COUNT_FILES -eq 1 ] # назначение префикса порезанным файлам
then PREFIX=""
else case "$N_FILE" in
1 ) PREFIX="A" ;;
# 1 ) PREFIX="LP1_" ;;
2 ) PREFIX="B" ;;
# 2 ) PREFIX="LP2_" ;;
3 ) PREFIX="C" ;;
4 ) PREFIX="D" ;;
esac
fi
case $IN_FILE_TYPE in
wv|WV ) ENCODE='creat_wv' ;;
flac|FLAC|wav|WAV ) ENCODE='creat_flac' ;;
* ) echo "неподдерживаемый формат файла"
exit $E_UNNKNOWN_FT ;;
esac
case `soxi -e "$IN_FILE"` in
"Floating Point WavPack"|"Floating Point PCM" \
) ENCODING='--encoding floating-point' ;;
FLAC|"Signed Integer PCM" \
) ENCODING='--encoding signed-integer' ;;
* ) echo "неподдерживаемый формат файла"
exit $E_UNNKNOWN_FT ;;
esac
for N_STR in `seq $C_TRK`
do
((N_TRK += 1)) # инкрементное увеличение номера трека для тегов
track_tags
OUT_FILE_NAME="$PREFIX`echo $(printf "%02d" $N_STR)` - $TRACK_TITLE"
creat_wav | tee "$TEMP_WAV" | \
pv --name "$OUT_FILE_NAME.ogg" --rate --bytes | \
creat_ogg # создание временной вафки и очередного кусочка ogg
$ENCODE "$TEMP_WAV"
done
done
rm -r "$TEMP_DIR" # удаление временных файлов
# Ну и пропищать напоследок о завершении работы
echo -n $'\a' |
| and4027 |
|
|
Темы:
0
Сообщения:
49
Участник с: 08 сентября 2010
|
lumberjackПомнится, писал для этой же цели скриптик, использующий средства самого flac. И по той же причине - ну не надо мне в 44100 перегонять, а всё то, что нашлось на просторах интернета упорно игнорировало такое нехитрое требование. |