![]() |
о МИДИ клаве - детям
Хай!!
Всем здравия и успехов!!! Шалом! Есть идея о создании МИДИ клаве. Искал по инету прогу - но вот нигде не могу найти - простейший эмулятор клавитауры для изготовления синтезатора для детишек. Эмулятора под ДОС с возможностью назначения клавишь. Вот мои соображения на счет музыки дома и детям: Так как у нас нет денег для покупки даже самого дешевого миди-синтезатора, то я придумал как сделать самую дешевую МИДИ для детей. Не обязательно им покупать дорогую МИДИ, может она им и не понравится и будет пылиться без дела, а вот попробовать на простой - такая вот идея. Да, играть с помощью виртуальных для Виндов пианино - не возможно из-за задержек по времени. ====== Что предложили: Если карта стоит на том же компьютере, что и клавиатура, то наружу MIDI уж лучше выводить прямо через внешний MIDI-out карты, а не через LPT! Для этого их надо посылать на MPU-401 порт. На всякий случай - в win выдать что-то по MIDI - очень простая задача. Ответ: Как запасной вариант для начала - хорошо! Согласен! Но я буду привязан к эмулятору клавиатуры, я её сам не напишу. Готовая же будет для меня недоступна - чужой исходник всегда трудно понять. И при этом - у меня клава от Ямахи(?) 60 клавиш на герконах, а эмуляторы столько не имеют. Далее. Нужен винт хоть на 50 мб, флопарь, монитор, видеокарта. В моем варианте - наружу MIDI лучше выводить через LPT! Вот что есть: 1) Программируем таймер для стабильности частоты (чтобы не зависела от частоты процессора. Если программа будет стоять на компах с другой частотой от 286 до 4-го Пентиума. У меня дома Атлон 1500) – это нужно для формирования последовательности МИДИ посылок: // Override timer interrupt // ------------------------ oldhandlerTIMER = getvect(TIMER_INT_VECT); setvect(TIMER_INT_VECT,tim); outportb(0x21, inportb(0x21) & 0xfe); outportb(0x43, 0x34); // Timer is set for 0x0080 * 838.0965 ns = 107.27635 microsec (9.3217 kHz) outportb(0x40, 0x80); // least significant byte of timer count outportb(0x40, 0x00); // most significant byte of timer count // -------------------------------------------------------------------- 2) По прерыванию таймера опрашиваем коды нажатия и отпускания клавиш: Clock_counter = 0; while(key != ESC) { if(kbflag) { key = inportb(0x60); switch(key) { case A: n:=1; o:=2// Нота – октава (может сила нажатия - m) extreg(n,o); break; case S: n:=2; o:=2 extreg(n,o); break; --------------------------------------- 3) В модуле extreg(n,o); формируется временная последовательность обмена –посылки- приема через LPT в формате МИДИ. Где код МИДИ выдается с нужной частотой, в нужном формате, выходной уровень: TTL – это уже есть в LPT. Что я не знаю для того, чтобы закончить эту программу: как должен выглядеть код МИДИ, в каком формате. Описание самих кодов есть – нужен для начала хотя бы только один пример - выдачи например, ноты Ля. То есть = как должен выглядеть весь процесс выдачи этой команды, осциллограмма этой последовательности. Чем этот вариант лучше для меня. 1. Большая часть программы уже написана и работала – управление шаговыми двигателями. 2. Нет ассемблера, которого я не знаю 3. Не надо опрашивать тип карты и писать для каждой подпрограмму. Лишь бы был стандартный вход МИДИ. Например, у меня интегрированная АС97 – как ею управлять? 4. Я могу по своему усмотрению управлять МИДИ всеми 101 клавишами кейборда, и плюс использовать потом и мышь и джойстик. А это перспективы в развитии! 5. И программа получается максимально простой под голым ДОСом. 6. Из железа - 386 проц, флопарь, мультикарта, клава, мышь. Не нужен винт, монитор. ================ Я думаю - лучше пусть рядом хоть лаптоп стоит и в нем управлять всем процессом музтоворчества глухой МИДИ клавой, чем всё заталкивать в корпус клавы. Я сейчас перед выбором таких вариантов: 1) Кейборд --- обработка в программе -- выдача МИДИ команд через LPT 2) Кейборд --- обработка в программе -- управление звуковой картой по каналу DMA --- из неё выход МИДИ дальше 3) микроконтроллер --- выход МИДИ -- + в клаве кейборд для управления виртуальными синтами в компе. =========== Кто и что сможет: - дать ссылку на исходники этих эмулятров под ДОС для карты Creative SB AWE64 - подсказать как закончить мой исходник. - ваши варианты Желаю всем всего самого доброго и удачи! Искренне и с уважением, Александр. |
www.pchards.boom.ru/hard/midi/ adapters/adapters.htm
|
stasok Спасибо за ссылку! Похожет - там я смогу найти понимание и единомышленников.
А вот с программкой - может еще есть ссылки??? |
| Часовой пояс GMT +4, время: 20:24. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.