Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу 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".

Программа работает из командной строки и принимает два аргумента:
- имя файла данных, который нужно положить на плёнку
- имя WAV-файла, который будет создан в результате работы программы

Далее полученный WAV-файл Вам нужно каким-то образом воспроизвести и записать на компакт-кассету — а-ля МК-60.

Ну а ещё далее Вам нужно эту кассету засунуть в Ваш ЛПМ Вашего Д3-28 ...если, конечно, они у Вас есть! :)

Ну и, наконец, уж коли Вам вдруг это всё удалось проделать, то, полагаю, дальше Вы и сами догадаетесь, что делать.

* Disclaimer:
В силу того, что у меня пока нет возможности записать WAV-файл на живую кассету и проверить её с живой Д3-28, я не вполне уверен, что в живую это всё в итоге чётко считается.
Посему, суть, я был бы признателен, если кто-то, у кого есть мафон+шнурок+кассета+аппорат, проведёт этот опыт и поделится результатами... :help:
// возможно, при этом придётся пошаманить с настройками моей программы и посоздавать разные варианты WAV-файла в поисках рабочего варианта

В общем, программа умеет создавать WAV-файлы, их формат, вроде бы, правильный, и они, предположительно, должны читаться в Д3-28.

На данный момент поддерживаются файлы-образы сегмента памяти Д3-28.
Файлы в формате "Бейсика" сейчас НЕ поддерживаются.

Далее в отдельных комментариях я излагаю вопросы:
- установка программы
- формат входного файла, запуск программы и создание WAV-файла
- чего хотелось бы от коллег с Форума

Спасибо за внимание!
С уважухой, Саня.
xoiss
Advanced Member


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


Ссылка


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

Далее я исхожу из того, что Вы понимаете, что здесь написано.
// Если НЕ понимаете, но ОООчень хотите эту программу установить, то задавайте вопросы здесь — очень постараюсь не послать. ;)

Программа написана на Питоне. Поэтому Вам, очевидно, сначала нужно установить себе Питон. Программа совместима с Python 2.7 и Python 3.4.
Ещё Вам понадобится менеджер пакетов Питона — pip. На Линуксе его надо устанавливать отдельно. На Виндоузе он, вроде бы, емнип, приезжает сразу вместе с Питоном.

Для установки программы Вам, конечно же, нужен Интернет.

Открываем консольку и набираем:
- в Виндоузе:
[q]
pip install mk60
[/q]
- в Линуксе:
[q]
sudo pip install mk60 --pre
[/q]
Если всё норм, то на экран будет выдано что-нибудь вроде:
- в Виндоузе:
[q]
Collecting mk60
Downloading https://files.pythonhosted.org...1a1.tar.gz
Installing collected packages: mk60
Running setup.py install for mk60
Successfully installed mk60-0.1a1
[/q]
- в Линуксе:
[q]
Downloading/unpacking mk60
Downloading mk60-0.1a1.tar.gz
Running setup.py (path:/tmp/pip_build_root/mk60/setup.py) egg_info for package mk60
Installing collected packages: mk60
Running setup.py install for mk60
Installing mk60 script to /usr/local/bin
Successfully installed mk60
[/q]
Ну, собсна, на этом процесс установки закончен!
А Вы что думали?! :)

В командной строке набираем:
[q]
mk60
[/q]
Программа запустится и ругнётся, что ей не указали имена файлов для обработки:
[q]
specify input and output files in the command line
[/q]
Если у Вас всё то же самое, то значит программа установилась успешно.
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.
Я не говорю, что прям вот надо туда ещё и микроконтроллер засандалить — это лишнее, — но как бы хотя бы аналоговую часть сделать, как в оригинале.
<<Назад  Вперед>> Страницы: 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