Zhizh, напиши ещё в эту тему. Мне кажется там быстрее ответят.
Вид для печати
Zhizh, напиши ещё в эту тему. Мне кажется там быстрее ответят.
Я распознавал wavы на Wav2TapConverter. С автоматическими настройками мало что берёт. Вручную менял средний уровень сигнала (обычно от 115 до 127; wavы сделаны на 3-6 дБ), получше стало. Но всё равно многого не распознает.
Люди, а можете подкинуть сюда этот самый Maketzx для Windows, а то не могу найти. На WoS недоступен. Хочу на нем попробовать, раз хвалят.
Зачем записи жать в mp3 ? качество сильно теряется... пробуйте без сжатия через wav например.
Дистрибутивчик подарите, пожалуйста. А то не могу найти пока сам. :)
Спасибо! Нашел! Уже конверчу дальше, что не смог Wa2TapConverter. Пока хорошо идет.
А что не сможете перегнать, выкладывайте в wav вот сюда. Titus со своей супер-конверталкой, думаю, поможет.
Тут пытался сдампить прошивку от компа "Дуэт" с помощью save "rom" code 0,16384 и mp3 плеера. Но не могу WAV декодировать, ошибки. Вообще, похоже на шумы какие-то, но у меня вроде все заземлено. Может сам комп "шумит", либо плеер так пишет, не знаю. Я пробовал с помощью makeTZX, других утилит не нашел o_O
http://rghost.ru/49705467
Посмотрите , спецы.
Вообщем, как ни странно, но это мой плеер Cowon U2 так wav-ки пишет, с помехами нехилыми, причем игрался с уровнем громкости от 1 и до 10 - пофиг. Записал в итоге на нетбуке через микрофонный вход с минимальным уровнем громкости - помех не стало, сигнал ровный, аж прям как только что сконверченный из TZX в WAV. Но, makeTZX опять не скушал. Ни с фильтрами ни без. Скушал TAPER досовый. Ну и ладно.
PS: Вообще я думал больше прог для ZX есть, которые из WAV делают TAP или TZX... Странно все это, вроде ZX больше распространен, чем к примеру, Поиск -))
wav лучше записывать с параметрами 44kHz 8bit mono, тогда makeTZX хорошо распознает почти всё.
А может ее уже того... в open source? Глядишь народ начнет писать моды под всякие экзотические случаи.
Нельзя, там слишком все недоработано и запутано.
Лично я к опенсорсам вообще отношусь скептически. У программы должен быть если не один писатель, то как минимум идеалогический руководитель. А так - кто в лес, кто по дрова.
---------- Post added at 01:13 ---------- Previous post was at 01:10 ----------
Началось все с того, что я хотел считать свои старые спектрумовские кассеты, но MakeTZX от таких записей попал в просак.
Сперва хотел сам по-быстрому написать простую читалку, но выяснилось, что искажения в сигнале на столько разнообразные и экзотические, что пришлось начать эксперименты со всевозможными алгоритмами, находить способы понимания сигналов искажениями комплескного типа. В конце концов остановился на что-то типа вейвлет-анализа с кучей всяких автоматических подстроек и настроек. Поэтому алгоритм монстроидален, и местами непричесан, т.к. одни методы сменяли другие, и это оставляло за собой хвост, который стороннему наблюдателю может показаться чем-то совершенно непонятным.
---------- Post added at 01:29 ---------- Previous post was at 01:13 ----------
Например, подобные искажения никакие другие читалки не берут:
http://s57.radikal.ru/i156/1311/e9/cc335a6383b9.png
Не говоря уже о случаях, когда нулевые фронты вообще выпадают начисто:
http://s017.radikal.ru/i420/1311/fe/9bcdc713c93f.png
В первом случае моя читалка все видит чере вейвлет анализ, как видно на рисунке.
А во втором автоматически достраивает выпавшие нулевые фроны, основываясь на текущей скорости ленты.
То, что алгоритм выходит монстроподобным это не удивительно. У каждой записи свои особенности и алгоритм каким бы он ни был универсальным где-то попадет в просак. Но даже в него можно наверняка понатыкать условий и вывести их как галки в GUI. Тогда пользователь обломавшись с одними настройками сможет галками подрихтовать их и попробовать считать запись еще и еще раз.
wintzx тебе в-помощь
http://www.wintzx.fr/images/winTzx.jpg
А можно сделать так, чтобы алгоритм пробовал читать сам с разными настройками и останавливался только тогда, когда выбран самый надёжный способ? Тогда от пользователя почти ничего не нужно будет.
Если это вопрос про мою читалку, то она и так все автоматически делает и сама подстраивается под разного типа искажения. Конечно, можно сделать из нее нечто более гибкое, если настройки вынести в GUI, но для обычного пользователя, который не знает, что в его записи плывет или выпадает, она делает все, что только можно автоматически.
Круть, я как раз хотел перекинуть все свои 15 кассет на PC в tap-формате, купил девайс, переписал звуки в WAV-ки, а вот конвертнуть нормально не могу - нужно дофига времени потратить, если делать это какой-нить старой тулзой.
Пробовал Wav2Tap_Converter.exe - очень мало настроек, плюс требует моно-файл в 8-битном формате. Это нужно ещё извратиться, чтобы такой файл сделать)
Пробовал maketzx.exe с GUI - много настроек, но опять те же самые странные 8-битные требования к файлу и утомительный подбор. Полгода назад на перегонку одной стороны потратил весь вечер и пару игр так и не смог нормально конвертнуть (хотя на ZX всё читалось). Заниматься полмесяца конвертацией желания нет никакого :)
Где можно твой инструмент купить или скачать?
Прости, я прочитал все страницы этого топика и так и не понял - какую версию качать. Дофига обсуждений, линков и аттачей, из которых непонятно - какой файл самый свежий и наиболее рабочий.
Скачал ссылку из первого поста - ничего не распознаёт, походу тоже требует перекодировать все файлы в специальный только ему понятный формат :(
- - - Добавлено - - -
В общем, вытащил из WAV один канал, конвертнул в 48000Гц, прогнал ещё раз. Ничего не вытащилось, какие-то два TAP-файла со странными названиями, и в логе все блоки помечены как <checksum error>. Что я делаю не так?
Да, каким-то образом мне удалось сделать ему "правильный" формат. Он нашёл кучу интересного на моей "рабочей" кассете, включая игру, которую я считал утерянной! Спасибо за программулину.
Недостатки:
1. нужно как-то отвязаться от обязательной конверсии wav в моно-16бит-48кГц. Кроме того, можно использовать второй канал как источник сигнала при восстановлении испорченных данных.
2. нужно предусмотреть сохранение всех данных в отдельных TAP-файлах. Сейчас он мне сложил всё, что нашёл в 3 больших TAPки. Как-то придётся это сейчас распиливать и разбирать.
Спасибо!
Вот тебе резалка TAPок на REXX:
;)Код:/* TAPSplit */
OPTIONS AREXX_SEMANTICS
OPTIONS AREXX_BIFS
parse arg infile
if infile='' then do
say 'required argument missing'
say 'No file to split'
exit
end
infile=strip(infile,,'"')
if ~open(infile,infile,'r') then do
say 'No file to split'
exit
end
a=seek(infile,0,'b')
outfilenumber=0
loop:
length=readch(infile,2)
if eof(infile) then exit
data=readch(infile,c2d(reverse(length)))
outfilenumber=right(outfilenumber+1,3,0)
outfile=left(infile,length(infile)-4)'-'outfilenumber'.tap'
if ~open(outfile,outfile,'w') then do
say 'Error save file' outfile
exit
end
a=charout(outfile,length||data)
a=close(outfile)
signal loop
Epsilon, на Амиге не заработает, я переделывал её под PC-шный интерпретатор Regina.
Изначальная амижная была такая:
Код:/* TAPSplit */
parse arg infile
if infile='?' then do
options prompt 'FILE/A: '
parse pull infile
end
if infile='' then do
say 'required argument missing'
say 'No file to split'
exit
end
infile=strip(infile,,' "')
if ~open(infile,infile,'r') then do
say 'No file to split'
exit
end
filelength=seek(infile,0,'e')
seek(infile,0,'b')
outfile=0
loop:
blocklength=c2d(reverse(readch(infile,2)))
string=readch(infile,blocklength)
outfile=right(outfile+1,3,0)
open(outfile,outfile'.tap','w')
writech(outfile,reverse(d2c(blocklength,2))||string)
close(outfile)
if seek(infile,0)=filelength then exit
signal loop