Прочтите это перед тем, как написать своё сообщение в какую-либо тему!!!

Уважаемые форумчане!

Мы стараемся сделать форум не только содержательным, но и удобным для поиска информации.
Давайте вместе будем содержать его в информационной чистоте и порядке!
Это не сложно, необходимо придерживаться лишь нескольких простых правил...

1. Перед тем, как что-то писать на форуме, сформулируйте свои мысли - посмотрите на заголовок темы, которую вы открыли, и если при этом ваши умозаключения не совпадают с названием темы - поищите наиболее подходящую тему или раздел.

2. Старайтесь группировать свои мысли в одно сообщение, не надо писать по одной фразе по принципу "лучше сорок раз по разу, чем один раз сорок раз". При этом, если у вас много мыслей или вопросов разного характера, не задавайте их в одной теме. Поищите для каждой отдельной мысли необходимую тему и напишите там. При этом НЕ ДУБЛИРУЙТЕ одно и тоже сообщение в разных темах!

3. Предварительно пролистайте форум хотя бы "О г л а в л е н и е", поищите там подходящие темы в разделах, и когда вы точно поймете, что подходящей темы или раздела на форуме нет, не бойтесь создать новую! При этом название темы должно бы лаконичным и отражать суть возникшего вопроса. При написании сообщений используйте пунктуацию, если с этим проблема - хотя бы разделяйте фразы абзацами. Пишите так, чтобы было понятно другим...

4. Если вы хотите выразить благодарность человеку, написав при этом что-то вроде "Спасибо тебе Вася за совет... сейчас буду изучать!", и не сообщая какой-либо полезной для других участников информации, воспользуйтесь кнопкой "СПАСИБО" внизу сообщения человека, который вам помог. Таким же образом вы можете выразить свою симпатию какому либо сообщению...

5. Итак, запоминаем некоторые важные моменты:

  • – свои контактные данные и немного об себе - пишите в теме по контактам в "курилке";
  • покупка-продажа частного характера и обсуждение интернет-торговли в своем разделе;
  • – модели ваших синтезаторов и оборудования, их достоинства и недостатки обсуждаются в разделе "А какой синтезатор у вас...";
  • – ваше творчество, cover-версии и авторские произведения - в разделе "творчество";
  • для стилей есть свой отдельный раздел:
  • Спрашиваем или выкладываем стили - в темах по стилям (для разных синтезаторов есть свои темы). При этом первая часть (Part 1) темы по стилям для синтезаторов Yamaha уже содержит в себе богатый архив стилей и ссылок, откуда вы запросто можете пополнить свою коллекцию, спрашиваем интересующее вас во второй части темы (Part 2).

    Для вопросов по созданию и редактированию стилей также существуют отдельные темы;
  • – аналогично МИДИ-файлы и их коллекции - в теме по миди;
  • пакеты расширений, тембра, мультипэды, ОТС, совместная работа синтезатора и компьютера, поиск нот, азы музыкальной грамоты и проч... - для этого всего также имеются свои разделы и соответствующие темы;
  • файлы небольшого объема (до 200 кб) со стилями и миди, полезные информационные картинки, а так же небольшие архивы, вы можете смело прикреплять к сообщениям (имя файла должно быть набрано латиницей)...;
  • – более весящие файлы (более 200 кб) mp3, wav, архивы, коллекции, картинки не несущие полезной информации и уже имеющиеся в интернете, аудио-видео..., размещаем на сторонних хранилищах (яндеск-диск, ютуб, savepic.su), а здесь даем на них ссылки;
  • – подписывайте свои ссылки в сообщении, указав что вы там разместили;
  • При этом вы должны понимать следующее - УДАЛИВ из своего хранилища ФАЙЛ - его ССЫЛКА становится БЕСПОЛЕЗНОЙ и скорее всего, ваше сообщение будет полностью нами тоже удалено со страниц форума! Ни в коем случае не стоит поступать подобным образом!!! Старайтесь сохранять материалы, ссылки на которые вы публикуете на форуме;
  • – свои аватарки перед загрузкой предварительно делайте небольшими по размеру;
  • избегайте "оверквотинга" (избыточного цитирования) - не надо городить трехэтажные цитаты, со полными сообщениями и вложениями. Также не надо цитировать, если ваш ответ следует прямо за вопросом. Научитесь редактировать чужие цитаты, оставляя только краткую суть цитаты. Используйте цитирование только для связки сообщений, которые разорваны логически;
  • – если вы хотите уточнить-спросить-предложить что-либо "не для всех", а кому-то лично, не стоит писать об этом в общей теме, вроде "обращайся ко мне" и давать свои контакты. Там где больше двух - говорят вслух. Или делитесь со всеми этой информацией или пишите в личные сообщения (ЛС) "тет-а-тет";
  • – также, если ваши мысли ушли далеко от тематики форума и вы хотите ими поделиться - "перекурите" в "курилке" :-) хоть Минздрав и предупреждает - наша "курилка" вашему здоровью не повредит! У нас также есть группа "вконтакте", интерактивный чат на чатоводе и скайп-группа - там у нас бывает многолюдно! :-)

