Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Свисток для Д3-28 |
<<Назад Вперед>> | Страницы: 1 2 3 | Печать |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Всем привет! Предлагаю всеобщему вниманию небольшую программку, которая (я надеюсь!) создаёт WAV-файлы в формате "Электроника Д3-28". Программа работает из командной строки и принимает два аргумента: - имя файла данных, который нужно положить на плёнку - имя WAV-файла, который будет создан в результате работы программы Далее полученный WAV-файл Вам нужно каким-то образом воспроизвести и записать на компакт-кассету — а-ля МК-60. Ну а ещё далее Вам нужно эту кассету засунуть в Ваш ЛПМ Вашего Д3-28 ...если, конечно, они у Вас есть! Ну и, наконец, уж коли Вам вдруг это всё удалось проделать, то, полагаю, дальше Вы и сами догадаетесь, что делать. * Disclaimer: В силу того, что у меня пока нет возможности записать WAV-файл на живую кассету и проверить её с живой Д3-28, я не вполне уверен, что в живую это всё в итоге чётко считается. Посему, суть, я был бы признателен, если кто-то, у кого есть мафон+шнурок+кассета+аппорат, проведёт этот опыт и поделится результатами... // возможно, при этом придётся пошаманить с настройками моей программы и посоздавать разные варианты WAV-файла в поисках рабочего варианта В общем, программа умеет создавать WAV-файлы, их формат, вроде бы, правильный, и они, предположительно, должны читаться в Д3-28. На данный момент поддерживаются файлы-образы сегмента памяти Д3-28. Файлы в формате "Бейсика" сейчас НЕ поддерживаются. Далее в отдельных комментариях я излагаю вопросы: - установка программы - формат входного файла, запуск программы и создание WAV-файла - чего хотелось бы от коллег с Форума Спасибо за внимание! С уважухой, Саня. |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Установка программы. Далее я исхожу из того, что Вы понимаете, что здесь написано. // Если НЕ понимаете, но ОООчень хотите эту программу установить, то задавайте вопросы здесь — очень постараюсь не послать. Программа написана на Питоне. Поэтому Вам, очевидно, сначала нужно установить себе Питон. Программа совместима с Python 2.7 и Python 3.4. Ещё Вам понадобится менеджер пакетов Питона — pip. На Линуксе его надо устанавливать отдельно. На Виндоузе он, вроде бы, емнип, приезжает сразу вместе с Питоном. Для установки программы Вам, конечно же, нужен Интернет. Открываем консольку и набираем: - в Виндоузе: - в Линуксе: pip install mk60 Если всё норм, то на экран будет выдано что-нибудь вроде: sudo pip install mk60 --pre - в Виндоузе: - в Линуксе: Collecting mk60 Ну, собсна, на этом процесс установки закончен! Downloading/unpacking mk60 А Вы что думали?! В командной строке набираем: Программа запустится и ругнётся, что ей не указали имена файлов для обработки: mk60 Если у Вас всё то же самое, то значит программа установилась успешно. specify input and output files in the command line |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 14 мая 2018 3:01 Сообщение отредактировано: 14 мая 2018 3:05
Формат входного файла, запуск программы и создание WAV-файла. Как уже было сказано выше, программа на данный момент поддерживает только файлы-образы сегмента памяти Д3-28. Здесь в "Теме по Д3-28" было приведено достаточно таких файлов — так что, есть с чем поэкспериментировать. Формат файла: - файл является текстовым файлом в ASCII-кодировке (ну или хотя бы без Unicode-тэгов, задающих endianness и пр.) - каждая строка должна завершаться символом перевода строки — CR+LF или LF (в зависимости от Вашей операционной системы). Последняя строка файла может не иметь символа перевода строки - файл может иметь пустые строки — они игнорируются - файл может иметь строки-комментарии — они тоже игнорируются. Строка-комментарий — это такая, которая начинается с символа '#' - строка с данными должна содержать ровно ОДИН байт данных и более ничего. Концевые комментарии в строках с данными не допускаются - байт данных представляется в хитрой-прехитрой кодировке, принятой в Д3-28... я бы её назвал "decimal-coded hexadecimal" десятично-кодированная шестнадцатеричная система. Например, байт данных 0xEA должен быть представлен как 1410 — здесь, "14" есть десятичное представление шестнадцатеричной цифры E, а "10" - десятичное представление шестнадцатеричной цифры "A" - самый последний байт в файле должен быть кодом инструкции END, т.е. это должен быть код 0512 Пример файла (абстрактный пример!): В этом файле всего 4 байта: [ 12, 34, AD, 5C ] # my comment Ну и чтобы этот файл сконвертировать в WAV, суть открываем консольку, переходим (для удобства) в каталог с нашим файликом и выполняем команду: // думаю, понятно, что myfile.dat — это имя исходного файла с данными mk60 myfile.dat myfile.wav Проверить полученный 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 написал: поверхностный ответ: питон - это скриптовый/интерпретируемый язык, программы распространяются в исходном коде А скомпилированного файла нет? более детальный ответ: - в принципе я мог бы сделать скомпилированный дистрибутив 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 если питон уже установлен, то узнать его версию можно, набрав в консольке python --version |
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 написал: Там не просто ровные прямоугольники — там ОДИН сэмпл на один такой "прямоугольник" — потому он такой прямоугольный. Интересно, как дело пойдёт с такими прямоугольниками (чисто вертикальные фронты! Может, лучше их подзавалить? То есть в этом файле частота дискретизации не 44.1 кГц, например, а всего лишь 1 кГц. Ну, для синтеза этого должно быть достаточно. Зато файл в 40 раз меньше. Заваливать... ну, имхо, смысла нет — только алгоритм усложнится, и файл вырастет на порядок. Меня больше напрягают другие вещи: - я использовал 8 бит на канал вместо 16. В принципе там и 1 бита хватило бы, но меньше 8 сделать нельзя. Однако, в зависимости от плеера, это может иметь побочные эффекты в виде непойми-откуда-берущихся шумов воспроизведения. Если использовать FloatPoint-кодирование, то такие шумы не наблюдаются. Для 16 бит — не проверял. В общем, надо посмотреть, будут ли они возникать. Если будут, то перейдём на FloatPoint - я использовал плавное введение/выведение уровня "ноль" — собсна, процесс занимает +1 сек. в начале и +1 сек. в конце. Ну, это долго объяснять. В общем, может, будет лучше введение уровня делать единомоментным скачком (за N секунд до начала записи), а выведение и вовсе не делать. Если по второму варианту, то, конечно, при воспроизведении есть щелчки, которые нужно будет убрать мануально (т.е. кнопкой Пауза магнитофона), но второй вариант проще в реализации и у него шумов, вроде как, меньше. Короче, это тоже надо смотреть по факту Вот. --- А так, конечно, лучше бы как-то нарыть отдельный ЛПМ и прилепить к нему нативную схему усилителя записи/воспроизведения от Д3-28. Я не говорю, что прям вот надо туда ещё и микроконтроллер засандалить — это лишнее, — но как бы хотя бы аналоговую часть сделать, как в оригинале. |
<<Назад Вперед>> | Страницы: 1 2 3 | Печать |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Свисток для Д3-28 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |