MIDI контроллер

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
goodspeedmen
Встал на лапы
Сообщения: 123
Зарегистрирован: Вс дек 13, 2009 01:04:42
Контактная информация:

Re: MIDI контроллер

Сообщение goodspeedmen »

вот нашол на просторах интернета интересную схему динамической миди клавиатуры http://midi.rni.ru/keyb.html это не реклама может кто в протеусе с эмулирует. :beer:
Голосовой чат.
MTBiker
Родился
Сообщения: 13
Зарегистрирован: Сб апр 03, 2010 08:13:14

Re: MIDI контроллер

Сообщение MTBiker »

To All

Хочу делать по схеме Avargesa на 16меге...
http://avargesnano.narod.ru/MIDI-DJ-CJ- ... R-2.0.html

Как упростить эту схему (и код?) чтобы на 4 потенциометра было только? без кнопок, индикации и миди выхода

И возможно ли переделать это всё на контроллер по проще по типу меги8 ?
з.ы. юсб обязателен
spongebob
Грызет канифоль
Сообщения: 289
Зарегистрирован: Пт мар 20, 2009 12:25:47
Откуда: Ivanovo
Контактная информация:

Re: MIDI контроллер

Сообщение spongebob »

код имхо обрезать не придётся
потенциометры ненужные выкидываеш, освободившиеся от них ноги МК вешаеш на землю
кнопки и индикацию выкидываеш, миди выкидываеш.
а на мегу8 портнётся без проблем, имхо
MTBiker
Родился
Сообщения: 13
Зарегистрирован: Сб апр 03, 2010 08:13:14

Re: MIDI контроллер

Сообщение MTBiker »

Товарищ Avarges не могли бы Вы выложить полный проект для компилятора на котором писали,а то в хексе ничего не ясно
И если есть фото внутренностей конечное то тоже было бы оч круто :)
Я думаю не один я скажу вам спасибо :beer:
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: MIDI контроллер

Сообщение Avarges »

MTBiker писал(а):Товарищ Avarges не могли бы Вы выложить полный проект для компилятора на котором писали,а то в хексе ничего не ясно
И если есть фото внутренностей конечное то тоже было бы оч круто :)
Я думаю не один я скажу вам спасибо :beer:

Исходники у меня в некрасивом состоянии, поэтому лучше для модификаций и собственных разработок брать базовый вариант, от которого отталкивался и я это V-USB-MIDI в гугле (и здесь в теме есть).
MTBiker
Родился
Сообщения: 13
Зарегистрирован: Сб апр 03, 2010 08:13:14

Re: MIDI контроллер

Сообщение MTBiker »

Кто может подсказать по поводу ошибки :
"Устройство usb неопознано
Это устройство было остановлено, поскольку оно сообщило о возникновении неполадок. (Код 43)"

Изображение

Вроде всё правильно ... В чём ошибка, подскажите

Avarges
Также имеются дополнительные детали: C3 (4.7мКф*6.3В)- электролитический конденсатор, служит для стабилизации напряжения питания, C4 (0.1мКф)- керамический конденсатор, защищает микроконтроллер от высокочастотных помех по линии питания, R18 - обеспечивает помехозащищенную логическую единицу на ножке сброса микроконтроллера (если подать логический ноль, тогда микроконтроллер перезагрузится: начнёт программу с начала)

Не очень понятно, эти детали необязательны? или только c3
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: MIDI контроллер

Сообщение Avarges »

MTBiker писал(а):Avarges зачем два кондёра c3, c4 , который из них использовать ?

Вообще-то оба, электролит обычно ставят, чтобы сгладить напряжение после выпрямителя, а керамический около 100нФ чтобы зашунтировать высокочастотные помехи в цепи питания, которые чаще всего возникают из-за скачка тока при переключение выходов самой микросхемы между логическими уровнями.
MTBiker
Родился
Сообщения: 13
Зарегистрирован: Сб апр 03, 2010 08:13:14

Re: MIDI контроллер

Сообщение MTBiker »

Avarges посмотри по внимательней они на твоей схеме стоят параллельно, только в разных частях платы
Может у тебя на сайте не доработанная схема выложена?

Кстати есть те кто собрал по Avargesовской схеме рабочий контроллер?
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: MIDI контроллер

Сообщение Avarges »

Всё правильно, их и ставят параллельно, при этом на плате разумнее ставить электролит ближе к источнику питания, а керамику как можно ближе к микросхеме, это всё тонкости радиотехники.
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

Уважаемый товарищ Avarges, а не могли бы вы рассказать как устроен обмен данных с программой на стороне контроллера? вы используете Sys Ex?
Тоже сейчас занимаюсь написанием прогррамммы под свою миди клавиатуру (в силу гибели залитой пивом аппаратной части :(, да заодно и для повышения собственной квалиффикации в устройстве шины усб :) )
Есть желание сделать опцию, чтоб можно было назначать из программы номера СС на VST инструменты секвенсора не выходя из последнего. Хочу реализовать два виртуальных миди кабеля. один чтоб работал с упр. программой, а другой с секвенсором.
Есть также дискрипторы для двух виртуальных усб миди на одной конечной точке для контроллера С80, но портировать на тот код что выложен на страничке V-Busа невыходит (сразу видно не русский человек писал :) ). Никак не могу разобраться с тамошним синтаксисом.
Вы уже модифицировали это устройство, для русского ума :) и я был бы вам очень признателен, если бы вы могли пояснить как организована эта библиотека, какие её функции за что отвечают, их синтаксис и порядок вызова.
Сам пишу на дельфи и Qt для ПК, на CodeVision для AVR. Возможно я бы мог быть вам полезен в портировании вашей программы на Mac OS X. :)
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: MIDI контроллер

