если нужно могу сделать утилиту для конвертации TZX всех версий во FLAC/WAV.
Вид для печати
если нужно могу сделать утилиту для конвертации TZX всех версий во FLAC/WAV.
Вот сделал тестовую версию. Пока без поддержки Z-RLE для CSW блоков (нужно подключать zip библиотеку), в остальном все TZX должны работать, хотя код немного переделывал, могло чтото сломаться.
Работу проверял только под Linux, но должно работать под Windows, Linux, MacOS и других системах где есть mono.
Начиная с Win7 должно работать из коробки. В более старых системах нужно установить .net framework 4 runtime.
Под Linux и MacOS для запуска требуется установка mono. Полную версию mono ставить не обязательно, достаточно пакета mono-runtime.
Утилита tzx2wav поддерживает конвертацию из TZX как в WAV, так и в FLAC. Но для того чтобы поддерживался flac нужно установить пакет libflac. Правда flac меня разочаровал - на низких sampleRate почему-то возникают дыры в звуке, поначалу думал, что ошибка у меня в коде, но официальный тул flac такие-же дыры делает при конвертации из wav. Вобщем-то flac оказался не очень полезен, т.к. разница с wav для таповых файлов получается не существенная.
Работает из командной строки, по умолчанию используется частота Z80 3500000 Гц, выходной формат wav 24000 Гц 8-bit.
Параметрами можно просто указать только входной файл, тогда в качестве выходного будет использоваться то-же имя с расширением wav. Можно явно указать имя выходного файла. Ну и соответственно опциями можно задать частоту Z80 и параметры выходного формата - sample-rate и sample-bits.Код:Usage: tzx2wav [options] <input.tzx> [<output.wav|flac>]
Options:
--frequency <value> - set z80 reference clock
--sample-rate <value> - set output audio file sample rate
--sample-bits <value> - set output audio file bit resolution (8, 16, 24, 32)
По тестам - программы загружаются даже когда sample-rate 4800, правда звук получается ужасный, но грузится :)
Пробовал добавить 8x оверсэмплинг с FIR фильтром - звук получается красивее, но программы с фильтром не грузятся. Нужно разбираться.
Пример конвертации, на выходе получится wav в формате PCM 16 кГц 8 бит:
Частоту дискретизации --sample-rate можно любую задавать, хоть 12345 Гц. Разрядность --sample-bits поддерживается 8, 16, 24 и 32 бита. Но учитывая что фильтры не применяются, смысла задавать больш 8 нет, разве что если ваш плеер не поддерживает.Код:tzx2wav --sample-rate 16000 robocop.tzx robocop.wav
экспериментирую с наложением фильтров на магнитофонные записи спектрума. Т.к. реального спектрума у меня нет, просьба проверить загружается ли на реальном спектруме этот WAV файл? Если загружается корректно, то должна запуститься небольшая демка.
Интересует - загружается ли именно на реальном железе, подключенном к плееру wav файла.
Новая версия tzx2wav v1.2 - добавил фильтрацию с оверсэмплингом x16 для получения более качественного сигнала. Фильтр можно отключить опцией --no-filter.
Также добавил поддержку форматов TAP и CSW и добавил поддержку Z-RLE сжатия для CSW блоков TZX и CSW. теперь в качестве входного файла можно указаывать TZX, TAP или CSW.
С фильтром обработка длится заметно дольше, но зато получаются более качественные записи. :)
При обработке с фильтром для повышения качества можно задавать выходной формат 16 или 24 бита. С отключенным фильтром задавать более 8 бит нет смысла.
Любопытного эффекта турбирования можно достичь задав турбированную частоту z80 при конвертации. Стандартный загрузчик тянет даже если запись турбирована на частоте --frequency 4300000 - загрузка идет заметно шустрее (на 22%). Также можно замедлять запись, стандартный загрузчик тянет даже --frequency 2600000 :)
Для конвертации с турбированием использовать команду: tzx2wav --frequency 4300000 test.tap test.wav
В качестве выходного формата можно использовать как WAV, так и FLAC. Но для FLAC нужно чтобы в Linux был установлен пакет libflac-dev, а в Windows нужно подложить libflac.dll рядом exe.
"А такое же, но с перламутровыми пуговицами" @ "Бриллиантовая рука" - под "Андрюшу" можно сделать?
- - - Добавлено - - -
в конце загрузки - "Tape loading error", но RUN запускает демку. Возможно нужно поиграть с громкостью - смартфон. На слух как будто не отъюстирована головка.