Это старая версия документа.


MOCP (также именуется MOC) - аудиоплеер, известный прежде всего благодаря своему консольному интерфейсу, что во многих случаях является ощутимым преимуществом. он реализован в виде двух составных частей - собственно демона1)-проигрывателя и псевдографического интерфейса на ncurses. вот небольшой список преимуществ данного проигрывателя:

  • отсутствие привязки к X-серверу, т.е. вы можете слушать музыку на системе без графической оболочки или же просто при работе в tty-консоли
  • интуитивно понятный и настраиваемый интерфейс
  • экономия места за счет отсутствия лишних окон, что особо актуально для нетбуков
  • низкая требовательность к ресурсам за счет отсутствия навороченной графики
  • возможность управления извне - например, из командной строки или с помощью кнопок на панели
  • запущенный в «исках» плеер будет играть и при переходе в tty-консоль2)

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

установка

первым делом потребуется установить пакет moc. например, с помощью aptitude:

sudo aptitude install moc

теперь нужно распаковать уже готовый пример файла настроек

zcat /usr/share/doc/moc/examples/config.example.gz > ~/.moc/config

интерфейс и управление

псевдографический интерфейс

установив пакет, запустите проигрыватель в терминале с помощью команды

mocp

вы увидите знаменитый псевдографический интерфейс, который выглядит примерно так :


интерфейс mocp

честно говоря, при первом запуске он будет выглядеть немного иначе, но все можно настроить по вашему вкусу, о чем речь пойдет ниже. сверху на приведенном скриншоте (по умолчанию в левой части) находится обозреватель файлов, из которого можно добавлять файлы и папки в плейлист, что снизу (а по умолчанию справа). в нижней части окна расположены индикаторы громкости, времени воспроизведения, указан текущий файл и прочая информация. управление осуществляется с клавиатуры, поэтому рассмотрим основные сочетания клавиш:

  • H - показать справку по клавишам управления. запомнив эту клавишу, про все остальное можно иногда забывать :-)
  • Tab - переключиться между обозревателем файлов и плейлистом
  • , , PgUp/PgDn, Home/End - навигация по списку файлов/плейлисту
  • Enter:
    • в обозревателе файлов - войти в папку или начать воспроизведение выбранного файла (без изменения плейлиста)
    • в плейлисте - переключиться на выбранный трек
  • A (в обозревателе) - добавить файл или папку в плейлист
  • Shift+A - добавить папку рекурсивно (со всеми подкаталогами и их содержимым)
  • D (в плейлисте) - удалить файл из плейлиста
  • Shift+C - очистить плейлист
  • N - следующий трек
  • B - предыдущий трек
  • Shift+< - уменьшить громкость на 1%
  • Shift+> - увеличить громкость на 1%
  • Shift+S - включить/выключить воспроизведение в случайном порядке (Shuffle)
  • Shift+R - включить/выключить повтор плейлиста
  • S - остановить воспроизведение
  • Q - выйти из интерфейса (проигрыватель при этом продолжит воспроизведение), по команде mocp можно вернуться к интерфейсу
  • Shift+Q - выйти и завершить работу проигрывателя

управление из командной строки

проигрывателем можно управлять и без использования псевдографического интерфейса, напрямую из командной строки. обо всех опция можно почитать в

man mocp

а здесь мы лишь рассмотрим основные команды

  • mocp -G - пауза/воспроизведение
  • mocp -f, mocp -r - следующий/предыдущий трек
  • mocp -a «путь/к/файлу» - добавить файл или папку (рекурсивно) в плейлист
  • mocp -c - очистить плейлист
  • mocp -s - остановить воспроизведение
  • mocp -p - начать воспроизведение с первого файла в плейлисте
  • mocp -t s - включить/выключить воспроизведение в случайном порядке (Shuffle)
  • mocp -x - завершить работу проигрывателя
  • mocp -i - показать подробную информацию о текущем треке
  • mocp -v 40 - установить громкость в 40%. -v +10, -v -3 - увеличить/уменьшить на n%

опции можно комбинировать - например, команда

mocp -c -a "mp3/new" -p -v 55 -o r,s

очистит плейлист, добавит в него все содержимое папки «mp3/new», установит громкость в 55%, включит Shuffle и повтор и начнет воспроизведение.

графическое управление

возможность управления проигрывателем напрямую, без какого-либо интерфейса, можно использовать с применением творческого подхода. можно назначить команды на комбинации клавиш (или использовать мультимедиа-кнопки клавиатуры при наличии таковых), можно поискать (или написать) какой-нибудь плагин к чему-нибудь… я же реализовал управление плеером, накидав на панель вот таких кнопок:


кнопки управления mocp на панели Gnome

теперь разберемся, как их сделать. а делаются они точно так же, как любые другие кнопки запуска. для Gnome это будет: щелчок правой кнопкой по панели → добавить на панель → пользовательская кнопка запуска. далее нужно задать команды для кнопок, иконки и подсказки к ним


создание кнопки запуска

