Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

суббота, 30 мая 2009 г.

музыкальные "разрезалки"

Задача, разделить один flac файл всего диска, на отдельные файлы трэков. Нужно мне это, опять же, для удобного отображения списка файлов, а также, для возможности переноса отдельных песен на плеер или кпк.
В общем-то Google сразу же дает ответ на этот вопрос, остается только оформить это в скрипт.
Для разделения, добавления тэгов и переименовывания, понадобятся пакеты:
sudo aptitude install cuetools shntool lltag
Утилита cuebreakpoints из пакета cuetools, берет из файла cue временные точки для "обрезки" на трэки, а shnsplit уже обрезает по этим точкам. Для добавления к файлам тэгов используется cuetag, и наконец lltag - переименовывает файлы по данным из тэгов.

#!/bin/bash
if [ "$1" != *.cue ]
then
echo Usage ./flacorez file.cue file.flac
exit
fi
if [ "$2" != *.flac ]
then
echo Usage ./flacorez file.cue file.flac
exit
fi
#разрезаем
cuebreakpoints "$1" | shnsplit -o flac "$2"
#добавляем тэги
cuetag "$1" split*.flac
#переименование в вид "номер трэка_артист - название трэка", параметр --yes "автоматом" отвечает "да" на вопросы о содержании тэга и переименовании
lltag --yes --no-tagging --rename '%n_%a - %t' split*.flac
echo Done.

Вторая задача, вырезать кусок mp3-файла, например для использования рингтоном на телефоне.
Для таких целей есть маленький и быстрый инструмент - cutmp3.
Для работы в интерактивном режиме, открываем файл:
cutmp3 -i music.mp3
Для движения по файлу вперед используются клавиши от 6 до 0, на 0.1 с- 1с - 10с - 1м - 10м соответственно, назад от 5 до 1. Клавишей "a" отмечается начальная точка, "b" - конечная, "s" - "вырезать" между отмеченными точками.
Для "вырезки" определенного места:
cutmp3 -i file.mp3 -a 0:20 -b 1:02
Программа работает без перекодирования и потому моментально.

пятница, 13 марта 2009 г.

Красивости

Теперь когда консоль удобная, хотелось бы чтобы она была ещё и радующей глаз красивой.
За красоту консоли отвечает bootsplash, который в ядрах Debian не включён, а в репозиториях нет пакета патча, но где наша не пропадала :)
Итак, берем исходники ядра и патч для bootsplash.
Патчим:
patch -p1 -i bootsplash-3.1.6-2.6.26.diff
Копируем конфиг от стандартного ядра
cp /boot/config-2.6.26-1-686 /usr/src/`версия ядра`/.config
Конфигурируем
make oldconfig
Отмечаем для компиляции bootsplash и
make
make modules_install install

Качаем пакеты bootsplash, bootsplash-theme-debian и устанавливаем, еще темы можно скачать здесь
Темы распаковываются в /etc/bootsplash/themes, на нужную тему создается символическая ссылка
ln -s /etc/bootsplas/themes/bstheme-tattoogirl /etc/bootsplash/themes/current
теперь создаем ram-диск initrd
mkinitramfs -o /boot/initrd.img-`версия ядра` `версия ядра`
Остается только отредактировать конфиг grub, что-то типа
title Debian GNU/Linux, kernel 2.6.26-my-bootsplash
root (hd0,0)
kernel /vmlinuz-2.6.26-my root=/dev/hda3 ro vga=791 splash=verbose
initrd /initrd-2.6.26-my

Всё. sudo reboot и

суббота, 28 февраля 2009 г.

Удобная консоль

