Духовой контроллер (midi)

fundorin
Offline
Зарегистрирован: 16.01.2012

Всем доброго дня.

Собираюсь собрать духовой миди-контроллер, работащий по принципу аккордины и хроматической гармоники.

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

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

В это инструменте 44 клавиши. В моём будет всего 16 основных и одна для сдвигового регистра.

Четыре ряда по 4 клавиши. Каждый ряд - одна полноценная хроматическая октава. Итого, четыре октавы фортепиано.

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

Хроматическая губная гармоника (как и диатоническая, впрочем) звучит в обе стороны, и на вдох, и на выдох.

Используя этот принцип, я собираюсь увеличить количество извлекаемых нот ровно в два раза, до 32-ух.

Также, у хроматической гармоники есть сбоку кнопка слайдера, поднимающая любую звучащую ноту на полтона.

Таким образом, можно увеличить имеющееся количество нот с 32-ух до 64. Именно это количество нот позволяет извлечь хроматическая гармоника

Объясню примере одной клавиши;

Нажимаем клавишу и выдыхаем в трубку - звучит нота до.

Нажимаем клавишу, и выдыхаем в трубку с зажатой кнопкой слайдера - звучит нота до диез (на полтона выше до).

Нажимаем клавишу и вдыхаем - звучит нота ре (на тон выше до).

Нажимаем клавишу и вдыхаем с зажатой кнопкой слайдера - звучит нота ре диез (на полтора тона выше до).

 

Таким образом, одна клавиша с модификаторами даёт четыре ноты.

Одна октава (4 клавиши) выглядит следующим образом:

слайдер  до диез, фа, соль диез, до диез

выдох до, ми, соль, до

вдох ре, фа, ля, си

слайдер ре диез, фа диез, ля диез, до

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

В качестве блока клавиш будет использован блок телефонного типа 4x4 клавиши (уже приобретен). Это ноты.

В качестве кнопки слайдера либо обычная кнопка, либо просто согнутый в кольцо провод (сенсор). Ответом ему будет земля с пальца исполнителя. Это переключатель регистра.

В качестве духового контроллера - дифференциальный датчик давления, который калибруется при включении воздуха и меняет значение данных, в зависимости от того, происходит ли в нём повышение давления или разрежение. Это уровень громкости нажатой клавиши.

Так выглядят основные контролы устройства на базе платы Arduino Duemilanove.

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

C компьютером (или синтезатором) устройство будет общаться через midi-кабель. Для миниатюризации, конец кабеля, идущий к устройству, будет выполнен в виде штекера minijack.

В принципе, это вся идея. Возможно, позже, я добавлю кнопки для смены октав и тональности. По умолчанию, инструмент настроен с до мажоре. Нажимая одну кнопку, можно будет переводить его из тенора в баритон и ниже. Нажимая другую, менять тональность, скажем, на соль (распространена, наряду с до).

К уважаемому сообществу у меня есть несколько вопросов.

Во-первых, поскольку сам я чуть более, чем новичок, мне нужна будет помощь по работе с midi библиотекой и библиотекой клавишного блока. Желательно, такой же, как я, повернутый на музыке и контроллерах человек, имеющий больше опыта в подобного рода делах.

Во-вторых, я пока не нашёл дифференциальный датчик давления, способный работать от пяти вольт (usb) и стоящий адекватных (читай недорогой) денег.

Пока что это все вопросы. Остальное мне сейчас больше непонятно, чем понятно, но, хоть я умею пользоваться поиском и стараюсь искать ответы на возникающие вопросы самостоятельно, буду рад любой помощи. Желательно не здесь, а, например, в скайпе (чат). Спасибо.

leshak
Offline
Зарегистрирован: 29.09.2011

 А какой вы страна/город? Для скайпа это, конечно, не важно, но "уж больно интересно проект звучит" :)

Что "побыстрому" гугланолось:

http://cxem.net/arduino/arduino14.php - цифровой барометр. сам чип $12.5  http://www.kosmodrom.com.ua/el.php?name=BMP085  (может и дешевле найти можно).

Возможно какие-то автомобильные "датчики воздушного потока" подойдут.

Может какой-то самодельный получится соорудить. Первое что пришло в голову:

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

На светодиодах. Делаем линеку фотоприемников, освещаем их сверху светодиодом. Посредине, перпендикулярно, ставим гибкую пластину. Все это опять "в трубку". Когда "все тихо", пластина стоит вертикально. Все фотоприемники освещены. Когда начали дуть, она "отгибается" и затенят часть фотоприемников. По тому какие "затенились" и в каком количестве - определяем силу и направление.

>C компьютером (или синтезатором) устройство будет общаться через midi-кабель.

Как вариант. Но я-бы еще рассмотрел когда на компьютер шло "в своем формате", а уж на компе превращалось в midi-события.

