Чудех се дали да пускам тема за това, защото няма много акустични пианисти във форума, но пък знам ли - може на някого да му е интересно. Реших да си направя MIDI контролер, ползвайки истинска механика от роял. Някой ще попита защо - нали има толкова много MIDI контролери на пазара, кой от кой по-хубав. Ами точно там е работата, че истинската механика на един роял е нещо, което е толкова специфично, че усещането няма как да се пресъздаде в класическите хамър механики на дигиталните пиана. Мога да се впусна в детайлни обяснения за всяка една конкретна особеност на механиката на един роял, която я отличава от стандартните механики на едно дигитално пиано, но ме съмнява някой да се интересува в детайли. Пианистите ще ме разберат Факт е, че Ямаха правят едни пиана, на които им казват "хибридни" - механика от роял, оптични безконтактни сензори, цифров звук. Най-евтиното такова е около 13000лв. Каваи също направиха подобен модел, който гони 20000лв. Та едно на ръка, че това са много пари, после вградените звуци на Ямаха и Каваи не ми харесват и със сигурност ще го ползвам с любимия ми софтуер Garritan CFX, така че ми трябва само MIDI контролер. И така, реших да се захвана с изработката на мой собствен такъв, DIY, дето се вика Намерих патентите на Ямаха и Каваи, за да видят как го правят. И двата ползват двойка лазерни оптични сензори, покрай които преминават пластинки със специален профил, които са закачени на стеблата на чукчетата. Мислих, умувах, прерових спецификациите на всички оптични сензори на пазара, но както и да го гледаме, щеше да е сложна работа да пресъздам същото, все пак аз съм хобист, хората си имат фабрики, където могат да правят такива специални профили. Открих едно видео, в което някакъв маниак беше ползвал оптичен сензор за близост Vishay CNY70, за да подобри прецизността на някаква евтина МИДИ клавиатура, като беше разположил сензорите под клавишите. Не беше дал повече детайли за схемата си. Но това ми беше достатъчно, защото ми даде доста идеи Реших да използвам CNY70, като задължително условие е да измервам скоростта на чукчетата, а не на клавишите, защото цялата механична система на един роял е такава, че на чукчето можеш да предадеш импулс дори без да натиснеш клавиша докрай, така че единственият начин да се гони реализъм е да се измерва терминалнат скорост на чукчето при удара в струната. Между другото този ефект е една от причините да не харесвам дигиталните пиана и техните механики, където липсва възможността да се свири по този начин, който се нарича leggiero и се ползва доста от Шопен насам и в романтичната музика изобщо - позволява свирене на тихи бързи пасажи, чрез леко "погалване" на клавиша, което е достатъчно да запрати чукчето и да генерира звук, като пръстът не губи време да натиска до долу клавиша, което е ограничение на дигиталните пиана. Както и да е... Направих един Proof of Concept с този сензор, като го вързах към една USB програмируема платка Teensy 3.5 - много подобно на Arduino, но с доста по-бърз процесор, както и с вградени възможности да праща MIDI:
Удрям сензора с визитна картичка и той реагира на скоростта на удара. По същество принципът на CNY70 е да ползва светодиод и фототранзистор. Светодиодът излъчва светлина, която се отразява от предмет, който е наблизо, а фототранзисторът променя тока колектор-емитер в зависимост от близостта. На практика това е аналогов сензор, който може да произвежда различно напрежение в зависимост от близостта на даден предмет. Идеята е да измервам времето на преминаване на обекта между две дефинирани точки на различно разстояние и от това време мога да получа скорост. Тъй като преобразуване на аналогов сигнал в цифрова информация е сравнително бавен процес, а на мен ще ми трябва в цикъл да обхождам много сензори, имам нужда този сигнал да е цифров, т.е. всеки сензор да има два цифрови изхода, които подават висок сигнал, когато няма предмет в близост до съответното разстояние и подават нисък сигнал, когато предметът е по-близо от тях. От един друг пич в нета видях, че подобно решение може да се направи, като се ползва компаратор. С потенциометри задавам две различни напрежения на компаратора, които се сравняват с изхода от емитера на транзистора и така сътоветно на изходите на компаратора ще имам сътоветните два цифрови сигнала. Голямото предимство е, че компараторите имат изключително ниско време на реакция. След като ди доказах, че тая стратегия би сработила, потърсих механика от роял на старо. Помогна ми един прекрасен човек - акордьор, техник на пиана, композитор, музикант - Димитър Величков-Шмидт. Благодарение на него се сдобих с една доста стара, но запазена цяла механика от роял: screencast В един роял чукчетата удрят струните, като разстоянието между точката на ескейпмънт (когато чукчето се освобождава от клавиша и продължава по инерция) и струната е около 1мм. Тъй като тук имаме само механика, без корпус и струни, трябваше да измисля начин да спирам чукчетата. Първоначално възнамерявах да имам релса точно на чукчетата, но за съжаление при роялите струните са на две нива - басовите са над останалите струни под диагонал - за да могат да се съберат. При това положение нямаше как да мина с една релса, а място на класвиатурата за монтиране на каквито и да е скоби почти няма След много умуване в крайна сметка реших да спирам чукчетата с релса над стеблата, близо до чукчетата. След пазаруване в Бриколаж и малко Направи си Сам, монтирах релсата на шпилки от двете страни и със залепено кече под нея, а сензорът от първия експеримент го разположих точно над основата на чукчето, в близост до централната му ос, където има широка и плоска дървена част:
Получи се доста дoбре, скоростта се измерва с голяма прецизност и изключително бързо. Предстои ми скалирането на този експеримент до поставяне на втора релса със сензори, както и използването на octal-bus трансийвъри, с които да чета селективно сензорите на групи от по 15 (пет чукчета с по три точки на сработване на чукче: едно за key on/off и други две след ескейпмънта, между които се измерва скоростта). To be continued (ако има интерес)