иконки я взял из стандартного набора Gnome, вы же можете подобрать любые другие на свой вкус. ниже приводится список команд для каждой кнопки и иконки к ним

  • воспроизвести файл/папку

самая полезная кнопка :-P. чтобы слушать музычку, достаточно кинуть (Drag'n'Drop) файл или папку на эту кнопку
команда: mocp -c -a «$1» -p -v 40
иконка: /usr/share/icons/Humanity/emblems/48/emblem-sound.svg

  • предыдущий трек

команда: mocp -r
иконка: /usr/share/icons/Humanity/actions/48/gtk-media-rewind-ltr.svg

  • пауза/воспроизведение

команда: mocp -G
иконка: /usr/share/icons/Humanity/actions/48/stock_media-play.svg

  • следующий трек

команда: mocp -f
иконка: /usr/share/icons/Humanity/actions/48/gtk-media-rewind-rtl.svg

  • выключить все

команда: mocp -x
иконка: /usr/share/icons/Humanity/actions/48/gtk-media-stop.svg

  • now playing

а эта кнопка у меня выводит вот такой popup:

команда: moc-notify
иконка: /usr/share/icons/Humanity/actions/48/gtk-info.svg
тут немного сложнее, ибо все делается с помощью отдельного скрипта, о котором речь пойдет чуть ниже

вот таким образом и работает mocp. те, кто любит все настраивать, а также те, кому интересно, как сделать popup'ы как на скрине выше - читайте следующий раздел

настройка

настройки программы содержатся в файле .moc/config, который будет автоматически создан после первого запуска. здесь мы рассмотрим основные опции:

ReadTags = yes
# читать тэги из файлов и показывать названия треков в обозревателе/плейлисте вместо имен файлов

MusicDir = "/media/smb/music"
# папка, в которой хранится ваша фонотека. в нее можно быстро переместиться,
# нажав 'm', можно запустить 'mocp -m', и она сразу будет открыта в обозревателе,
# а также можно сделать, чтобы mocp всегда при запуске открывал эту папку

Repeat                  = no
Shuffle                 = no
# включить/выключить повтор и воспроизведение в случайном порядке

AutoNext                = yes
# автоматически переключаться на следующий трек после конца текущего

FormatString            = "%(n:%n :)%(a:%a - :)%(t:%t:)"
# формат вывода информации о текущем треке (см. полное описание в ~/.moc/config)

SoundDriver             = ALSA, OSS, PULSE, JACK
# используемая звуковая система. будет использована первая работающая
# если все играет - не трогайте)))

ShowHiddenFiles         = no
# показывать ли в обозревателе скрытые файлы

StartInMusicDir         = yes
# всегда при запуске открывать MusicDir (см. выше)

HideFileExtension       = no
# скрывать расширения файлов в обозревателе

ShowFormat              = no
показывать формат напротив каждого файла (MP3/OGG/etc)

ShowTime                = IfAvailable
# показывать продолжительность напротив файла. yes - всегда, no - никогда,
IfAvailable - если была вычислена ранее (работает быстрее)

Theme                 = example_theme
# задать цветовую тему. указывается только имя файла, файлы ищутся в
# ~/.moc/themes и /usr/share/moc/themes/

UseRCC                          = yes
# автоматически определять кодировку для id3v1-тегов (требуется пакет librcc0)

UseRCCForFilesystem                     = yes
# автоматически определять кодировку для имен файлов

SavePlaylist            = yes
# запоминать плейлист при выходе

PlaylistNumbering       = no
# нумерация треков в плейлисте
# если отключено, показывает только номера треков из тегов

Layout1 = "directory:0,0,100%,50% playlist:0,50%,100%,FILL"
# см. полное описание в ~/.moc/config. приведенный здесь вариант соответствует
# горизонтальному разделению окна (обозреватель сверху, плейлист снизу)

PlaylistFullPaths       = no
# показывать полный пути к файлам в плейлисте

OnSongChange = "/usr/bin/moc-notify"
# команда, выполняемая при смене трека (см. полное описание)
# в данном примере звпускает скрипт, отображающий popup-уведомление.
# (не используйте ~, указывайте абсолютный путь)

вот, в общем-то, и все. помимо этого есть еще множество связанных со звуком настроек, но если все играет, трогать их стоит только если вы четко понимаете, чего хотите добиться.
ниже приводится скрипт, отображающий popup-уведомление с данными о текущем треке:

#! /bin/bash
track=`mocp -Q %title | cut -d " " -f 1`
if [ $(echo $track | wc -L) -lt 2 ] && [ "$(echo $track | grep [0-9])" = "$track" ] ; then track="0$track" ; fi
notify-send -i "/usr/share/icons/Humanity/emblems/48/emblem-sound.svg" \
"$track - $(mocp -Q ' %song')" "$(mocp -Q '%artist - %album') $(mocp -Q '(%tt)')"

для корректной работы задайте значение параметра FormatString в ~/.moc/config как в примере выше

ссылки

1)
демон или daemon - работающая в фоне программа, управляемая с помощью обособленных программ-клиентов
2)
более того, при переключении консолей плеер ставится на паузу, пока пользователь логинится в текущей консоли