МИДИ интерфейс
ZXNet echo conference «real.speccy»
From Aleksey Tarasow → To All 24 December 2003
Помнится была поднята тема сабжа. Все началось с публикации в Абзаца 18 статьи
на эту тему. Hо как я понял большинство учатников разговора так эту статью так
и не прочитали. Мне показалось, что будет неплохо поместить эту статью сюда,
тем более что это редакция не запрещает.
=== Начало midi_zx.txt ===
Перепечатка из Абзаца ©18. стр.12
МИДИ-интерфейс. Продолжение
Приветствую вас, спектрумисты!
В очередной раз предлагаю свой проект лМИДИ-интерфейс для
ZX-Spectrum-совмес-тимых компьютеров╗. Почему лв очередной раз╗? Потому
что уже неоднократно предлагал. К сожалению - безрезультатно. А та
реакция на мои предложения, которая была, на 90 % не имее т права
именоваться результатом. Hо я все же не теряю надежды и надеюсь на то,
что остались еще энтузиасты с головами, способные мыслить творчески и
работать руками, которые лзаточены как надо╗. Просыпайтесь и начинайте
помогать. Помогать не мне, а, в пе рвую очередь, себе и той платформе,
которую вы до сих пор, не смотря ни на что, любите. Hа этот раз я решил
написать статью более подробно и постараюсь не упустить в ней самого
важного.
С чего бы начать? Hаверное, стоило бы начать с чего-то такого, что
сразу вызвало бы интерес и привлекло внимание пользователей Спектрума.
А что это может быть? Hаверное какая-то штука, которой Спектрум до сих
пор не имел, но которую иметь было бы не лишн е, и, самое главное,
которая была бы полезна для пользователей этого компьютера.
Hасколько я помню историю Спекки, в 1985 году была выполнена
доработка его предыдущего варианта - увеличена память до 128 килобайт,
увеличилось количество экранов и... был добавлен музыкальный процессор
AY-3-8912 (AY-3-8910, YM2149F... - далее - "AY"). Т .е. уже тогда
разработчики озадачились увеличением звуковых возможностей Спекки.
Какое-то время действительно этот простенький трехголосый синтезатор
был просто находкой для спектрумистов, особенно для музыкантов. Для
него были написаны музыкальные редак торы, его сразу стали использовать
в играх и просто для озвучивания программ. Слушая музыку, написанную
для AY, я порой удивлялся, с какой виртуозностью те, кто писал эту
музыку, использовали более чем скромные (по нынешним временам)
возможности AY. И не раз приходила мысль - чтобы они творили, если им
дать более совершенные технические средства?!
Прогресс не стоит на месте. Сейчас возможности маленького AY
действительно можно считать более чем скромными. И все бы ничего, если
бы Спекки в настоящее время уже лумер╗. Hо! Больно уж живучая машинка.
До сих пор существует (от души надеюсь) множество ее почитателей. Hо
время идет и раз уж Спекки живет, то он должен совершенствоваться. И он
совершенствуется - к нему подключены мышь, CD-ROM, жесткий диск,
разработан модем...
Hе остался без изменений и звук. Одной из наиболее известных
разработок в этой области, на мой взгляд, является General Sound (GS).
Конечно, появление этого модуля дает Спекки новые звуковые возможности,
например, можно писать музыку, используя реальные инструменты, загружая
их в память модуля.
Все это, хорошо. Конечно, разработчики поработали на совесть
(разработать и отладить подобное устройство очень непросто - знаю на
собственном опыте), но сразу бросилась в глаза излишне высокая
сложность схемы, ее можно было бы значительно упростить. Такж е, на мой
взгляд, крайне неудачен выбор центрального процессора, который к тому
же работает на пределе своих возможностей - на граничной частоте.
Разумнее, как мне кажется, было бы использовать в этой схеме
однокристальные ЭВМ i8031, i8051 или их отечест венные аналоги (ВЕ31,
ВЕ51) - в то время они уже были доступны и стоили вряд ли больше Z80.
Думаю, что 8051 со своим мощным ассемблером, высокой
производительностью, способностью адресовать 64кб ОЗУ + 64кб ПЗУ и
способностью легко работать на частотах до 25 мегагерц был бы уместнее.
Впрочем, не буду углубляться в анализ этой схемы, т.к. это не является
целью моей статьи.
В общем, решил я сделать свою собственную "звуковую плату".
Вариантов было два:
1. Разработать что-то подобное GS.
2. Использовать промышленную звуковую плату.
Первый вариант я сразу отбросил - овчинка выделки не стоит. Все
равно, с использованием доступной элементной базы (например, К572ПА1)
приличного качества звучания достичь невозможно. Да и возни многовато.
Второй вариант меня устраивал больше. Hо опять-таки, слишком много
проблем возникало при попытках подключить звуковые платы промышленного
производства. И дело даже не в количестве проводов и дополнительных
микросхемах. Проблема в том, что звуковых плат с уществует множество
разновидностей и у каждой свои особенности, начиная с инициализации
портов и далее.
В данном случае выходом из ситуации могло быть использование
семейства карт, которые имели бы одинаковый метод подключения и
одинаковый протокол обмена данными для упавления. Вскоре такой вариант
был найден. Hа мой взгляд, разумнее всего было бы использо вать так
называемые "дочерние МИДИ-карты".
Для того, чтобы заставить звучать такую карту нужно сделать следующее:
1. Подать на нее напряжения питания (+5 В, +12 В, -12 В);
2. Сформировать сигнал "сброс";
3. Подключить к выходам левого и правого каналов усилитель;
4. Передать по последовательному каналу данные для управления картой.
С пунктами 1-3 проблем не возникло - была изготовлена печатная
плата, на которую были установлены: "гребенка" для подключения самой
карты, RC-цепочка для формирования сигнала "сброс", разъемы для подачи
напряжений питания и подключения усилителя. Для "скармливания"
(передачи) данных карте была использована одна из линий данных
параллельного порта (DO). Передача данных формировалась программно.
При пробном запуске все прошло нормально - карта послушно выполняла
подаваемые мной команды, из динамиков неслась жуткая какафония (так как
мне не терпелось послушать свое творение, то не хотелось набирать
какую-либо мелодию. Поэтому пришлось ограничитьс я случайными нотами
"от фонаря"). Hо при первой попытке написать простейший МИДИ-плеер,
проигрывающий МИДИ-файлы я столкнулся с проблемой - не хватило
быстродействия. Мелодия спотыкалась, ковыляла, дергалась и тащилась на
костылях. Происходило это из-за того, что подпрограмма передачи байта
по последовательному каналу занимала определенное время и процессору
приходилось ждать, пока не передастся последний бит. Только после этого
возобновлялась обработка МИДИ-файла.
Пришлось искать пути для "разгрузки" процессора. Самым лучшим
вариантом, на мой взгляд, было бы передачу данных взвалить на
какую-нибудь аппаратную "примочку" - в этом случае процессору нужно
было бы только подбрасывать ей байты для отправки и периодически
спрашивать ее, закончилась ли передача.
Первый эксперимент был с применением микросхемы КР580ВВ51.
Эксперимент провалился, так как скорость передачи данных по МИДИ-порту
составляет 31,25 кБод, а ВВ51 оказалась просто неспособна работать на
такой скорости.
Второй эксперимент оказался более удачным - за основу была взята
схема МИДИ-кла-виатуры, опубликованная в журнале "Радио" (N 11, 1993
г.) А. Студневым. Ее основа -однокристальная ЭВМ 1816ВЕ35 + регистр
защелка 580ИР82 + ПЗУ 573РФ2. Мультиплексоры, исполь зуемые для опроса
клавиатуры, были выброшены за ненадобностью. Регистр 580ИР82 был
заменен на гораздо менее прожорливую микросхему 1533ИРЗЗ. Вместо ПЗУ
573РФ2 был использован ее зарубежный аналог 2716. Из линий порта 8 были
использованы для ввода данных (DO-D7), одна использовалась для
стробирования ввода данных (Strobe) и одна сигнализировала о процессе
передачи данных (Busy). Таким образом, получился интерфейс стандарта
"Centronix", правда, в упрощенном виде. Также была переписана
управляющая программа.
Схема работала "на ура" - МИДИ-файлы нормально проигрывались в
реальном времени. Также для эксперимента была подключена музыкальная
клавиатура и написана программка простого секвенсора. Hо я все еще был
недоволен - схема МИДИ-интерфейса была несколько гр омоздкой и ее было
проблематично разместить в корпусе компьютера. Поэтому пришлось искать
пути минимизации устройства.
Выход очевиден - нужно использовать другую ОЭВМ. Благо, в то время
уже были широко доступны чипы от Microchip и Atmel. Мной был выбран
20-ноговый Атмеловский чип АТ89С2051 - он имел небольшие габариты,
почти не требовал обвязки и, что самое главное, имел встроенный
последовательный порт.
Сказано - сделано. Быстренько была разработана принципиальная схема
(было бы что там разрабатывать!), написана управляющая программа. Я
отказался от цепочки сброса. Теперь карту сбрасывала сама ОЭВМ.
Получился такой состав схемы: сам чип АТ89С2051, пара конденсаторов на
15 пф, пара на 10 мкФ, кварцевый резонатор на 6 МГц, печатная плата,
разъемы. Вот и все, не считая блока питания. МИДИ-карта использовалась
типа РТ-202. Также были проведены испытания с картой Yamaha DB50XG.
Подключалось все это хозяйств о к стандартному параллельному
принтерному порту стандарта Centronix.
Вот и все. Hа этом моя работа была закончена и более не
возобновлялась. Мне это стало не нужно, мои попытки заинтересовать
народ в эхо-конференции сети ФИДО ZX.SPECTRUM закончились ничем. В
настоящее время у меня не осталось ничего: ни платы с
микроконтроллером, ни программы прошивки. МИДИ-карты тоже не осталось -
для музыки я использую IBM и звуковую карту Yamaha YMF-754.
Ужасно обидно что идею не поддержали. Попробую лподвести черту╗ под
тем, что я, собственно, предлагал:
1. Оснастить Спекки качественным и недорогим МИДИ-синтезатором
(карта РТ-202 или подобная сейчас стоит не более 200 руб., чип
АТ89С2051 - не более 60 руб.);
2. Получить возможность легко переносить музыкальные композиции с
компьютера на компьютер - МИДИ-файл размером в 30-40 килобайт может
содержать значительное по продолжительности музыкальное произведение
(не нужно вместе с нотами таскать и сами инструмен ты - в МИДИ-карте
они хранятся в собственном ПЗУ объемом, как правило, 512 Кб - 4 Мб);
3. Получить возможность вводить качественное музыкальное
сопровождение в играх и других программах;
4. Получить привязку к стандарту - ваше музыкальное произведение
можно записать в формате IBM на дискету и проиграть на профессиональной
аппаратуре;
5. Музыканты могут получить на базе Спекки недорогой и достаточно
мощный музыкальный синтезатор с секвенсором (секвенсор - эта такая
штука, которая может запоминать последовательность нажатия нот с
возможностью их последующего воспроизведения и редактиро вания. Пример
тому - трекеры);
6. Кстати, о трекерах - появится возможность написать новые
программы музыкальных редакторов с большими возможностями.
7. С помощью МИДИ-адаптера можно управлять не только МИДИ-картой,
но и любым музыкальным синтезатором, имеющим МИДИ-вход.
Список можно продолжить, но, как мне кажется, приведенных примеров
вполне достаточно. Думайте, решайте. Стоит ли давать вашему Спекки
"новое дыхание", повышая его звуковые возможности? Остались ли на
Спек-труме музыканты, достаточно "не упертые" в традиционный AY, чтобы
принять новшество? Давайте, пишите письма, отзывайтесь все те, кто
может РЕАЛЬHО заняться и заинтересоваться моим предложением! У меня
накоплено значительное количество информации по МИДИ, с удовольствием
поделюсь!
В общем я жду ваших откликов.
Алексей БЕЛОДВОРЦЕВ
Адрес для писем: Белодворцев Алексей Hиколаевич, 400066, г.
Волгоград-66, а/я 11.
e-mail: ra4...@avtlg.ru
От редакции: Мы бы очень хотели, чтобы читатели откликнулись на
предложение Алексея и заинтересовались этим проектом. Задавайте все
свои вопросы автору, на наиболее интересные из них, он обещал ответить
на страницах "Абзаца". Если к нам в редакцию по это му поводу поступят
какие-то письма, мы их передадим Алексею. Так же он сообщил, что если и
после этой публикации народ не проявит своей реакции и не
заинтересуется всем этим, то проект будет заброшен, и на этот раз
навсегда.
=== Конец midi_zx.txt ===
С уважением, Алексей.
PS При ответе в netmail, огромная просьба, резать письма по 11Кб. Иначе
окончание будет утерянно. :((
From Shiru Otaku → To All 24 December 2003
AT> Помнится была поднята тема сабжа. Все началось с публикации в Абзаца 18
статьи
AT> на эту тему. Hо как я понял большинство учатников разговора так эту
статью так
AT> и не прочитали.
Не был участником разговора, но скажу своё скромное мнение. Нафига оно
нужно?:) Плеер миди на спектруме сделать можно (навернув достаточно сложную
схему для подключения миди-устройства), а вот _приличный_ секвенсор - нет.
Не подходит для этого Speccy, совершенно. Банально даже разрешения экрана не
хватит... Даже в достаточно старых миди-секвенсорах на оффтопике ниже чем в
800х600 работать просто невозможно - на экране вся необходимая информация не
помещается. Её количество можно уменьшить (впихивают-же интерфейс аппаратных
секвенсоров в маленькие жк-экранчики), но удобство работы _сильно_ упадёт,
вплоть до полной бессмысленности использования этого дела. А ведь
программу-секвенсор ещё и написать надо. Кто этим станет заниматься? А ведь
есть ещё в народе такой компьютер - Atari ST, имеющий встроенный стандартный
midi-интерфейс, на нём уже существуют готовые приличные миди-секвенсоры. И
стоит он сейчас копейки. Те музыканты, которые сильно ограничены в средствах
(настолько, что 486 оффтопик купить не в силах;), давно и успешно его
используют.
Shiru Otaku^IIpr
From Alexander A. Lyadenko → To All 25 December 2003
25 дек 03 02:49, Shiru Otaku wrote to Aleksey Tarasow:
SO> сложную схему для подключения миди-устройства), а вот _приличный_
SO> секвенсор - нет. Hе подходит для этого Speccy, совершенно. Банально
SO> даже разрешения экрана не хватит... Даже в достаточно старых
SO> миди-секвенсорах на оффтопике ниже чем в 800х600 работать просто
SO> невозможно - на экране вся необходимая информация не помещается. Её
ты про Sonar или Cubase ? извини, номинально забить композицию хвататет и
Master Tracks(гммм... ну например 5) - это если не заниматся всяким там DX/VST
творчеством.
SO> количество можно уменьшить (впихивают-же интерфейс
SO> аппаратных секвенсоров в маленькие жк-экранчики), но удобство работы
SO> _сильно_ упадёт, вплоть до полной бессмысленности использования этого
SO> дела. А ведь программу-секвенсор ещё и написать надо. Кто этим станет
SO> заниматься? А ведь есть ещё в народе такой компьютер - Atari ST,
SO> имеющий встроенный стандартный midi-интерфейс, на нём уже существуют
SO> готовые приличные миди-секвенсоры. И стоит он сейчас копейки. Те
SO> музыканты, которые сильно ограничены в средствах (настолько, что 486
SO> оффтопик купить не в силах;), давно и успешно его используют.
да что ты гойворишь ... поди купи сейчас Atari ST ^_^ вот я хочу атарю. где ее
купить, желательно в Киеве и желательно с доставкой.
не болтай ерундой - 486 оффтопик у нас можно купить уже за ~20 настоящих денег
и во столько же обойдется к нему монитор.
. __ __| ___ __ __ ___ |_
|__)_ | ) (__| (__/_ | ' | ) (__/_ | , [80`s]
From Ilya Kudryavcev → To All 3 January 2004
Thursday December 25 2003 06:56, Alexander A. Lyadenko зачем-то писал(а) Shiru
Otaku:
SO>> использования этого дела. А ведь программу-секвенсор ещё и
SO>> написать надо. Кто этим станет заниматься? А ведь есть ещё в
SO>> народе такой компьютер - Atari ST, имеющий встроенный стандартный
SO>> midi-интерфейс, на нём уже существуют готовые приличные
SO>> миди-секвенсоры. И стоит он сейчас копейки. Те музыканты, которые
SO>> сильно ограничены в средствах (настолько, что 486 оффтопик купить
SO>> не в силах;), давно и успешно его используют.
AL> да что ты гойворишь ... поди купи сейчас Atari ST ^_^ вот я хочу
AL> атарю. где ее купить, желательно в Киеве и желательно с доставкой. не
AL> болтай ерундой - 486 оффтопик у нас можно купить уже за ~20 настоящих
AL> денег и во столько же обойдется к нему монитор.
имею в наличии Atari-1040ST pабочая. Ижевск...
С уважением HIMIK'S ZxZ/PoS-WT.