Тогда можно и USB, и блютус, и какой-то недорогой радио-передатчик. Да и отлаживать/тестить так будет проще. Хотя, вообщем-то это не взаимоисключающие варианты. Можно начать с одного, "пройти всю цепочку", а уж потом заменять звенья более удобными в пользовании. Решение "на время разработки" и "конечное решение" не обязательно должны совпадать.

Весь проект "целиком" вам вряд-ли кто-то поможет. Слишком комплексные темы обречены либо на забвение, либо на винигрет флуда (вот даже сейчас уже "датчик" с "midi" перемешивается). В любом случае задачу нужно "дробить" и обсуждать по отдельности.Хотя ветка с общей картиной, и описанием "чего вы хотите в итоге" - тоже архиполезна.

>Желательно не здесь, а, например, в скайпе (чат)

Ну так оставте какие-нибудь свои координаты. В ардуино, немного новичок (вообщем как все), но хороший "не ардуинистый" опыт программинга есть :) Ну и на ардуино, тоже, все-таки "что-то получалось". А может еще кто-то "постучится" ;)

А вообще "все выглядит реальным", составные части (клавиатура, миди) - можно найти в сети. Самое сложное - датчик потока, но "абсолютно нереально" - тоже не выглядит.

 

 

fundorin
Offline
Зарегистрирован: 16.01.2012

Мы Москва. Не Украина. Пока что экспериментирую с обычной пьезопищалкой в пластиковой бутылке. Какие-то данные выдаёт, причём и в ту, и в другую сторону. Но не потоком, а просто цифры повышающиеся и понижающиеся, в момент подачи воздуха. Насколько я понимаю, нужно объединять ноги пьезы резистором большого номинала, чтобы "растянуть" показатели. Только не знаю, каким именно. На ютубе один человек говорит, что 10 мегаом, как я понял. Но, у него там сильные помехи от разговора, движений рук по корпусу и прочих физических помех.

Вариант с фотоприёмником интересен, но, как мне кажется, весьма сложен в изготовлении.

Моя первая задача - подключить кнопки, чтобы они выдавали миди сигнал с одинаковой громкостью. Затем, регулировка громкости при помощи обычной кнопки. Нажато - 127. Отпущена - 0. Впоследствии, заменить этот блок в коде на блок сенсора давления.

Возмущают цены. Один из подходящих датчиков стоит в Москве 1200 рублей, а в Украине 360, если перевести в рубли. Хороший навар получается. Ваш датчик по ссылке не подойдёт. Он измеряет абсолютное давление. Для проекта нужен под дифференциальное. 5 вольт. Газ или влажный газ. По опыту знаю, слюней набивается в трубку полно.

Крыльчатка, увы, не подойдёт. Видел похожий проект. Только для выдоха, возможно, сработало бы. Резко вдох-выдох-вдох такой механизм не уловит в силу инерции.

Вариант "на компьютер в своём формате" исключает возможность подключения контроллера к обычным железным синтезаторам. К тому же, я собираюсь встроить плату миди-синтезатора, для автономной игры и практики. Если всё получится, куплю Uno на замену Duemilanove и переведу в режим hid. Да и писать сразу миди-команды проще. Не какие-то абстрактные числа, а конкретные команды. Синтаксис и порядок известны. Я их уже даже почти что понял.

Морв
Offline
Зарегистрирован: 04.07.2019

Для себя нашел интересным датчик давления с трубочкой со светодиодами  и пргибающейся пластинки под  действие духового давления .

Для себя же решаю проблему такую- В музыкальных синтезаторах используются часто динамическая громкость(громкость звучания ноты зависит от скорости перемещения клавиши) в программном коде записана информация Velositi  для каждой клавиши .

Мне же нужно при переделке синтезатора в  электронный баян сделать управление громкостью на  канал (управление мехами  баяна воздействуя посредством датчика давления к примеру MPXV7002) Пытаюсь освоить Ардуино ,  и передавать данные громкости по MIDI.

Хотелось бы знать у кого есть подобные разработки

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Морв пишет:

Мне же нужно при переделке синтезатора в  электронный баян сделать управление громкостью на  канал (управление мехами  баяна воздействуя посредством датчика давления к примеру MPXV7002)

CC2 или СС11 не подойдет?

b612
Offline
Зарегистрирован: 12.03.2017

Морв пишет:
Хотелось бы знать у кого есть подобные разработки

Что-нибудь получилось ?
Меня сейчас тоже интересует как формировать поток MIDI из каких команд в каком сочетании.

Датчик легко и просто сделать из ИК-оптопары.
Можно со стальной пластинкой от одноразовой бритвы
Можно с мембраной от воздушного шарика или от латексной перчатки, натянутой на горлышко от пятилитровки.
Стоимость такого датчика 50 рублей, а ЧУВСТВИТЕЛЬНОСТЬ просто лучше не бывает.