MIDI контроллер
- Сообщения: 123
- Зарегистрирован: Вс дек 13, 2009 01:04:42
вот нашол на просторах интернета интересную схему динамической миди клавиатуры http://midi.rni.ru/keyb.html это не реклама может кто в протеусе с эмулирует. 
Голосовой чат.
- Реклама
- Сообщения: 13
- Зарегистрирован: Сб апр 03, 2010 08:13:14
To All
Хочу делать по схеме Avargesa на 16меге...
http://avargesnano.narod.ru/MIDI-DJ-CJ- ... R-2.0.html
Как упростить эту схему (и код?) чтобы на 4 потенциометра было только? без кнопок, индикации и миди выхода
И возможно ли переделать это всё на контроллер по проще по типу меги8 ?
з.ы. юсб обязателен
Хочу делать по схеме Avargesa на 16меге...
http://avargesnano.narod.ru/MIDI-DJ-CJ- ... R-2.0.html
Как упростить эту схему (и код?) чтобы на 4 потенциометра было только? без кнопок, индикации и миди выхода
И возможно ли переделать это всё на контроллер по проще по типу меги8 ?
з.ы. юсб обязателен
код имхо обрезать не придётся
потенциометры ненужные выкидываеш, освободившиеся от них ноги МК вешаеш на землю
кнопки и индикацию выкидываеш, миди выкидываеш.
а на мегу8 портнётся без проблем, имхо
потенциометры ненужные выкидываеш, освободившиеся от них ноги МК вешаеш на землю
кнопки и индикацию выкидываеш, миди выкидываеш.
а на мегу8 портнётся без проблем, имхо
- Сообщения: 13
- Зарегистрирован: Сб апр 03, 2010 08:13:14
Товарищ Avarges не могли бы Вы выложить полный проект для компилятора на котором писали,а то в хексе ничего не ясно
И если есть фото внутренностей конечное то тоже было бы оч круто
Я думаю не один я скажу вам спасибо
И если есть фото внутренностей конечное то тоже было бы оч круто
Я думаю не один я скажу вам спасибо
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
Исходники у меня в некрасивом состоянии, поэтому лучше для модификаций и собственных разработок брать базовый вариант, от которого отталкивался и я это V-USB-MIDI в гугле (и здесь в теме есть).MTBiker писал(а):Товарищ Avarges не могли бы Вы выложить полный проект для компилятора на котором писали,а то в хексе ничего не ясно
И если есть фото внутренностей конечное то тоже было бы оч круто
Я думаю не один я скажу вам спасибо
- Реклама
- Сообщения: 13
- Зарегистрирован: Сб апр 03, 2010 08:13:14
Кто может подсказать по поводу ошибки :
"Устройство usb неопознано
Это устройство было остановлено, поскольку оно сообщило о возникновении неполадок. (Код 43)"

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

