У новому випуску офіційного журналу Raspberry Pi, який вийшов сьогодні, ми дізнаємося, що синтезатор, втиснутий в акордеон, звучить приголомшливо.
Хоча акордеон часто вважається химерним, старомодним інструментом у багатьох частинах Європи та Північної Америки, він популярніший, ніж ви думаєте. Окрім того, що він відіграє значну роль у традиційній, фолк- та етнічній музиці, він використовується для створення джазових, поп та класичних мелодій. Він також має велике культурне значення та є чудовим символом музичного самовираження.
Сергій Антонович, безумовно, є його шанувальником і обожнює грати на баяні. Також значну частину свого вільного часу він присвячує вивченню музичної теорії та створенню цифрових музичних інструментів і аксесуарів. З цією метою він працює над тим, щоб поєднати можливості цифрового синтезатора з акустичним баяном, зберігаючи при цьому автентичне відчуття та звучання інструменту.
Для досягнення цієї мети Сергій використовує Raspberry Pi Compute Module 3+, який він хвалить за баланс продуктивності та теплової ефективності. Він також створив версію, яка використовує комп'ютер Raspberry Pi Zero 2 W, з урахуванням простоти, щоб кожен міг спробувати її та побачити, як вона працює.
Результатом є система, яка є більш гнучкою та дешевшою, ніж стандартні альтернативи MIDI-синтезаторам, але все ще здатна відтворювати чудові цифрові звуки. Більше того, Сергій розмістив всю електроніку всередині акордеона, а не виносив її зовні, що дозволило йому створити автономний музичний досвід із найкращою якістю звуку.
Мелодійний хід
Проєкт був складним. «Під час розробки цифрового музичного інструменту звуковий двигун – синтезатор – це не просто компонент. Це інструмент у вухах слухача», – пояснює Сергій, -«Незалежно від того, наскільки складною може бути клавіатура, датчики тиску чи експресивний інтерфейс, без надійного та гнучкого звукового двигуна інструмент не зможе "говорити"».
«У моїй роботі з розробки цифрових акордеонів ця проблема стала центральною», – додає він, - «Я вже розробив робочу логічну плату на основі мікроконтролера, який відповідав за сканування кнопок, виявлення тиску в міхах та генерацію MIDI-повідомлень. Але мені потрібен був автономний вбудований MIDI-синтезатор: система, яка отримує MIDI-вхід (через апаратний DIN або USB) та виводить аудіо в режимі реального часу. Найголовніше, що вона мала бути невеликою, надійною, з низькою затримкою та достатньо гнучкою, щоб підтримувати синтез хвильової таблиці зі змінними користувачем звуковими банками».
Хоча Сергій розглядав зовнішні модулі MIDI-синтезатора, такі як MIDIPLUS miniEngine Pro, Ketron SD2 або Ketron SD1000, він не хотів відокремлених кабелів, живлення та громіздкого кріплення. Він також думав про використання інтегрованих апаратних рішень, що пропонуються невеликою кількістю компаній, чиї інтегральні схеми забезпечують синтез хвильової таблиці на основі семплів у компактній формі. Але, знову ж таки, він побачив проблеми.
«Вони створюють кілька проблем для незалежних розробників», – каже він, - «Немає публічного доступу до комплектів розробки чи документації. Вони використовують власні формати банків звуків, які можна редагувати лише за допомогою внутрішніх або наданих постачальниками інструментів. Вони мають заблоковані набори функцій, а це означає, що користувацькі банки користувачів важко реалізувати без власних інструментів, ліцензій чи підтримки постачальників. А економічно ефективні мікросхеми, такі як SAM2695 або VS1053b, покладаються на компактні, узагальнені семпли, які можуть не повністю передати нюанси акустичних інструментів».
Силові сільфони
В результаті Сергій почав досліджувати повністю відкритий підхід. «Я вирішив використовувати FluidSynth, програмний синтезатор, який підтримує банки хвильових таблиць SoundFont 2, які можна налаштувати для роботи в режимі реального часу на одноплатних комп’ютерах на базі Linux», – каже він.
FluidSynth — це програмний синтезатор, який реагує на MIDI-вхід у режимі реального часу, генеруючи аудіо, і має спільну бібліотеку, яку можна використовувати в інших програмах. Він також має вбудовану оболонку командного рядка. Його запуск на Raspberry Pi Compute Module 3+ здавався найлогічнішим рішенням проблем Сергія, і це означає, що він міг скористатися перевагами чотирьох ядер ARM та 1 ГБ оперативної пам'яті, чого достатньо для завантаження більшості банків SoundFont 2.
«Використання Raspberry Pi для синтезу аудіо пропонує кілька ключових переваг», – каже він. Він має відкритий програмний стек без прив’язки до постачальника та повний контроль над налаштуванням, затримкою та ефектами. У поєднанні з FluidSynth він також забезпечує повну підтримку SoundFont 2, дозволяючи користувачам замінювати або налаштовувати свої звукові банки, що є дуже затребуваною функцією серед музикантів.
«Він також пропонує гарне співвідношення продуктивності та потужності, що є критично важливим для вбудованого використання в герметичних корпусах», – додає Сергій. «А ще тут є сильна екосистема розробників з актуальними ядрами, документацією, накладками та інструментальниками».
Обчислювальний модуль Raspberry Pi 3+ також можна інтегрувати в компактну плату. «Для створення "настільних прототипів" я використовував плату Waveshare Compute Module PoE, аудіороз'єм Waveshare WM8960 та просту схему входу DIN MIDI на оптопарі 6N139», — каже Сергій.
Звукова подорож
Щоб інструмент працював ефективно, час між натисканням клавіші та відтворенням звуку мав бути коротким. «Найважливішим показником для живого виконання є затримка від спрацьовування до звуку, і хоча апаратні синтезатори зазвичай досягають від 1,5 до 3 мілісекунд (мс), програмні рішення повинні ретельно збалансувати навантаження на процесор і буферизацію аудіо, щоб залишатися в прийнятному діапазоні – в ідеалі менше 10 мс, щоб залишатися непомітним для виконавця», – пояснює Сергій.
Використовуючи мінімальну систему Linux на базі Buildroot та ретельно налаштовані параметри аудіо, він досяг стабільної середньої затримки 3 мс (від отримання MIDI-події до генерації звуку). Враховуючи передачу MIDI близько мілісекунди, загальний час відгуку склав 4 мс. «Це цілком конкурентоспроможно зі спеціалізованими апаратними синтезаторами», – зазначає Сергій.
Система також вміє відтворювати 64 різні ноти одночасно, чого, за словами Сергія, достатньо для цифрового акордеона з багатошаровим автоакомпанементом. «Аудіовихід чистий, і під навантаженням не виникає жодних артефактів чи провалів».
Результатом є відмінна затримка, повна музична чутливість та чудова якість звуку в інструменті, який є повністю автономним і на якому можна грати без використання будь-якого зовнішнього обладнання, що забезпечує безперешкодний рух на сцені в поєднанні з базовим бездротовим аудіопередавачем.

І хоча на інструменті можна грати електронним способом, акустичні звуки все ще природно реагують на рух міхів, тоді як цифрові голоси можна налаштувати так, щоб вони ігнорували або повторювали той самий рух. «Це підтверджує життєздатність цієї конфігурації на справжньому, сценічному інструменті», – каже він.