Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Свисток для Д3-28 |
<<Назад Вперед>> | Страницы: 1 * 2 3 | Печать |
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. Я не говорю, что прям вот надо туда ещё и микроконтроллер засандалить — это лишнее, — но как бы хотя бы аналоговую часть сделать, как в оригинале. |
Sinus
Newbie
Откуда: СПб Всего сообщений: 30 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 7 авг. 2016 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 17 мая 2018 0:58 Сообщение отредактировано: 18 мая 2018 13:20
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 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |