Цитата Сообщение от diver
Нет :) ты проделывал эту работу, по сравнению дублей, автоматизировав некоторые шаги.
Так точно, те шаги, которые можно автоматизировать. Изобретать эвристический анализатор по типу Касперского неоправдано - никто не оценит ;)

Цитата Сообщение от diver
Кстати, спасибо за такую возможность.
:)

Цитата Сообщение от diver
доп. тэги/пометки - толку от них будет не очень много, ибо как ни крути, а большая часть музыки уже написана и тэги в ней не стоят.
Нет, я не про тэги, а про то, что AlCo и так иногда делает, например

"ProTracker 3.6 compilation of cHeR@n! + small rmx(?) fix by AC by Black DMB 2003 - Basil"

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

Цитата Сообщение от diver
вот оно! разве нельзя проверить модуль на валидность?
Модуль и так проверяется на валидность. Во-первых, рипер в Ay_Emul ищет не по тегам, а по характерной для формата структуре. Вторая стадия - загрузка модуля (только для некоторых форматов, типа PT2PhFamily, FLS и т.п. по структуре ищется адрес загрузки). Третья стадия - подсчет длины (модуль быстро "проигрывается", попутно отлавливается выход адреса за пределы и зацикливания, именно после этой стадии чаще всего и появляется известная "bad file structure"). И последняя стадия - собственно проигрывание. Если модуль звучит нормально на слух, но имеет изъяны в структуре, повода его браковать нет. А дубль может и не быть оригиналом, а всего лишь фиксом третьего лица. У меня, например, есть свой ST модуль, который побился, еще когда я его хранил на дискете в некомпилированном виде. Тем не менее, это оригинал.

Так что изъяны в структуре - это всего лишь один из критериев. О защите от декомпиляции и прочих извратах я вообще молчу - с точки зрения структуры они безнадежно битые и Ay_Emul'ом не опредялются, но играются то правильно ;)

/о перекомпиляции/

Цитата Сообщение от diver
а это влияет на звучание модуля в AY Emul'е? а если нет?
Когда не влияет, это достаточно легко проверить - PSGC.

Но в большинстве случаев влияет. Версии PT3 можно разделить на четыре группы: 1) до версии 3.3 включительно + 3.4r; 2) 3.4x; 3) 3.5x + VT II в режиме З.5; 4) 3.6x + VT II в режиме VT II.

Внутри каждой группы перкомпиляции к потерям не приводят, за исключением изменений, вносимых в оптимизатор компилятора (в одном дубли tempo удаляются, в тех, что поновей и до сего дня - нет, и прочее, в history частично описано). Между первой и второй группой отличаются некоторые таблиц нот, после перекомпиляции версия в заголовке подменится, а она единственная зацепка для программы-плеера. По этой причине проблема с выбивающимся из ряда 3.4r просто не разрешима - грубый просчет авторов PT3.4. На стыке второй и третьей групп меняется таблица громкости - не менее существенное изменение, влияющее на звук. Между 3 и 4 группой - меняется алгоритм команды портаменто - этот шаг мы согласовали с AlCo, хотя некоторые недоразумения все равно остались.

Также компиляторы разных версий PT3 по разному считают константы портаменто. Это не столь важно (умный плеер их игнорирует и считает на лету для точности), но где-нибудь на пати при проигрывании стандартным плеером от какого-либо из релизов ProTracker 3.xx, отличного от того, в котором написан модуль, могут возникунть сюрпризы ;) Это касается не только портаменто.

И это только проблемы, которые возникают с одним трекером, хоть и разных подверсий :)

Полагаю, говорить о нюансах перекомпиляции ST в PTx.xx и т.п. не нужно, я этот вопрос специально не изучал ;) К тому же дубли такого рода не страшны, т.к. понятно, что из чего получено, что удалить, что оставить.

Цитата Сообщение от diver
ведь речь о чем: в модуле могут быть лишние, неиспользуемые паттерны,
Это ни о чем не говорит. В том же PT3 в зависимости от способа сохранения, неиспользуемое либо удаляется, либо нет, но PSG получаются одинаковые. Вообще, почти всегда, когда PSG одинаковые, я удаляю больший по размеру дубль. Исключение - когда в меньшем явно не авторская строка в названии (пробелы, например, или привет от того же Пупкина ;) ).

Цитата Сообщение от diver
модуль может быть битым (явно не валидные данные в к-л местах модуля)
Сама по себе информация о том, битый модуль или нет, не интересна (я его оставлю все равно). А вот если есть дубль, то битость и так выявляется с помощью указанных мной четырех шагов. Одно дело сделать простенький PSGC, а другое - анализатор форматов модулей, более чем серьезный проект, затеянный ради каких-то пары сотен дублей, которые за полгода-год все равно "рассосутся" - работа-то идет, и результаты примерно с такой же периодичностью публикуются ;)

Цитата Сообщение от diver
, модуль может иметь другую структуру на уровне порядка паттернов и проч. я говорю об автоматизации детекта этих вещей.
В общем-то, если кто-нибудь такое напишет, с удовольствием буду пользоваться ;) Но программированием ради программирования мне заниматься не хочется, как это было модно писать раньше: "оставим это в качестве упражнения для читателей" :)

Цитата Сообщение от diver
кроме того. если различие в орнаментах или чем-то подобном, влияющем на звучание, то можно ввести произвольную меру различия и по ней оценивать различность версий модуля и принимать решение.
Ты знаешь, это гадание на кофейной гуще. Я часто попадаю в такие ситуации, слушаю один вариант, второй, смотрю, чешу затылок. Ну к примеру, в одном модуле орнамент типа +12 +24 0 0 -12, а в другом +24 12 +24 0 -12. Или один единственный паттерн сыгран в одном варианте с чередование громкостей F и A, а в другом F и B. Или в одном орнамент "-5 -4 -3 -2 -1 0 0 0", а в другом "-3 -2 -1 0 0 0". И то и другое звучит приемлимо, но что оставить? Никакие программы тут не помогут. В последнее время я просто почти наугад начал действовать в таких ситуациях, так как оставлять оба варианта с таким незначительным отличием смысла нет.

Цитата Сообщение от diver
не надо ничего удалять. просто надо иметь инструмент, который мгновенно проанализирует оба модуля и выдаст список различий в к-л форме.
Видимо я не совсем программист, потому что оцениваю задачу только по одному критерию - трудозатраты. Что-то мне подсказывает, что сравнить уже найденные дубли с помощью приведенного и проверенного мной алгоритма не дольше, чем разработать тот инструмент, который ты предлагаешь. Конечно, он может пригодиться в будущем, но для меня это слабый стимул ;)