Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Калькуляторы, арифмометры, PDA, HPC »   Свисток для Д3-28
RSS

Свисток для Д3-28

программа для создания WAV-файлов в формате Д3-28

<<Назад  Вперед>> Страницы: 1 * 2 3
Печать
 
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Формат входного файла, запуск программы и создание WAV-файла.

Как уже было сказано выше, программа на данный момент поддерживает только файлы-образы сегмента памяти Д3-28.
Здесь в "Теме по Д3-28" было приведено достаточно таких файлов — так что, есть с чем поэкспериментировать.

Формат файла:
- файл является текстовым файлом в ASCII-кодировке (ну или хотя бы без Unicode-тэгов, задающих endianness и пр.)
- каждая строка должна завершаться символом перевода строки — CR+LF или LF (в зависимости от Вашей операционной системы). Последняя строка файла может не иметь символа перевода строки
- файл может иметь пустые строки — они игнорируются
- файл может иметь строки-комментарии — они тоже игнорируются. Строка-комментарий — это такая, которая начинается с символа '#'
- строка с данными должна содержать ровно ОДИН байт данных и более ничего. Концевые комментарии в строках с данными не допускаются
- байт данных представляется в хитрой-прехитрой кодировке, принятой в Д3-28... я бы её назвал "decimal-coded hexadecimal" десятично-кодированная шестнадцатеричная система. Например, байт данных 0xEA должен быть представлен как 1410 — здесь, "14" есть десятичное представление шестнадцатеричной цифры E, а "10" - десятичное представление шестнадцатеричной цифры "A"
- самый последний байт в файле должен быть кодом инструкции END, т.е. это должен быть код 0512

Пример файла (абстрактный пример!):
[q]
# my comment
0102
0304
1013
0512
[/q]
В этом файле всего 4 байта: [ 12, 34, AD, 5C ]

Ну и чтобы этот файл сконвертировать в WAV, суть открываем консольку, переходим (для удобства) в каталог с нашим файликом и выполняем команду:
[q]
mk60 myfile.dat myfile.wav
[/q]
// думаю, понятно, что myfile.dat — это имя исходного файла с данными

Проверить полученный WAV-файл можно, в общем, любым плеером, способным открывать WAV-файлы.

Кстати, если вдруг у кого-то отыщется плеер (кроме VLC), который ругнётся на созданный файл или будет проигрывать "тишину", то очень прошу сообщить мне об этом.
Я лично проверял полученные файлы с плеерами ffplay, vlc, windows media player. Из них все проигрывают файл правильно, кроме VLC (он проигрывает тишину — с этим я буду разбираться отдельно).
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Чего хотелось бы от коллег с Форума.

Ну, собсна:
1) попробовать записать полученный WAV-файл на кассету
2) попробовать считать такую кассету в Д3-28

Если кто может сделать хотя бы п.1, то это уже было бы здорово, т.к. можно будет оцифровать такую запись, и посмотреть, вообще "то" у нас получается на ленте, "что" мы ожидаем, или "не то".

Спасибо!
Sergei Frolov
Advanced Member
Коллекционер

Откуда: Питер
Всего сообщений: 2719
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июля 2003
А скомпилированного файла нет?
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Sergei Frolov написал:
[q]
А скомпилированного файла нет?
[/q]
поверхностный ответ: питон - это скриптовый/интерпретируемый язык, программы распространяются в исходном коде

более детальный ответ:
- в принципе я мог бы сделать скомпилированный дистрибутив exe/bin с интегрированным питоном
- но такой вариант сильно ограничил бы кроссплатформенность — линукс/виндоуз, 32/64 бит, версия libc
- поэтому я сделал дистрибутив с исходным кодом — это более правильный путь для программ на питоне
- на самом деле, если бы я хотел скомпилированный вариант, то я бы написал на C++ или Java
- в данном случае питон был выбран по договорённости с создателями сайта d3-28.ru — т.к. они уже используют питон для похожей задачи (ну, как я понял)
- если будут массовые мотивированные пожелания перейти на другой язык, то мне лично до без разницы — могу переписать на другой

скачать питон можно здесь:
https://www.python.org/downloads/
// конкретно на виндоуз я проверял с версией 3.4.4, но, думаю, и с последней тоже должно работать

для линукс — ну, если убунту/дебиан — то надо установить пару пакетов:
- python или python2.7 или python3.4
- python-pip
// здесь я проверял с версией 2.7.5

если питон уже установлен, то узнать его версию можно, набрав в консольке
[q]
python --version
[/q]
Sinus
Newbie


Откуда: СПб
Всего сообщений: 30
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 авг. 2016
xoiss, а можно хоть одним глазком взглянуть для примера на готовый wav? Может, и народу готовый wav пригодится. Например, вот был в теме про Д3-28 файлик "myfile.dat" с простенькой программкой для голой Д3-28, без периферии:
7-11-2017_tablo-XY-test__KP-637_N-36.txt

И даже ещё короче вот программка - просто счётчик, выводит с паузой числа 1, 2, 3, ... на Y-табло машинки: 0700 0604 0701 0600 0412 0615 1402 0004 0512 (набирать надо, конечно, столбиком).

(Очень хочется ошибаться, но сомнение гложет: станет ли кто из раз-два и обчёлся владельцев работающей машинки мало того, что экспериментировать с записыванием кассеты, так до того ещё питон ставить, программу ставить, и с myfile.dat разбираться... )
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
День добрый!

7-11-2017_tablo-XY-test__KP-637_N-36.wav
https://yadi.sk/d/PoI3IKdw3Vxjzo

1-2-3.wav (ну, не придумал, как лучше его назвать)
https://yadi.sk/d/2d8Kyyqq3Vxk24