В случаях, когда что-то не так установилось, не желает подниматься или вообще не установлен х-сервер, и т.п., спасением естественно является консоль, а сделать в ней можно всё и даже еще больше :) .
Во-первых, хорошо бы было видеть в консоле больше чем 80 столбцов, для этого нужно включить фреймбуфер. Ядра Debian уже сконфигурированы с его поддержкой, другие дистрибутивы не знаю, проверить можно так:
wtaket@debian:/boot$ cat config-"версия_ядра" | grep FRAMEBUFFER
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
Если ничего не найдено, то надо будет пересобрать ядро.
Теперь при загрузке GRUB, выбираем рабочее ядро и жмём "e", далее жмём "e" на строке параметров загрузки ядра, типа:
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda3 ro
и в конец строки добавляем:
vga=ask
жмём "Enter" и "b", появится таблица со списком поддерживаемых режимов, выбираем нужный и вводим код или букву соответствующую коду. Если загрузка прошла успешно и framebuffer работает, то редактируем /boot/grub/menu.lst
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda3 ro vga=код
код в таблице выводимой Grub это hex-число, поэтому перед ним ставим 0x
Стало намного удобнее :)
Во-вторых, удобство "табовых" эмуляторов терминала трудно переоценить, и без возможности запуска иксов тоже хотелось бы нечто подобное. Нечто подобное - screen.Небольшое добавление в конфигурационный файл ~/.screenrc:
caption always
caption string "%c %{kw}%-w%{wr}%n %t%{-}%+w"

Таким образом будет выводится строка заголовка(наподобие табов), с текущим временем и названием запущеной в нем программы.
Музыка у нас уже есть, но настроенный фреймбуфер дает нам возможность смотреть и видео. Для этого запускаем mplayer с параметрами:
mplayer -vo fbdev -zoom -xy 1024
последнее число - разрешение по горизонтале(вертикаль вычесляется автоматически) для вывода видео в полный экран.
Но при невозможности запуска Х-сервера, нам скорее нужны не мультимедиа возможности консоли, а средства общения с комьюнити и знакомыми гуру :).
Мультипротокольный im-клиент Finch, по сути консольная версия Pigin. Настройка из самого интерфейса программы, никаких проблем с utf8. Единственная "неудобность" - реализация интерфейса в виде перекрывающихся окон, да и при запуске в screen не работают "стрелки"(замена ctrl+p/n).
Браузер links2, а вот он не дружит с utf8, по крайней мере версия из тестовой ветки Debian. Но прочитать/найти что-то вполне себе ничего.
Ну вот тепреь можно "жить" в консоле :)

вторник, 20 января 2009 г.

MPD - музыка в консоле

В Linux есть много музыкальных плееров, например - Amarok, Audacious, Banshee. Плееры - "просто плееры" и плееры - "музыкальные комбайны", хорошие и ...очень хорошие. Я, к слову, пользуюсь (скорее уже "пользовался") Amarok, это просто какое-то чудокомбайнище, тут и эквалайзеры и мультимедиатека и списки и правка тэгов, куча подключаемых скриптов для просмотра информации, текстов, кодирования и пр.пр.пр...
Всё это конечно хорошо, но, 90% времени плеер просто висит в трее и кроме как "послушать" от него ничего не требуется. Меня просто разрывает на куски когда я смотрю top, штук 5 amarokapp съедающие 15% CPU и 150 Мб памяти, плюс кучка скриптов на перл и руби. Нет, нет и нет. Я просто хочу "музычку по-тихоничку", не надо эквалайзера, рейтингов и обложек альбомов...ничего не надо, просто пусть играет. И имя этому "просто играет" - MPD. Что о нём знает apt?
$ aptitude show mpd
Описание: Music Player Daemon
Music Player Daemon (MPD) is a server that allows remote access for playing audio files (Ogg-Vorbis, FLAC, MP3, Wave, and
AIFF), streams (Ogg-Vorbis, MP3) and managing playlists. Gapless playback, buffered output, and crossfading support is also
included. The design focus is on integrating a computer into a stereo system that provides control for music playback over a
TCP/IP network. The goals are to be easy to install and use, to have minimal resource requirements (it has been reported to
run fine on a Pentium 75), and to remain stable and flexible.
Чудненько, то что надо. Помолимся, MPD да не укради системного времени, будь стабильным и гибким, легко установись и аминь..
Ставим сам сервер и одним виртуальным пакетом mpd-client кучку клиентов к нему.
$ sudo aptitude install mpd mpd-client
Демон сервера стартует во время загрузки ОС читая настройки из /etc/mpd.conf, я не считаю что он нужен мне при каждом старте системы. Следуя рекомендации, из файла /etc/rc2.d/README, переименовываем симлинк S30mpd в K70mpd. Теперь запускать сервер будем ручками когда он нам нужен и со своими настройками. Настраиваем под себя:
$ cp /etc/mpd.conf ~/.mpdconf
именно так, а не ~/.mpd.conf
мой содержит следущее:
music_directory "~/Music/"
playlist_directory "~/Music/"
db_file "~/Music/music.db"
log_file "~/Music/mpd.log"
error_file "~/Music/errors.log"
pid_file "~/Music/pid"
state_file "~/Music/state"
user "wtaket"
bind_to_address "localhost"
port "6600"
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
format "44100:16:2" # optional
}
mixer_type "alsa"
mixer_device "default"
mixer_control "PCM"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
Тут есть пара скользких моментов, секция audio_output , параметры device и format, если их не указать, mpd грузит систему почище Amarok и 30% CPU не предел. Второй момент это совместное использование устройства, ни с alsa ни с oss у меня не работает и что делать не знаю. Хотя слушать музыку и одновременно смотреть фильм я вряд ли буду :)
Запускается mpd просто:
$ mpd
Кто-бы мог подумать :)
Ну а теперь сам как-бы плеер. Мне понравился консольный ncmpc, с параметром -c запускается в цветном режиме. Файл настроек плеера
$ cp /usr/share/doc/examples/config.sample ~/.ncmpc/config
я поставил запуск в цветном режиме
enable-colors = yes
отображение в заголовке терминала информации о треке
set-xterm-title = yes
xterm-title-format = "ncmpc: [ %name%|[%artist% - ]%title%|%file%]"
центрирование проигрываемого трека в плейлисте
auto-center = yes
и скрытие курсора через 5 секунд
hide-cursor = 5
Настроить shortcuts можно рилтайм в самом плеере и сохранить в файл.
Всё. Остается только наслаждаться музыкой :) , mpd грузит процессор на 1-3%, память (VIRT) 12900. Единственная ложечка дёгтя - недоступность звука для других приложений, но пока с этим разбираться не буду :)

четверг, 15 января 2009 г.

Dict - консольный многоязычный словарь

Дабы не забыть где что брал :)
С установкой проблем никаких:
sudo aptitude install dictd
sudo aptitude install dict

Для установки словарей понадобится rsync
sudo aptitude install rsync
Перед настройкой остановим сервер
$ sudo /etc/init.d/dictd stop
Чтобы dict использовал только локальные словари, закомментировал все удалённые сервера:
sudo nano /etc/dictd/dict.conf

server localhost
#server dict.org

#server dict0.us.dict.org

#server alt0.dict.org


Большое количество хороших словарей для dict я нашел на http://www.mova.org/ , точнее они были там раньше, а теперь они доступны по rsync://dictd.xdsl.by/dicts
Копируем нужные, например:
sudo rsync -av rsync://dictd.xdsl.by/dicts/geology_en-ru.* /usr/share/dictd/
Скопируются два файла, сам словарь geology_en-ru.dict.dz и индекс словаря geology_en-ru.index
Для "подключения" словарей выполняем:
sudo dictdconfig -w
Смотрим подключённые словари
$ dict -I
dictd 1.10.11/rf on Linux 2.6.26-1-686
On debian: up 34:34, 1 fork (1.7/hour)

Database Headwords Index Data Uncompressed
fd-eng-rus 1699 23 kB 24 kB 71 kB
korolew_ru-en 32457 828 kB 1821 kB 5524 kB
latrus 12617 185 kB 162 kB 651 kB
mueller7 46204 777 kB 2887 kB 9085 kB
Запускаем сервер
$ sudo /etc/init.d/dictd start
Вот и всё