6. Не ленитесь поискать нужную вам информацию. Все зависит от вашего желания и стремления. Если у вас нет оных, вам уже никто не поможет! Перед тем как задать вопрос по работе вашего инструмента, изучите "Руководство пользователя" хотя бы первых три-пять страниц - это будет огромным прорывом к познанию неизведанного! :-) Используйте встроенный поиск на сайте!

7. Не ругайтесь между собой и нецензурно, не выясняйте на страницах форума отношений - в крайнем случае используйте для этого личные сообщения, да и... Лучше вообще не ругайтесь - мы не для этого здесь собрались. Да и нервные клетки не восстанавливаются! :-)
Высказывайте свое мнение в вежливой форме! Не нужно "с пеной у рта" доказывать свою правоту, пытаясь унизить несогласного с вами оппонента, тем более, что все мы, по своей человеческой природе, склонны к заблуждениям.
Администратор и Модератор - полноправные участники форума, и также могут иметь свою точку зрения на обсуждаемые на форуме темы!

8. Ознакомиться с некоторыми нюансами по работе с сайтом, внести какие-то предложения, пожелания, замечания, а так же, если вы вдруг обнаружили неточности или ошибки - пишите в "Раздел предложений" в соответствующие темы. Мы стараемся для вас и сделаем всё, что в наших силах. Так же, если есть необходимость что-то подправить в ваших сообщениях - обращайтесь к Администратору или Модератору. Злостные нарушители этих несложных "Правил" будут ограничены в действиях на форуме и сайте.

Уважайте себя и других, цените свое и чужое время,
оставайтесь логичными и человечными в своих поступках и действиях.

Будьте доброжелательны и вам ответят тем же!

Скрыть подробную информацию...
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

Почта сайта

Вы не авторизованы.

Обсуждаем разные модели инструментов, их недостатки и достоинства, особенности работы с ними.

ТЕМА: Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 06 нояб 2020 13:48 #1

Начал изучать программирование ардуино, хочу сделать электро баян! половина программы уже готово, работает нужное количество нот для правой руки баяна, но пока не могу найти способ разделить на 3 канала передачу миди нот для каждой партии, бас, аккорд левой руки, и соответственно правая рука. если данная тема может появиться на вашем сайте сделайте её, чтобы желающие могли делиться опытом по этой части! надеюсь, что это будит интересно не только мне!!!

Здравствуйте, уважаемые форумчане.

Может кто-нибудь изучал этот вопрос?
Есть ли у кого опыт подобных изысканий?
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 06 нояб 2020 13:58 #2

  • alka
  • alka аватар
  • Online
  • Живу я здесь
  • Сообщений: 727
  • Спасибо получено: 1206
как вариант сканиривание клавиш. На пример 1- 39-ая клавиша - правая рука - 1- миди канал, 49-69- бас -2-ой канал 70-100 аккорды - 3-ий канал.
Yamaha PSR-S970 YAMAHA PSR-SX900
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 09 нояб 2020 23:08 #3

  • travkinmuzik
  • travkinmuzik аватар
  • Offline
  • Захожу иногда
  • Сообщений: 49
  • Спасибо получено: 82
