Что: 0e39e6d1b75b764057dc33f1d35d924bcb4ed5ea Когда: 2023-01-22 20:00:24+03:00 ------------------------------------------------------------------------ Темы: music tip ------------------------------------------------------------------------ Моя база данных музыки http://www.git.stargrave.org/?p=dotfiles.git;a=blob;f=bin/bin/music-indexer Впервые со времён школы, я хоть как-то решил чуть подразобраться с коллекцией музыки своей. Когда-то я хранил альбомы в виде "Artist/Year-Album". Позже перешёл на Artist-Year-Album, так как просто нет смысла в иерархии, плюс бывают же сборники с несколькими группами. Если присутствует несколько artist-ов, то прописываю их в виде "ARTIST_and_ARTIST[_and_...]". Штатно все названия групп используют заглавные буквы и поэтому "_and_" тут будет выделяться своим особенными регистром. Не у всех альбомов имеется год. В основном это очень старые директории, которые появились у меня неизвестно откуда. Что делать если artist содержит дефисы? Просто искать слово похожее на год между дефисами. Может ли быть такое что в artist влезет и что-то похожее на год через дефисы? Не исключено, но вроде бы пока не встретилось такое. Я храню все трэки раздельно. Никаких контейнеров или одиночных файлов с CUE. Во-первых, это потребует специального проигрывателя, который бы их понимал. Во-вторых, gapless playback должен уметь этот самый проигрыватель. Если не умеет, то объединить файлы в один продолжительный аудиофайл легче, чем разделять его. Просто не вижу смысла в неразделённых аудиофайлах. Файлы называются "XX.NAME.EXT", где "XX" это номер трэка. Хотя для noisecore альбомов двухзначного числа не хватит для всех трэков -- там, конечно, это поле шире. Во всех именах пробел заменён на подчёркивание, ибо это жутко упрощает ввод названий. Вот правда, когда у меня zsh стал без проблем раскрывать и дополнять имена даже при их частичном вводе, это уже не должно быть проблемой, но ведь это больше десяти лет прошло с момента появления первых альбомов на жёстком диске. Самый старый из использованным мною скриптов -- это torn, который недавно переписался с Perl на zsh: 9dc73622854227df4a31a4c0a57adfc72a52ecd6 Его я использовал для транслитерации всего что на кириллице. Сейчас же я перестал это делать, так как под Unix-ом с UTF-8 именами проблем нет, как и с exFAT (хотя в нём например ":" символ, встречающийся в альбомах, нельзя использовать). Основной помощник в переименовании файлов это zsh и его zmv. Сегодня вот проделывал к примеру: zmv '(*).cock_and_ball_torture-(*)-ify.mp3' '$1-$2.mp3' for i (*) mv $i Cock_And_Ball_Torture-${${(s/./)i}[-1]}-${${(s/./)i}[2,-2]} Для разбивание lossless файлов по меткам из CUE файлов, использую cuebreakpoints ....cue | shnsplit ....wav. А для того, чтобы трэки переименовать в нормальные названия, то используется самописный cueparser скрипт, выплёвывающий команды для переименования файлов. Ну а GNU parallel-ом распараллеливаю процесс сжатия или разжатия. cdparanoia используется для "оцифровки" аудио CD. Если где-то попадаются проприетарные lossless форматы, типа ALAC/Monkey's Audio, то прежде mplayer -aodump, а сейчас ffmpeg используются для получения .wav. Весь lossless у меня в WavPack формате. Lossy... ну в чём получил его изначально, в том и будет. Но вся метаинформация по возможности (ID3-тэги, APE-тэги) выпилена. По факту lossy альбомов у меня больше половины, но это всё полученные ещё в 2000-х годах, в основном грайндкор который я не слушаю (а тот что слушаю, у меня есть в lossless). Lossy записи у меня крайне редко звучат дома. А вот на работе, где нет качественных наушников, нет смысла и таскать с собой lossless -- для работы у меня в Opus перекодированные файлы валяются. Собственно всё это было у меня без изменений более десяти лет. И в конце 2000-х у меня были несколько директорий: FATHERS, FOLK, HARTE, LEICHT, NOISE. Альбомы папы, всякий рок, из которого я только AC/DC и Led Zeppelin ставлю. Немного фольклорной музыки. Noisecore, harsh noise. Что-то "тяжёлое" -- в основном грайндкор, black, death и подобное. А лёгкое это всякий симфо метал и всё что не тяжёлое. И так получилось, что HARTE у меня стал неким аналогом помойки грайндкора который не слушаю, даже Gorguts со всем black metal перекочевал в LEICHT. В LEICHT директории у меня музыка которую я "знаю": помню что за исполнитель, что за альбомы. А после ряда последних концертов у меня не один десяток новых альбомов появился, которые я далеко не все ещё прослушал. Как я знакомлюсь с ними? Выдаю список файлов с сортировкой по mtime и смотрю кто из них недавно был получен. А LEICHT превратился в директори с мешаниной из Мадонны и сурового блэка Funeral Mist и Napalm Death. В общем просто помойка с "актуальной" lossless музыкой. Решил свалить все альбомы в одну большую директорию, а дальше символическими ссылками наделать, так называемых коллекций. Надо поместить ряд альбомов в коллекцию black-а?: for i (Hate-* Immortal-* Ihsahn-20* Illt-2022-Mercy_Of_The_World) ln -s ../../$i cols/black/ Альбом может находится и в нескольких коллекциях само собой без проблем. Плюс в том, что вся эта категоризация не затрагивает ни метаинформацию, ни названия альбомов. Ещё не прослушанную музыку я просто помещаю в cols/recent символическими ссылками. Работы тут ещё надолго, ведь то, что раньше было HARTE -- та ещё мешанина. Да и всё не тривиально: ведь многие группы в процессе своей жизни кардинально меняли своё музыкальное направление. Ладно бы Napalm Death, у которого несколько brutal death альбомов, но остальные, в общем-то, grindcore. Но вот Carcass относится к goregrind-у только первым альбомом. Bathory для меня это, в первую очередь, black metal альбомы первые, но ведь дальше то у него были viking metal, которым не особо то место в cols/black. Но тут я уж так не заморачиваюсь сильно. Bathory у меня попадает в black. А чтобы себе помочь с тем, чтобы получить список не категоризированной музыки, начал писать zsh скриптики, которые превратились в один скрипт создающий .rec базу данных с отпарсенными названиями альбомов, исполнителей и годом выхода. Массу косяков обнаружил в названиях, что не удивительно. Но теперь даже альбомы 1349-группы без проблем парсятся, как и полностью кириллические: Artist: 1349 Year: 2004 Album: Beyond The Apocalypse Lossless: yes Collection: black Artist: Взрыв Кабачка В Коляске С Поносом Year: 2008 Album: Меня не берут на работу, я нигде не учусь и я некрофил Collection: noise * моментально получить список не-lossless или lossless альбомов: recsel -e '!Lossless' recsel -e '#Lossless' * получить black метал альбомы 2010-го года: Collection = 'black' && Year = 2010 * альбомы группы Spasm, возможно сборники: Artist ~ 'Spasm' Хотя сейчас мне этот файл будет помогать с категоризацией, ведь это более 4700 альбомов. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9C%D0%BE%D1%8F%20%D0%B1%D0%B0%D0%B7%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B8%20%280e39e6d1b75b764057dc33f1d35d924bcb4ed5ea%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0