Управление коллекцией музыки
Я предпочитаю хранить музыку в каталогах следующей структуры:
/Music/Жанр/Исполнитель/(год выпуска) Альбом/
Внутри каталога с альбомом, лежат файлы с названиями:
01) Название трека.ogg 02) Название второго трека.ogg 03) Название третьего трека.ogg
Если у альбома есть вариант в Lossless, его файлы будут в том же каталоге, и набор файлов будет выглядеть так:
01) Название трека.flac 01) Название трека.ogg 02) Название второго трека.flac 02) Название второго трека.ogg 03) Название третьего трека.flac 03) Название третьего трека.ogg
Зачем хранить одновременно Lossless и сжатый с потерями варианты одного и того же альбома? Ответ прост: последний, при синхронизации, копируется на карманный аудиоплеер (где места не так много, чтобы держать там музыку в форматах сжатия без потерь).
Для удобного запуска на проигрывание только файлов варианта альбома в нужном формате, удобно иметь в этом же каталоге несколько плейлистов, по количеству форматов, в которых присутствует данный альбом. К примеру:
0000 FLAC.m3u 0000 Ogg.m3u
Префикс из нулей нужен для того, чтобы плейлисты выводились самыми первыми при сортировке содержимого каталога по имени (так гораздо удобнее их открывать).
Скрипты
Автоматическое создание плейлистов
Для создания плейлистов описанного выше вида, написал небольшой скрипт. Если поместить его в /opt/mkm3u.php
, находясь в корневом каталоге с музыкой (/Music
), можно будет выполнить:
/opt/mkm3u.php -r
Во всех подкаталогах будут созданы (либо обновлены) плейлисты, в соответствии с присутствующими в каждом конкретном каталоге форматами файлов.
Конвертирование CUE+альбом во FLAC
Синхронизация с карманным mp3-плеером
Для того, чтобы на плеер копировалась музыка только в форматах сжатия с потерями (и соответствующие ей плейлисты), я использую следующий мини-скрипт:
#!/bin/sh rsync -r --progress \ --delete --delete-excluded --prune-empty-dirs \ --whole-file --size-only \ --include='*.mp3' --include='0000 MP3.m3u' \ --include='*.mpc' --include='0000 MPC.m3u' \ --include='*.ogg' --include='0000 Ogg.m3u' \ --include='*/' --exclude='*' \ /source/path/Music/ /media/mp3player/Music/