Так точно, те шаги, которые можно автоматизировать. Изобретать эвристический анализатор по типу Касперского неоправдано - никто не оценит ;)Сообщение от diver
:)Сообщение от diver
Нет, я не про тэги, а про то, что AlCo и так иногда делает, напримерСообщение от diver
"ProTracker 3.6 compilation of cHeR@n! + small rmx(?) fix by AC by Black DMB 2003 - Basil"
Вот такие маленькие пометочки не лишни, когда несколько вариантов модуля приходят из разных источников.
Модуль и так проверяется на валидность. Во-первых, рипер в Ay_Emul ищет не по тегам, а по характерной для формата структуре. Вторая стадия - загрузка модуля (только для некоторых форматов, типа PT2PhFamily, FLS и т.п. по структуре ищется адрес загрузки). Третья стадия - подсчет длины (модуль быстро "проигрывается", попутно отлавливается выход адреса за пределы и зацикливания, именно после этой стадии чаще всего и появляется известная "bad file structure"). И последняя стадия - собственно проигрывание. Если модуль звучит нормально на слух, но имеет изъяны в структуре, повода его браковать нет. А дубль может и не быть оригиналом, а всего лишь фиксом третьего лица. У меня, например, есть свой ST модуль, который побился, еще когда я его хранил на дискете в некомпилированном виде. Тем не менее, это оригинал.Сообщение от diver
Так что изъяны в структуре - это всего лишь один из критериев. О защите от декомпиляции и прочих извратах я вообще молчу - с точки зрения структуры они безнадежно битые и Ay_Emul'ом не опредялются, но играются то правильно ;)
/о перекомпиляции/
Когда не влияет, это достаточно легко проверить - PSGC.Сообщение от diver
Но в большинстве случаев влияет. Версии 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 и т.п. не нужно, я этот вопрос специально не изучал ;) К тому же дубли такого рода не страшны, т.к. понятно, что из чего получено, что удалить, что оставить.
Это ни о чем не говорит. В том же 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
Видимо я не совсем программист, потому что оцениваю задачу только по одному критерию - трудозатраты. Что-то мне подсказывает, что сравнить уже найденные дубли с помощью приведенного и проверенного мной алгоритма не дольше, чем разработать тот инструмент, который ты предлагаешь. Конечно, он может пригодиться в будущем, но для меня это слабый стимул ;)Сообщение от diver




Ответить с цитированием