Наверное, можно попробовать их записать на кассету, а потом прочитать-оцифровать полученную запись и попробовать разобрать её в Вашей программе для Маткада.


Я сам пока не могу с кассетой весь цикл пройти.
Дома ни одной аудиокассеты нет (были, да, куда-то все делись, включая пару с Бейсиком для Д3-28 — уже 2 года никак нигде не могу их отыскать... боюсь жена выбросила как мусор).
И со шнурком тоже разбираться надо. На ноутбуке jack с пиктограммой "наушники"... Может ли он работать как вход — не знаю. Надо чем-нибудь проверить.
Магнитофон стерео есть, но у него нет линейного входа-выхода. Есть только под микрофон/наушники (а это "не совсем то"). Да и головку у него не покрутишь.

В общем, если Вы можете на Вашем комплекте опробовать, то было бы здорово.

И, кстати, попробуйте поставить Питон. На самом деле сложного ничего нет — скачали/запустили и всё. Маткад - и то в 100 раз сложнее ставить.
Sinus
Newbie


Откуда: СПб
Всего сообщений: 30
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 авг. 2016
xoiss, спасибо. Попробую "цикл пройти", если мой старый м/ф "Романтик", ещё способен записывать, в чём я очень не уверен; и да, тоже ведь надо ещё запись с компа наладить, - возможно, не очень скоро выйдет, если выйдет. Завтра начну, сейчас ночь.

Графики сигналов Ваших я посмотрел. Интересно, как дело пойдёт с такими прямоугольниками (чисто вертикальные фронты! Может, лучше их подзавалить? Ладно, попробуем посмотреть, во что их превратит АЧХ магнитофона).
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
Sinus написал:
[q]
Интересно, как дело пойдёт с такими прямоугольниками (чисто вертикальные фронты! Может, лучше их подзавалить?
[/q]
Там не просто ровные прямоугольники — там ОДИН сэмпл на один такой "прямоугольник" — потому он такой прямоугольный.
То есть в этом файле частота дискретизации не 44.1 кГц, например, а всего лишь 1 кГц.
Ну, для синтеза этого должно быть достаточно. Зато файл в 40 раз меньше.

Заваливать... ну, имхо, смысла нет — только алгоритм усложнится, и файл вырастет на порядок.

Меня больше напрягают другие вещи:
- я использовал 8 бит на канал вместо 16. В принципе там и 1 бита хватило бы, но меньше 8 сделать нельзя. Однако, в зависимости от плеера, это может иметь побочные эффекты в виде непойми-откуда-берущихся шумов воспроизведения. Если использовать FloatPoint-кодирование, то такие шумы не наблюдаются. Для 16 бит — не проверял. В общем, надо посмотреть, будут ли они возникать. Если будут, то перейдём на FloatPoint
- я использовал плавное введение/выведение уровня "ноль" — собсна, процесс занимает +1 сек. в начале и +1 сек. в конце. Ну, это долго объяснять. В общем, может, будет лучше введение уровня делать единомоментным скачком (за N секунд до начала записи), а выведение и вовсе не делать. Если по второму варианту, то, конечно, при воспроизведении есть щелчки, которые нужно будет убрать мануально (т.е. кнопкой Пауза магнитофона), но второй вариант проще в реализации и у него шумов, вроде как, меньше. Короче, это тоже надо смотреть по факту

Вот.

---
А так, конечно, лучше бы как-то нарыть отдельный ЛПМ и прилепить к нему нативную схему усилителя записи/воспроизведения от Д3-28.
Я не говорю, что прям вот надо туда ещё и микроконтроллер засандалить — это лишнее, — но как бы хотя бы аналоговую часть сделать, как в оригинале.
Sinus
Newbie


Откуда: СПб
Всего сообщений: 30
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 авг. 2016
xoiss
Возможно на хорошей аппаратуре у кого-нибудь всё более-менее получится. Но у меня пока только самый первый блин не комом вышел: каким-то чудом первая попытка оказалась удачной (см. ниже отчёт). А все остальные копии, которые я сделал для набора статистики, получились с какими-то "непонятно что". Даже не могу никак толком объяснить эти артефакты; удивляюсь сам себе... Предполагаю пока, что АРУ (в магнитофоне и, может быть, в компюьтере) вызывает некие длительные пертурбации в тракте. Может быть и длительное нарастание (введение) "постоянного уровня" негативно повлияло. Во всяком случае, тот факт, что АРУ срабатывало, было слышно при записи. Надо придумать проверки и способы борьбы с АРУ, и ещё поэкспериментировать.

Здесь отчёт: test-1_16-05-2018.pdf

Поправка: на более чувствительном входе магнитофона резистивный делитель напряжения был не 30к/(82к+30к) (это меня склероз подвёл), а 30к/(13к+30к) - так нарисовано в схеме; параллельно к 30ком подключено управляемое сопротивление АРУ на полевиках. Качественно это количественное уточнение сути дела не меняет.

К сожалению, я только после этого мероприятия заметил, что у меня в компе была включена галка "Auto Gain Control" (все эффекты отключил, а про эту АРУ я в суете или забыл или нечаянно включил, вместо того чтобы выключить). Завтра-послезавтра повторю без этой галки, и напишу, влияет ли она и как.
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
... мда, как говорицца, непрокатило

боюсь, "цифрой" это никак не улучшить... особенно на участках, где в канале длительное время нет активности

"Романтик" у Вас какой? М-201С? М-309С? М-311? ...
уточните, пожалуйста, модель — я хотел бы глянуть схему его канала записи
// ну, или если есть сразу в готовом виде скан его принципиалки — то пришлите, пожалуйста
<<Назад  Вперед>> Страницы: 1 * 2 3
Печать
Полигон-2 »   Калькуляторы, арифмометры, PDA, HPC »   Свисток для Д3-28
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS