В общем, забросил я попытки решить перловые проблемы с кодировками, нашёл питоновские биндинги к MPD, и написал свой собственный mpd-dynamic на своём любимом языке. Ни тебе пробем с кодировками, ни быдлокодерских (шутка) фигурных скобок. Как-нибудь под настроение доведу до ума и выложу.

Планируемый набор фич:

  • экспоненциальный рейтинг: песня с рейтингом 3 проигрывается в 2 раза чаще, чем песня с рейтингом 1, и в 2 раза реже, чем песня с рейтингом 5 (done);
  • новые песни (т. е. песни с неопределённым рейтингом) имеют повышенный рейтинг, после первого проигрывания им даётся рейтинг по умолчанию (3);
  • автоматически занижать рейтинг песен исполнителя, у которого очень много песен;
  • отсутствие повторов в пределах текущего плэйлиста;
  • возможность работы в режиме демона;
  • утилиты для просмотра и установка рейтинга любой песни (я их уже написал на Perl, но портировать дело пятнадцати минут, ещё нужна утилита, удаляющая «мёртвые» записи в базе), а также виджет для Plasma, показывающий рейтинг текущей песни и позволяющий его изменить (это когда я доберусь до Plasma ^_^)