Всем Здравия!!!
Спасибо, что создали эту тему!!!
сканировать клавиши это не вариант,
тут может быть клавиш сколько угодно, всё зависит от количества выводов на контроллере.
с начала я баловался с Arduino nana, но всего 19 выводов, а это только 80 нот меня не устроило.
теперь работаю с arduino due, выводов более чем достаточно.
для начала сделал только 3 ряда правой руки 63 ноты, 3 ряда по 21 нота,
и при добавлении количества выходных линий, с которыми будут замыкаться входные, а их 21, можно создать
полноценный баян на 5 рядов для левой руки, и 3 для правой, и для функциональных кнопок ещё останется!!!
теперь вопрос к тем, кто соображает в программировании на c++, как прописать в своём готовом коде массив,
который бы позволял при нажатии одной кнопки посылать не одну ноту, на вход синтезатора, а 4?
и как прописать правильно строки кода так, чтобы был дополнительный массив, где было бы можно для каждой кнопки
назначать необходимый канал, так же как я в массиве нот назначаю нужную на каждую клавишу ноту?
читал сегодня на одном из форумов, что массивы с несколькими элементами нужно заключить в двойные кавычки,
но этот вариант мне такие ноты выдал, что лучше бы я и не пробовал так печатать код!!!
если кому-то будет что ответить вот код который надо доработать, буду благодарен любым предложениям.
попробовать закачав код с вашим вариантом мне не сложно, просто у меня более нет вариантов поддающихся логике,
которые я мог бы предложить своему контроллеру, а печатать что попала, так можно долго ни приходить ни к какому
решению!!! и так вот код во всей его красе!!!

#include <Keypad.h>
uint32_t val = 0;
const byte ROWS = 3;
const byte COLS = 21;
#define C0s 1
#define D0 2
#define D0s 3
#define E0 4
#define F0 5
#define F0s 6
#define G0 7
#define G0s 8
#define A0 9
#define A0s 10
#define B0 11

#define C1 12
#define C1s 13
#define D1 14
#define D1s 15
#define E1 16
#define F1 17
#define F1s 18
#define G1 19
#define G1s 20
#define A1 21
#define A1s 22
#define B1 23

#define C2 24
#define C2s 25
#define D2 26
#define D2s 27
#define E2 28
#define F2 29
#define F2s 30
#define G2 31
#define G2s 32
#define A2 33
#define A2s 34
#define B2 35

#define C3 36
#define C3s 37
#define D3 38
#define D3s 39
#define E3 40
#define F3 41
#define F3s 42
#define G3 43
#define G3s 44
#define A3 45
#define A3s 46
#define B3 47

#define C4 48
#define C4s 49
#define D4 50
#define D4s 51
#define E4 52
#define F4 53
#define F4s 54
#define G4 55
#define G4s 56
#define A4 57
#define A4s 58
#define B4 59

#define C5 60
#define C5s 61
#define D5 62
#define D5s 63
#define E5 64
#define F5 65
#define F5s 66
#define G5 67
#define G5s 68
#define A5 69
#define A5s 70
#define B5 71

#define C6 72
#define C6s 73
#define D6 74
#define D6s 75
#define E6 76
#define F6 77
#define F6s 78
#define G6 79
#define G6s 80
#define A6 81
#define A6s 82
#define B6 83

#define C7 84
#define C7s 85
#define D7 86
#define D7s 87
#define E7 88
#define F7 89
#define F7s 90
#define G7 91
#define G7s 92
#define A7 93
#define A7s 94
#define B7 95

#define C8 96
#define C8s 97
#define D8 98
#define D8s 99
#define E8 100
#define F8 101
#define F8s 102
#define G8 103
#define G8s 104
#define A8 105
#define A8s 106
#define B8 107

#define C9 108
#define C9s 109
#define D9 110
#define D9s 111
#define E9 112
#define F9 113
#define F9s 114
#define G9 115
#define G9s 116
#define A9 117
#define A9s 118
#define B9 119

#define NNN 0xFF // Отсутствие ноты
char keys[ROWS][COLS] = {
{C3 ,D3s,F3s,A3 ,C4 ,D4s,F4s,A4 ,C5 ,D5s,F5s,A5 ,C6 ,D6s,F6s,A6 ,C7 ,D7s,F7s,A7 ,C8 },
{C3s,E3 ,G3 ,A3s,C4s,E4 ,G4 ,A4s,C5s,E5 ,G5 ,A5s,C6s,E6 ,G6 ,A6s,C7s,E7 ,G7 ,A7s,C8s},
{D3 ,F3 ,G3s,B3 ,D4 ,F4 ,G4s,B4 ,D5 ,F5 ,G5s,B5 ,D6 ,F6 ,G6s,B6 ,D7 ,F7 ,G7s,B7 ,D8 },
};
byte rowPins[ROWS] = {2, 3, 4};
byte colPins[COLS] = {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50};
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