Сообщение Avarges »

SysEx я не использовал. Я просто посылаю миди команду "Ex" в устройство, сначала посылаю заранее известный дескриптор "старт байт", потом засылаю данные и адреса, потом "стоп-байт", всё через эту обычную Ex (питч на x канале, с двумя ASC байтами данных Ex d1 d2). Не нужно начинать с чистого V-USB, лучше взять программу из V-USB-MIDI - там уже описан формат MIDI устройства.
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

а как насчёт дескриптора для второго виртуального кабеля?
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: MIDI контроллер

Сообщение Avarges »

В дескрипторе я практически не разбирался, вот тут оригинальная программка с дескриптором
http://cryptomys.de/horo/V-USB-MIDI/V-U ... 0.2.tar.gz
внутри кода указана ссылка на пдф файл, в котором описан по английски! формат всех этих миди-юсб дескрпторов, я этот пдф пролистывал и виртуальные миди кабели по одному юсб кабелю это делается точно, но в общем придётся подумать как применить
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

говорю же, у меня есть дескрипторы, правда на с80 (там аппаратный усб есть), но это без разницы. отличаются 4 дополнительными джеками (2 на хост, 2 на контроллер) всё остальное то-же самое. мне нужна помощь чтоб прикрутить их к библиотеке V-BUS, тк разбираться в ней полностью ни времяни ни желания нет. если опять же интересно, могу скинуть на почту, я думаю ты разберёшься. или загляни в ЛС - я там всё расписал.
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Re: MIDI контроллер

Сообщение VenomXP »

тема очень интересная. сам пользуюсь продуктом Guitar Rig но не очень уж удобно переключать эффекты и банки нажатием мышки, приходится постоянно отвлекаться от игры, оригинальный Rig Kontrol стоит порядка 10-15 килорублей, и тратиться на него как-то не очень хочется, хотя там встроенный ADC-DAC и DSP-процессор для обработки звука, хотелось бы повторить данный FootSwitch по средствам V-USB-MIDI, требуется: 10 кнопок, 8 регуляторов, регуляторы подцепить программно оказалось вполне просто, благо в теме вопросы поднимались, а вот на счет кнопок не очень понял структуру команд. проблем с программированием не испытываю, но уж больно не понятен мне процесс обмена и как возможно подцепить кнопки программно. подскажите.
Даташит - библия моя...
Изображение
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

Если я тебя правильно понимаю, то кнопка это тот же control change (СС) что и регулятор. значения в диапозоне 0-64 -выкл; 65-127 -вкл.
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Re: MIDI контроллер

Сообщение VenomXP »

то есть получается примерно вот такое:

Код: Выделить всё

   
while(1)
{
   while (!usbInterruptIsReady())
   {
      usbPoll();
   }
   
   if (keyStatus == 1) //key on
   {   
      midiMsg[0] = 0x0B;
      midiMsg[1] = 0xB0;
      midiMsg[2] = номер_кнопки;
      midiMsg[3] = 127;
   }
   else            //key off
   {   
      midiMsg[0] = 0x0B;
      midiMsg[1] = 0xB0;
      midiMsg[2] = номер_кнопки;
      midiMsg[3] = 0;
   }
   
   sendEmptyFrame = 0;
   
   usbSetInterrupt(midiMsg, 4);
}
Даташит - библия моя...
Изображение
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

да, типа того, как один из режимов. ещё можешь посылать 127 при первом нажатии, а при повторном 0. есть ещё режим перебор, я непомню правда как там точно, вроде при нажатии посылается 127 каждый раз. вот почитай.

http://www.muzoborudovanie.ru/articles/midi/midi2.php

здесь полное описание протокола midi. рекомендую прочитать все статьи.

З.Ы. VenomXP, кстать может ты поможешь прикрутить дескриптор?
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Re: MIDI контроллер

Сообщение VenomXP »

огромное спасибо за ссылку!
ну у меня код построен так, что в прерывании идет скан клавиатуры постоянно, поэтому, при нажатии каждый раз будет посылать 127, а когда не нажата постоянно 0. я думаю этого будет достаточно, чтобы хост-прога поняла команды.

всмысле дискриптор, что именно от него требуется?
Даташит - библия моя...
Изображение
Аватара пользователя
EternalEngine
Грызет канифоль
Сообщения: 266
Зарегистрирован: Пн фев 02, 2009 08:19:53
Откуда: Москва
Контактная информация:

Re: MIDI контроллер

Сообщение EternalEngine »

Код: Выделить всё

unsigned char KeyEvent=0;
unsigned char PrevKeyState;

char IsKeyEvent (void);
{
  if (PrevKeyState!=KeyState)
    KeyEvent=1;
  else
    KeyEvent=0;

  PrevKeyState=KeyState;
  return (KeyEvent);
}

//в void main(void)

while(1)
{
   while (!usbInterruptIsReady())
   {
      usbPoll();
   }
   
   if (IsKeyEvent()==1)
   {
    if (PrevKeyState==1) //key on
    {   
       midiMsg[0] = 0x0B;
       midiMsg[1] = 0xB0;
       midiMsg[2] = номер_кнопки;
       midiMsg[3] = 127;
    }
    else            //key off
    {   
       midiMsg[0] = 0x0B;
       midiMsg[1] = 0xB0;
       midiMsg[2] = номер_кнопки;
       midiMsg[3] = 0;
    };
   };
   
   sendEmptyFrame = 0;
   
   usbSetInterrupt(midiMsg, 4);
}


типа вот так

так же и с потенциометрами. тольк по изменению значения. иначе забьёшь шину, как следствие получишь лаги.
Ответить

Вернуться в «Интеграция с ПК»