LINUX.ORG.RU
 
urxvt

Какой должна быть правильная поддержка CUE в плеере?


0

2

Привет.
В качестве безделья я тут катаюсь на велосипеде, под названием аудио плеер. Меня вот мучит вопрос как должен плеер обрабатывать гору аудио и cue файлов в одной директории.
Пока я пришел к тому что алгоритм листинга каталога следующий:
1. ищем все cue-файлы
2. сортируем их
3. парсим, по очереди, каждый файл и отображаем его списком треков (песен)
4. каждый фудио-файл (mp3, ogg, wav, ...), который не описан ни одним cue-файлом (которые мы обработали на ранних шагах), отображается как отдельный трек.

Правильно ли будет такое поведение? Будут ли какие-то идеи по этому поводу?

P. S.
Про встроенные cue-sheet я пока "забыл", думаю потом будет легко это добавитб на шаге 4. Хотя любые коменты по этому поводу приветствуются.

СКАЖИ СВОЕМУ КОМПЬЮТЕРУ, ЧТОБЫ ЗАПЕР ДВЕРЬ

любительская автоматизация; устройство с открытой прошивкой
исходные тексты всех программ, открытые библиотеки
http://www.unicontrollers.com/products/unc01x

[#]  

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

()
[#] Ответ на: комментарий от Uter 29.09.2011 1:44:37  
urxvt

Ну это уже тема другого разговора. Я у себя так держу потому что так она качается, а играться с нарезкой облом.

*** ()
[#] Ответ на: комментарий от Uter 29.09.2011 1:44:37  
Fatalist

use rockbox, luke

а по теме, было бы здорово конечно

* ()
[#]  
Ramen

Правильно - это отрывать руки идиотам, выкладывающим музыку образом + cue. А то, что ты предложил - это так, костыли.

*** ()
[#] Ответ на: комментарий от urxvt 29.09.2011 1:51:13  

> так она качается, а играться с нарезкой облом

Сделай лучше плагин к торрентокачалке: после окончания закачки разбить на треки, удалить исходник, а автору торрента послать теплый привет.

** ()
[#] Ответ на: комментарий от alpha 29.09.2011 5:40:50  

Копцы^W Коллекционеры будут негодовать.

* ()
[#]  
different_thing

Ты базу данных для коллекции не забыл?

Блин, я тоже тут чуть было не стал писать аудио плеер с нуля

()
[#]  
RussianNeuroMancer

Пятый пункт забыли (о xine речь сейчас правда уже не идёт). Ещё хочу добавить, что один cue может ссылаться на два файла (в каждом из которых несколько треков) - такой случай у вас обрабатывается?

*** ()
[#] Ответ на: комментарий от Fatalist 29.09.2011 2:27:10  

Нет рокбокса под мой плеер, забросили (

()
[#] Ответ на: комментарий от alpha 29.09.2011 5:40:50  

>Сделай лучше плагин ...

Ага, а еще поправить кривые теги через freedb, добавить обложку и перегенерировать имена файлов. Ну и в медиа библиотеку сразу добавить, чего уж там.

()
[#] Ответ на: комментарий от Uter 29.09.2011 8:57:52  

ну и кофе чтобы сварил, до кучи..

** ()
[#] Ответ на: комментарий от alpha 29.09.2011 5:40:50  
lazyklimm

>Сделай лучше плагин к торрентокачалке: после окончания закачки разбить на треки, удалить исходник, а автору торрента послать теплый привет.

дык, большая часть торрентокачалок уже умеет выполнять скрипты после закачки

**** ()
[#]  
firestarter

Как Deadbeef

Сабж

*** ()
[#]  
lazyklimm

вообще, самый простой вариант - рассматривать cue как ещё один вариант плей-листа. А в диалоге "добавить каталог" просто нужен комбобокс с выбором типа добавляемых файлов "добавлять всё/только аудио/только плейлисты"

как-то так

**** ()
[#]  

не знаю,пучел ли ты такие варианты, я часто об них спотыкаюсь:

1. куй может быть потрековым. каждый трек отдельным файлом.

2. куй может быть в любой из виндовых кодировок (cp125*). Ты заранее не угадаешь, из какой кодировки тебе его в utf перегонять.

3. в куях _очень_часто_ пишут правильное имя файла, но расширение имени - неправильное. Чаще всего образ в *.ape или *.flac, а в куе написано *.wav. Иногда в имени куя бывают подсказки в виде тегов [flac][utf8], но рассчитывать на это не приходится.

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

** ()
[#] Ответ на: комментарий от name_no 29.09.2011 10:17:57  
YAR

Из всего этого можно сделать вывод: CUE не нужен! :)

**** ()
[#] Ответ на: комментарий от YAR 29.09.2011 11:08:11  
XVilka

нет, просто ужесточить правила выкладывания на трекерах :)

** ()
[#] Ответ на: комментарий от XVilka 29.09.2011 11:10:20  
Mystra_x64

Проще тогда заставить их разрезать сразу :}

***** ()
[#] Ответ на: комментарий от XVilka 29.09.2011 11:10:20  
YAR

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

**** ()
[#] Ответ на: комментарий от XVilka 29.09.2011 11:34:36  
YAR

Ну, я-то сграбливаю диски в abcde, который в свою очередь юзает cdparanoia. Но логи-то хотят от EAC )

**** ()
[#] Ответ на: комментарий от YAR 29.09.2011 11:38:54  
XVilka

значит надо написать простенький скрипт для конвертации логов cdparanoia/чего-то еще в логи EAC :) И виндоюзеры не заметят подвоха :D

** ()
[#] Ответ на: комментарий от XVilka 29.09.2011 11:42:39  
YAR

Тогда можно не конвертации, а просто генерации - не все ли равно, что в нем будет? :). Некоторые так и делают. А я просто оформляю и выкладываю музыку на TPB.

**** ()
[#] Ответ на: комментарий от Uter 29.09.2011 1:44:37  
alix

1) Проще риповать
2) Иногда порядок композиций важен
Но в целом да, неудобно

** ()
[#] Ответ на: комментарий от different_thing 29.09.2011 8:06:23  
urxvt

> Ты базу данных для коллекции не забыл?
Нет, не планирую. Мне никогда не нравилась БД, и не понимал зачем она нужна. Если все разложено по каталогам, то каталог music и есть БД.

*** ()
[#] Ответ на: комментарий от RussianNeuroMancer 29.09.2011 8:49:50  
urxvt

> Пятый пункт забыли (о xine речь сейчас правда уже не идёт).
Два cue-файла ссылающихся на один аудио-файл будут выглядеть также как бы они ссылались на два разных дата-файла. Честно говоря, идею с выбором конкретного вряд ли удастся реализовать в данной концепции.

> Ещё хочу добавить, что один cue может ссылаться на два файла (в каждом из которых несколько треков) - такой случай у вас обрабатывается?

Да это мой cue-парсер поддерживает. Должно заработать из коробки.

*** ()
[#] Ответ на: комментарий от name_no 29.09.2011 10:17:57  
urxvt

> 1. куй может быть потрековым. каждый трек отдельным файлом.
Предложенный мной алгоритм должен корректно обработать данный вариант.

> 2. куй может быть в любой из виндовых кодировок (cp125*). Ты заранее не угадаешь, из какой кодировки тебе его в utf перегонять.

Теоретически, это можно устроить...

> 3. в куях _очень_часто_ пишут правильное имя файла, но расширение имени - неправильное. Чаще всего образ в *.ape или *.flac, а в куе написано *.wav. Иногда в имени куя бывают подсказки в виде тегов [flac][utf8], но рассчитывать на это не приходится.

IMHO, это можно защитать как FileNotFound.

*** ()
[#]  
pekmop1024

Посмотри на deadbeef и сделай так же.

*** ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 12:47:56  
urxvt

> Посмотри на deadbeef и сделай так же.
Спасибо, гляну.

*** ()
[#] Ответ на: комментарий от urxvt 29.09.2011 12:49:14  
pekmop1024

> Спасибо, гляну.

Собственно, это единственный плеер на моей памяти, который из коробки жрет весь мой зоопарк лосслесса без лишних телодвижений. Вот работает и все, waker видимо обладает таким же зоопарком лосслесса.

*** ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 13:28:04  
nCux

> Собственно, это единственный плеер на моей памяти, который из коробки жрет весь мой зоопарк лосслесса без лишних телодвижений. Вот работает и все, waker видимо обладает таким же зоопарком лосслесса.

А как же няшный фубар? :3

* ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 12:47:56  

> Посмотри на deadbeef и сделай так же.

Предлагаю сделать иначе: посмотреть на deadbeef и бросить эту затею. DeadBeef уже делает всё, что нужно, велосипедные плееры больше не нужны.

** ()
[#] Ответ на: комментарий от name_no 29.09.2011 14:13:04  
pekmop1024

Может, он его на Qt пишет? Есть, конечно, qmmp, но морду нормальную ему так и не сделали, да и по всеядности он таки не дотягивает до говядины

*** ()
[#] Ответ на: комментарий от nCux 29.09.2011 14:07:26  
pekmop1024

> А как же няшный фубар? :3

он же под оффтопик. Да и там его надо обвешивать плагинами...

*** ()
[#] Ответ на: комментарий от name_no 29.09.2011 14:13:04  
urxvt

> Предлагаю сделать иначе: посмотреть на deadbeef и бросить эту затею.
1. Just For Fun
2. Оно умеет быть как MPD с консольным клиентом на другой машине?

*** ()
[#] Ответ на: комментарий от urxvt 29.09.2011 14:53:36  

> Оно умеет быть как MPD с консольным клиентом на другой машине?

Это ещё нафига?

** ()
[#] Ответ на: комментарий от name_no 29.09.2011 15:19:30  
pekmop1024

> Это ещё нафига?

для медиацентра было бы удобно, честно говоря.

*** ()
[#] Ответ на: комментарий от alix 29.09.2011 11:57:21  
YAR

> Проще риповать

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

> Иногда порядок композиций важен

Для кого? Я хочу слушать так, как я хочу.

**** ()
[#] Ответ на: комментарий от urxvt 29.09.2011 12:45:12  
YAR

> IMHO, это можно защитать как FileNotFound.

Тогда половина скачанного будет Not Found :)

**** ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 14:52:11  
nCux

> он же под оффтопик. Да и там его надо обвешивать плагинами...

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

* ()
[#] Ответ на: комментарий от nCux 29.09.2011 15:31:40  
pekmop1024

> Плагины не проблема, а даже плюс

Не, это минус. Потому что обсуждаемый функционал является базовым для данной категории софта.

> А в вашем дедбифе есть коллекции?


Нету и не нужно. Есть мозг и файловая система, а кто не осилил - на тех пофиг.

*** ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 15:33:32  
nCux

> Нету и не нужно. Есть мозг и файловая система, а кто не осилил - на тех пофиг.

Коллекции + файловая система позволяют мгновенно грузить огромные дискография, не перечитывая каждый раз тэгов.
Примерно так это выглядит - http://i.imgur.com/2ifaV.png
Пишу с работы, поэтому беспорядок, дома всё аккуратно рассортировано по жанрам и исполнителям

* ()
[#] Ответ на: комментарий от nCux 29.09.2011 15:40:30  
nCux

Ах да, под онтопиком такое достигалось только mpd+ncmpcpp или ario с плагином файловой системы

* ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 15:24:00  

> для медиацентра было бы удобно, честно говоря.

Для медиацентра гораздо более удобно было бы использовать LIRC.

** ()
[#] Ответ на: комментарий от name_no 29.09.2011 15:42:27  
pekmop1024

Искать пульт, тыкать им в направлении центра, вместо того, чтобы просато делать это из клиента? Не...

*** ()
[#] Ответ на: комментарий от pekmop1024 29.09.2011 15:46:14  

> вместо того, чтобы просато делать это из клиента?

Найти пульт проще и быстрее, чем включить компьютер, запустить клиента и нажать там next.

** ()
[#] Ответ на: комментарий от name_no 29.09.2011 16:14:10  
pekmop1024

> включить компьютер, запустить клиента и нажать там next.

я обычно или за компьютером, или сплю, или не дома. И уж тем более его никто не выключает. Так что неактуально. :)

*** ()
[#] Ответ на: комментарий от name_no 29.09.2011 10:17:57  
>>-----Цитата---->>

не знаю,пучел ли ты такие варианты, я часто об них спотыкаюсь:

1. куй может быть потрековым. каждый трек отдельным файлом.

2. куй может быть в любой из виндовых кодировок (cp125*). Ты заранее не угадаешь, из какой кодировки тебе его в utf перегонять.

3. в куях _очень_часто_ пишут правильное имя файла, но расширение имени - неправильное. Чаще всего образ в *.ape или *.flac, а в куе написано *.wav. Иногда в имени куя бывают подсказки в виде тегов [flac][utf8], но рассчитывать на это не приходится.

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

<<-----Цитата----<<

хотелось бы добавить :)

5. бывают случаи, когда альбом порезан на треки, и в каждый файл вшит cue всего альбома (в виде когда он еще был image+cue).

чтобы все варианты image/tracks+cue работали — плеер должен поддерживать 2 отдельных механизма поддержки cue.

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

2. когда юзер выбирает .mp3/flac/ape, а плеер сам ищет к нему cue (в рамках этого же механизма должны открываться вшитые cue, и автоматически детектиться случай из п. [5]).

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

deadbeef поддерживает пока только 2й механизм, и то не полностью :)

** ()
[#] Ответ на: комментарий от waker 29.09.2011 19:27:12  

ах да, еще бывает вариант

6. 1 cue файл, рядом с которым лежат образы в разных форматах. album.cue + album.wav + album.mp3 + album.flac, например

deadbeef это жрет, т.к. cue ищется из названия файла с музыкой, а не наоборот. если делать через механизм [1] — получится слушать только в одном из форматов - том, который прописан в .cue файле.

** ()