unsigned long loopCount;
unsigned long startTime;

int lstval = 0;
void setup() {
Serial.begin(31250);
loopCount = 0;
}


void loop() {
if (kpd.getKeys())
{
for (int i=0; i<LIST_MAX; i++)
{
if ( kpd.key.stateChanged )
{
switch (kpd.key.kstate) {
case PRESSED:
kpress(kpd.key.kchar);
break;
case HOLD:
break;
case RELEASED:
kreleased(kpd.key.kchar);
break;
case IDLE:
break;
}
}
}
}
}
void noteOn(int cmd, unsigned long pitch, int velocity) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}

void kpress(char k) {
noteOn(0x90, (k), 0x7F); //Char кнопки в номер клавиши
}
void kreleased(char k) {
noteOn(0x90, (k), 0x00); //Char кнопки в номер клавиши
}
void alloff() {
for (int i=0; i <= 131; i++){
noteOn(0x90, i, 0x00);
}
}
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 10 нояб 2020 09:25 #4

  • AleksanderG
  • AleksanderG аватар
  • Offline
  • Завсегдатай
  • Сообщений: 261
  • Спасибо получено: 291
Код можно было выложить в архиве сжатом не сорить ветку. Для баяна нужно еще добавить духовой контроллер типа экспрессия мехами. Без него баяна не будет.
Ионика Юность Критику приветствую. Жесткую тем более.
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 10 нояб 2020 09:49 #5

  • alka
  • alka аватар
  • Online
  • Живу я здесь
  • Сообщений: 727
  • Спасибо получено: 1206
travkinmuzik пишет:
....
сканировать клавиши это не вариант,.....

void loop() {
if (kpd.getKeys())
{
for (int i=0; i<LIST_MAX; i++)
{
if ( kpd.key.stateChanged )
{
switch (kpd.key.kstate) {
case PRESSED:
kpress(kpd.key.kchar);
break;
case HOLD:
break;
case RELEASED:
kreleased(kpd.key.kchar);
break;
case IDLE:
break;
}


А по вашему в фигурных скобках что такое?
Yamaha PSR-S970 YAMAHA PSR-SX900
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 10 нояб 2020 11:32 #6

  • travkinmuzik
  • travkinmuzik аватар
  • Offline
  • Захожу иногда
  • Сообщений: 49
  • Спасибо получено: 82
AleksanderG Пишет:
Код можно было выложить в архиве сжатом не сорить ветку

Конечно можно! только это сделано для того, чтобы у людей, которые захотят помочь решить задачу, была возможность написать где и как мне дополнить код, если такие вообще найдутся!!!
как alka
Берёт кусочек кода, и задаёт вопрос!!!

Для баяна нужно еще добавить духовой контроллер типа экспрессия мехами. Без него баяна не будет.

А мне не надо такого баяна, где мехом надо дёргать, я желаю тонкую клавиатуру, и пусть это будит как по вашему Ионика Юность, хотя миди клавиатура и Ионика, разные вещи!

alka пишет:

А по вашему в фигурных скобках что такое?

Знаю, что это такое, но вы же предлагали сканировать частями, типа:

На пример 1- 39-ая клавиша - правая рука - 1- миди канал, 49-69- бас -2-ой канал 70-100 аккорды - 3-ий канал.

а мне надо, чтобы был массив для определения, к какому каналу будит относиться каждая кнопка!!!
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 10 нояб 2020 17:24 #7

  • AleksanderG
  • AleksanderG аватар
  • Offline
  • Завсегдатай
  • Сообщений: 261
  • Спасибо получено: 291
Толку не будет. Ни один совет не принимает.
Ионика Юность Критику приветствую. Жесткую тем более.
Администратор запретил публиковать записи гостям.

Как сделать миди клавиатуру своими руками из баяна, аккордеона и т.п. 10 нояб 2020 21:51 #8

  • Masik
  • Masik аватар
  • Offline
  • Живу я здесь
  • Сообщений: 829
  • Спасибо получено: 1034
Не совсем в тему, но смотрите это, там и ссылки есть :)

Администратор запретил публиковать записи гостям.
Время создания страницы: 0.117 секунд
Яндекс.Метрика