Jump to content
Българският форум за музиканти

CyberGene

MIDI контролер от механика на роял

Recommended Posts

Чудех се дали да пускам тема за това, защото няма много акустични пианисти във форума, но пък знам ли - може на някого да му е интересно.

Реших да си направя MIDI контролер, ползвайки истинска механика от роял. Някой ще попита защо - нали има толкова много MIDI контролери на пазара, кой от кой по-хубав. Ами точно там е работата, че истинската механика на един роял е нещо, което е толкова специфично, че усещането няма как да се пресъздаде в класическите хамър механики на дигиталните пиана. Мога да се впусна в детайлни обяснения за всяка една конкретна особеност на механиката на един роял, която я отличава от стандартните механики на едно дигитално пиано, но ме съмнява някой да се интересува в детайли. Пианистите ще ме разберат ;)

Факт е, че Ямаха правят едни пиана, на които им казват "хибридни" - механика от роял, оптични безконтактни сензори, цифров звук. Най-евтиното такова е около 13000лв. Каваи също направиха подобен модел, който гони 20000лв.

Та едно на ръка, че това са много пари, после вградените звуци на Ямаха и Каваи не ми харесват и със сигурност ще го ползвам с любимия ми софтуер Garritan CFX, така че ми трябва само MIDI контролер.

И така, реших да се захвана с изработката на мой собствен такъв, DIY, дето се вика :)

Намерих патентите на Ямаха и Каваи, за да видят как го правят. И двата ползват двойка лазерни оптични сензори, покрай които преминават пластинки със специален профил, които са закачени на стеблата на чукчетата. Мислих, умувах, прерових спецификациите на всички оптични сензори на пазара, но както и да го гледаме, щеше да е сложна работа да пресъздам същото, все пак аз съм хобист, хората си имат фабрики, където могат да правят такива специални профили. Открих едно видео, в което някакъв маниак беше ползвал оптичен сензор за близост Vishay CNY70, за да подобри прецизността на някаква евтина МИДИ клавиатура, като беше разположил сензорите под клавишите. Не беше дал повече детайли за схемата си. Но това ми беше достатъчно, защото ми даде доста идеи :)

Реших да използвам CNY70, като задължително условие е да измервам скоростта на чукчетата, а не на клавишите, защото цялата механична система на един роял е такава, че на чукчето можеш да предадеш импулс дори без да натиснеш клавиша докрай, така че единственият начин да се гони реализъм е да се измерва терминалнат скорост на чукчето при удара в струната. Между другото този ефект е една от причините да не харесвам дигиталните пиана и техните механики, където липсва възможността да се свири по този начин, който се нарича leggiero и се ползва доста от Шопен насам и в романтичната музика изобщо - позволява свирене на тихи бързи пасажи, чрез леко "погалване" на клавиша, което е достатъчно да запрати чукчето и да генерира звук, като пръстът не губи време да натиска до долу клавиша, което е ограничение на дигиталните пиана. Както и да е...

Направих един Proof of Concept с този сензор, като го вързах към една USB програмируема платка Teensy 3.5 - много подобно на Arduino, но с доста по-бърз процесор, както и с вградени възможности да праща MIDI:



Удрям сензора с визитна картичка и той реагира на скоростта на удара. По същество принципът на CNY70 е да ползва светодиод и фототранзистор. Светодиодът излъчва светлина, която се отразява от предмет, който е наблизо, а фототранзисторът променя тока колектор-емитер в зависимост от близостта. На практика това е аналогов сензор, който може да произвежда различно напрежение в зависимост от близостта на даден предмет. Идеята е да измервам времето на преминаване на обекта между две дефинирани точки на различно разстояние и от това време мога да получа скорост. Тъй като преобразуване на аналогов сигнал в цифрова информация е сравнително бавен процес, а на мен ще ми трябва в цикъл да обхождам много сензори, имам нужда този сигнал да е цифров, т.е. всеки сензор да има два цифрови изхода, които подават висок сигнал, когато няма предмет в близост до съответното разстояние и подават нисък сигнал, когато предметът е по-близо от тях. От един друг пич в нета видях, че подобно решение може да се направи, като се ползва компаратор. С потенциометри задавам две различни напрежения на компаратора, които се сравняват с изхода от емитера на транзистора и така сътоветно на изходите на компаратора ще имам сътоветните два цифрови сигнала. Голямото предимство е, че компараторите имат изключително ниско време на реакция.

След като ди доказах, че тая стратегия би сработила, потърсих механика от роял на старо. Помогна ми един прекрасен човек - акордьор, техник на пиана, композитор, музикант - Димитър Величков-Шмидт. Благодарение на него се сдобих с една доста стара, но запазена цяла механика от роял:
JO_MDBz_LSRm_Bz_Uu8ix_EDyg.jpgscreencast

В един роял чукчетата удрят струните, като разстоянието между точката на ескейпмънт (когато чукчето се освобождава от клавиша и продължава по инерция) и струната е около 1мм. Тъй като тук имаме само механика, без корпус и струни, трябваше да измисля начин да спирам чукчетата. Първоначално възнамерявах да имам релса точно на чукчетата, но за съжаление при роялите струните са на две нива - басовите са над останалите струни под диагонал - за да могат да се съберат. При това положение нямаше как да мина с една релса, а място на класвиатурата за монтиране на каквито и да е скоби почти няма :( След много умуване в крайна сметка реших да спирам чукчетата с релса над стеблата, близо до чукчетата. След пазаруване в Бриколаж и малко Направи си Сам, монтирах релсата на шпилки от двете страни и със залепено кече под нея, а сензорът от първия експеримент го разположих точно над основата на чукчето, в близост до централната му ос, където има широка и плоска дървена част:


Получи се доста дoбре, скоростта се измерва с голяма прецизност и изключително бързо.

Предстои ми скалирането на този експеримент до поставяне на втора релса със сензори, както и използването на octal-bus трансийвъри, с които да чета селективно сензорите на групи от по 15 (пет чукчета с по три точки на сработване на чукче: едно за key on/off и други две след ескейпмънта, между които се измерва скоростта).

To be continued (ако има интерес) :)
  • Like 11

Share this post


Link to post
Share on other sites

Евала! Успех с проекта. Очаквам подробности.

Share this post


Link to post
Share on other sites

Давай давай, дебнем те :)

Share this post


Link to post
Share on other sites

:blink:  :blink:  :blink:

 

БАМУМАМАТА

 

Мигам на парцали :D

 

Е това, като се получи, ще дадеш едно кръгче!

 

Следя, успех!

 

:music:

Share this post


Link to post
Share on other sites

Супер и от мен. Следим с интерес

Share this post


Link to post
Share on other sites

Маниак! :)

Share this post


Link to post
Share on other sites

Поздравления! И от мен един сърдечен абонамент. :)

 

Sent from my Redmi 4A using Tapatalk

Share this post


Link to post
Share on other sites

Малко прогрес:

 

  • Like 6

Share this post


Link to post
Share on other sites

То направо си е станало работещо решение :)  - май остава да мислиш вече вариант за цялата клавиатура ? 

  • Like 1

Share this post


Link to post
Share on other sites

Wow !!! Сериозна работа ! Само като гледам за една октава колко техника си навързал... за цялото пиано да не се окаже с цена като за ново пиано? :)

Share this post


Link to post
Share on other sites

Навързал съм, щото още меря и обмислям. Иначе общо цена за всички елементи едва ли е ще е повече от 200-300лв за цялото завършено пианоdefault_smile.png

  • Like 6

Share this post


Link to post
Share on other sites

Евгени, ако имах шапка, в тоз момент считай че съм я свалил...

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.