Вроде всё правильно ... В чём ошибка, подскажите
Avarges
Не очень понятно, эти детали необязательны? или только c3Также имеются дополнительные детали: C3 (4.7мКф*6.3В)- электролитический конденсатор, служит для стабилизации напряжения питания, C4 (0.1мКф)- керамический конденсатор, защищает микроконтроллер от высокочастотных помех по линии питания, R18 - обеспечивает помехозащищенную логическую единицу на ножке сброса микроконтроллера (если подать логический ноль, тогда микроконтроллер перезагрузится: начнёт программу с начала)
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
Вообще-то оба, электролит обычно ставят, чтобы сгладить напряжение после выпрямителя, а керамический около 100нФ чтобы зашунтировать высокочастотные помехи в цепи питания, которые чаще всего возникают из-за скачка тока при переключение выходов самой микросхемы между логическими уровнями.MTBiker писал(а): Avarges зачем два кондёра c3, c4 , который из них использовать ?
- Сообщения: 13
- Зарегистрирован: Сб апр 03, 2010 08:13:14
Avarges посмотри по внимательней они на твоей схеме стоят параллельно, только в разных частях платы
Может у тебя на сайте не доработанная схема выложена?
Кстати есть те кто собрал по Avargesовской схеме рабочий контроллер?
Может у тебя на сайте не доработанная схема выложена?
Кстати есть те кто собрал по Avargesовской схеме рабочий контроллер?
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
Всё правильно, их и ставят параллельно, при этом на плате разумнее ставить электролит ближе к источнику питания, а керамику как можно ближе к микросхеме, это всё тонкости радиотехники.
Уважаемый товарищ Avarges, а не могли бы вы рассказать как устроен обмен данных с программой на стороне контроллера? вы используете Sys Ex?
Тоже сейчас занимаюсь написанием прогррамммы под свою миди клавиатуру (в силу гибели залитой пивом аппаратной части
, да заодно и для повышения собственной квалиффикации в устройстве шины усб
)
Есть желание сделать опцию, чтоб можно было назначать из программы номера СС на VST инструменты секвенсора не выходя из последнего. Хочу реализовать два виртуальных миди кабеля. один чтоб работал с упр. программой, а другой с секвенсором.
Есть также дискрипторы для двух виртуальных усб миди на одной конечной точке для контроллера С80, но портировать на тот код что выложен на страничке V-Busа невыходит (сразу видно не русский человек писал
). Никак не могу разобраться с тамошним синтаксисом.
Вы уже модифицировали это устройство, для русского ума
и я был бы вам очень признателен, если бы вы могли пояснить как организована эта библиотека, какие её функции за что отвечают, их синтаксис и порядок вызова.
Сам пишу на дельфи и Qt для ПК, на CodeVision для AVR. Возможно я бы мог быть вам полезен в портировании вашей программы на Mac OS X.
Тоже сейчас занимаюсь написанием прогррамммы под свою миди клавиатуру (в силу гибели залитой пивом аппаратной части
Есть желание сделать опцию, чтоб можно было назначать из программы номера СС на VST инструменты секвенсора не выходя из последнего. Хочу реализовать два виртуальных миди кабеля. один чтоб работал с упр. программой, а другой с секвенсором.
Есть также дискрипторы для двух виртуальных усб миди на одной конечной точке для контроллера С80, но портировать на тот код что выложен на страничке V-Busа невыходит (сразу видно не русский человек писал
Вы уже модифицировали это устройство, для русского ума
Сам пишу на дельфи и Qt для ПК, на CodeVision для AVR. Возможно я бы мог быть вам полезен в портировании вашей программы на Mac OS X.
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
SysEx я не использовал. Я просто посылаю миди команду "Ex" в устройство, сначала посылаю заранее известный дескриптор "старт байт", потом засылаю данные и адреса, потом "стоп-байт", всё через эту обычную Ex (питч на x канале, с двумя ASC байтами данных Ex d1 d2). Не нужно начинать с чистого V-USB, лучше взять программу из V-USB-MIDI - там уже описан формат MIDI устройства.
а как насчёт дескриптора для второго виртуального кабеля?
- Сообщения: 512
- Зарегистрирован: Вт дек 22, 2009 02:24:50
В дескрипторе я практически не разбирался, вот тут оригинальная программка с дескриптором
http://cryptomys.de/horo/V-USB-MIDI/V-U ... 0.2.tar.gz
внутри кода указана ссылка на пдф файл, в котором описан по английски! формат всех этих миди-юсб дескрпторов, я этот пдф пролистывал и виртуальные миди кабели по одному юсб кабелю это делается точно, но в общем придётся подумать как применить
http://cryptomys.de/horo/V-USB-MIDI/V-U ... 0.2.tar.gz
внутри кода указана ссылка на пдф файл, в котором описан по английски! формат всех этих миди-юсб дескрпторов, я этот пдф пролистывал и виртуальные миди кабели по одному юсб кабелю это делается точно, но в общем придётся подумать как применить
говорю же, у меня есть дескрипторы, правда на с80 (там аппаратный усб есть), но это без разницы. отличаются 4 дополнительными джеками (2 на хост, 2 на контроллер) всё остальное то-же самое. мне нужна помощь чтоб прикрутить их к библиотеке V-BUS, тк разбираться в ней полностью ни времяни ни желания нет. если опять же интересно, могу скинуть на почту, я думаю ты разберёшься. или загляни в ЛС - я там всё расписал.
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
тема очень интересная. сам пользуюсь продуктом Guitar Rig но не очень уж удобно переключать эффекты и банки нажатием мышки, приходится постоянно отвлекаться от игры, оригинальный Rig Kontrol стоит порядка 10-15 килорублей, и тратиться на него как-то не очень хочется, хотя там встроенный ADC-DAC и DSP-процессор для обработки звука, хотелось бы повторить данный FootSwitch по средствам V-USB-MIDI, требуется: 10 кнопок, 8 регуляторов, регуляторы подцепить программно оказалось вполне просто, благо в теме вопросы поднимались, а вот на счет кнопок не очень понял структуру команд. проблем с программированием не испытываю, но уж больно не понятен мне процесс обмена и как возможно подцепить кнопки программно. подскажите.
Даташит - библия моя...


Если я тебя правильно понимаю, то кнопка это тот же control change (СС) что и регулятор. значения в диапозоне 0-64 -выкл; 65-127 -вкл.
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
то есть получается примерно вот такое:
Код: Выделить всё
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);
}Даташит - библия моя...


да, типа того, как один из режимов. ещё можешь посылать 127 при первом нажатии, а при повторном 0. есть ещё режим перебор, я непомню правда как там точно, вроде при нажатии посылается 127 каждый раз. вот почитай.
http://www.muzoborudovanie.ru/articles/midi/midi2.php
здесь полное описание протокола midi. рекомендую прочитать все статьи.
З.Ы. VenomXP, кстать может ты поможешь прикрутить дескриптор?
http://www.muzoborudovanie.ru/articles/midi/midi2.php
здесь полное описание протокола midi. рекомендую прочитать все статьи.
З.Ы. VenomXP, кстать может ты поможешь прикрутить дескриптор?
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
огромное спасибо за ссылку!
ну у меня код построен так, что в прерывании идет скан клавиатуры постоянно, поэтому, при нажатии каждый раз будет посылать 127, а когда не нажата постоянно 0. я думаю этого будет достаточно, чтобы хост-прога поняла команды.
всмысле дискриптор, что именно от него требуется?
ну у меня код построен так, что в прерывании идет скан клавиатуры постоянно, поэтому, при нажатии каждый раз будет посылать 127, а когда не нажата постоянно 0. я думаю этого будет достаточно, чтобы хост-прога поняла команды.
всмысле дискриптор, что именно от него требуется?
Даташит - библия моя...


Код: Выделить всё
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);
}
так же и с потенциометрами. тольк по изменению значения. иначе забьёшь шину, как следствие получишь лаги.


