Если вам кажется, что вы уже видели все безумные проекты с ретро-компьютерами, то вы сильно ошибаетесь

Если вы думаете, что видели все безумные проекты ретро-компьютеров, вы сильно ошибаетесь. Мы не знаем, как человеку могла прийти в голову идея скрестить компьютер Commodore и аккордеон, но.... Это не только произошло, но и принесло плоды. Познакомьтесь с Commodordion!

Commodordion - это 8-битный аккордеон, состоящий из двух компьютеров Commodore 64, дискет и клейкой ленты, который был задуман и собран Линусом Окессоном. Смотрите и читайте далее, как построено это чудо.

О проекте

Я возился с этим зверем около трех с половиной лет. В процессе я разработал побочные проекты Sixtyforgan (Commodore 64 (sixty-four) + орган) и Qwertuoso (QWERTY + virtuoso), который был моей первой попыткой продемонстрировать раскладку клавиатуры аккордеона. На самом деле, когда я выпустил видео Sixtyforgan в 2021 году, у меня уже была ранняя версия Commodordion, но она имела непрезентабельный вид. На задней стороне не было акриловой крышки, и "кишки" продолжали выпадать. Также в то время я еще не запрограммировал ритм-бокс для левой стороны.

Когда дизайн Commodordion наконец-то устроил меня, возникла новая проблема: как научиться на нем играть. Когда вы не видите, что делают ваши руки, это ужасно раздражает. Зеркала могут немного помочь, но в конечном итоге вы должны полагаться на свою интуицию и мышечную память. Маленькая красная наклейка на правой клавише 'U' помогает ориентироваться, когда нужно перейти из одной области клавиатуры в другую.

Ритм-бокс

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

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

Инструмент имеет "живой" режим (как обычный аккордеон) и режим программирования. Для переключения между ними используется Shift lock, механический переключатель на C64.

«Лайв» режим

В режиме "live" роль аккордов играют три ряда букв. Компоновка вдохновлена басовой системой Stradelli, используемой во многих аккордеонах. Нижний ряд, от Z до стрелки вправо, содержит все мажорные аккорды, расположенные по кругу пятых. Таким образом, от любого I (тонического) аккорда мы найдем IV и V аккорды по обе стороны от него. Второй ряд, от ля до ре, содержит минорные аккорды, а третий ряд - диезные аккорды. Например, клавиши Z, A и Q представляют мажорный лад C ♯, минорный лад C ♯ и диезный лад C ♯ соответственно.

Когда вы нажимаете и удерживаете клавишу аккорда и не воспроизводится "петля", программа просто воспроизводит аккорд в виде арпеджио и басовой ноты.

Функциональные кнопки F1, F3, F5, F7 воспроизводят одну из четырех петель, хранящихся в памяти. Когда воспроизводится петля, нажатие клавиши аккорда настроит петлю на нужный аккорд. Цифровые клавиши 4-9 задают темп. Пробел останавливает воспроизведение.

Режим программирования

В режиме программирования большинство клавиш воспроизводят звуки (сэмплы или ноты), которые могут быть вставлены в текущую "петлю". Рядом с правой клавишей Shift находятся образцы ударных инструментов. Пять букв в нижнем ряду (Z-B) обозначают басовые ноты (1-я, 3-я, 5-я, 7-я и 8-я ноты). Девять букв во втором ряду (A - L) играют текущий аккорд как арпеджио или отдельные ноты.

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

При воспроизведении цикла начинается запись звуков. Четыре функциональные кнопки запускают воспроизведение, а вместе с ним и запись заданного паттерна. Пробел останавливает воспроизведение. Clr/Home очищает текущий шаблон.

Петля" разделена на 16 ритм-битов, и записанные звуки квантуются до ближайшего ритм-бита в последовательности. При воспроизведении 'Loop' в режиме Program метроном слышен всегда.

Как это работает

Если вы знакомы с Commodore 64, вы, несомненно, зададитесь вопросом, откуда берется питание. Сбоку есть гнездо для блока питания, но, как видно на видео, к нему ничего не подключено. Я смог использовать этот разъем, но другой C64 установлен вверх ногами, поэтому при игре сидя кабель питания упирался мне прямо в ногу. Чтобы избежать этого и избавиться от сетевого шума, я решил припаять внутренний блок питания непосредственно к материнской плате.

Я также вывел аудиовыход из материнской платы, чтобы избежать еще одного громоздкого разъема. Провода проходят через отверстие и выходят с другой стороны. Затем все монтируется под акриловую доску.  Под ним находятся три печатные платы. Маленький является концентратором питания и отвечает за распределение входящего питания 5 В и 12 В между другими частями системы. Также имеется главный выключатель для зарядки C64. Для включения требуется секунда. Вы не видите этого, потому что монитор не подключен, но поверьте мне, машина работает так же, как и в 1982 году.

Далее следует загрузка программного обеспечения. Мы загружаем его с кассеты. Программное обеспечение хранится на печатной плате, которая эмулирует ленточный накопитель данных. Для загрузки программного обеспечения между двумя C64 используется эмулятор с одним набором данных. Клавиша быстрого доступа для запуска программы - Run Stop. Когда вы нажмете кнопку воспроизведения на правой стороне Commodore, запустится программа, и вы сможете начать играть на этой стороне инструмента. Чтобы играть на левой стороне, выполните ту же процедуру на левой стороне.

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

Меха

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

Горячие провода и турбины

Один из вариантов, который я создал, был вдохновлен системами впрыска топлива, используемыми в автомобильных двигателях. Вы прикрепляете датчик температуры к нагревательному элементу (резистору, предназначенному для рассеивания энергии). Затем вы создаете контур обратной связи для поддержания постоянной температуры. Если воздух неподвижен, большая часть тепла остается вблизи нагревательного элемента. Но если воздух движется, то для его нагрева требуется больше энергии. Каждый, кто живет в холодном и ветреном месте, знает об этом. Измерив, сколько электроэнергии потребляет система, можно рассчитать расход воздуха.

Звучит запутанно, но я решил, что поскольку автомобильные двигатели основаны на этой технологии, она, вероятно, будет работать. И мне удалось построить рабочий прототип. К сожалению, он недостаточно быстро реагировал на изменения воздушного потока. Мой прототип работал при температуре около 50°C. Я подозреваю, что реакция была бы быстрее, если бы я повысил рабочую температуру, но я боялся обжечься или даже поджечься.

Поэтому я начал искать альтернативу. В фильме о возобновляемых источниках энергии я увидел мужчину, который что-то объяснял, стоя рядом с ветряной турбиной. Ему пришлось кричать, чтобы заглушить шум. Часть шума исходила от машин, но основной шум был от ветра, бьющего в микрофон. Тогда я понял: вот оно! Я собираюсь измерить поток воздуха!

Повторитель огибающей

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

Я рассчитываю это число как скользящее среднее, что имеет побочный эффект низкочастотной фильтрации сигнала. Затем я применяю дополнительный шаг фильтрации для дальнейшего сглаживания кривой. Здесь приходится идти на компромисс: отклик должен быть достаточно быстрым для музыкальных фраз, но достаточно медленным, чтобы не содержать никаких слышимых частот. Если фильтрация слишком слабая, вы услышите, как некоторые шумы микрофона просачиваются в звук. Как видно на видео, изменения громкости немного отстают от движения меха, что является результатом фильтрации. Тем не менее, отклик достаточно быстрый, чтобы не повлиять на качество музыки. Однако алгоритм может быть усовершенствован.

Уровень шума не изменяется линейно с понижением давления, поэтому я применил кривую гамма-коррекции перед отправкой выходного сигнала на готовый ЦАП с умножением.

Этот конкретный ЦАП, по сути, представляет собой очень длинную лестницу резисторов, делящую аналоговое входное напряжение на 4096 равных частей. 12-разрядное число используется для выбора одного из промежуточных напряжений и его вывода.

Микширование

Сигналы с аудиовыходов двух C64 смешиваются в равных пропорциях, и этот объединенный сигнал становится аналоговым входом для ЦАП. Я предпочитаю, чтобы мелодическая сторона была громче, чем аккомпанирующая. Этот баланс управляется из прикладного программного обеспечения путем установки ведущей громкости каждого чипа SID.

Когда вы держите меха неподвижно, громкость не падает до нуля. Эту функцию легко реализовать в микроконтроллере или даже в плате гамма-коррекции. Но я отложил вопрос смешивания на потом. Пригодились стереокабели: я подаю входной сигнал ЦАПа (смешанный звук с обоих C64, не затрагивая мехнизмы) на левый канал, а его выходной сигнал - на правый. То есть, правый канал падает до нуля, когда мех останавливается, но левый канал остается постоянным. Во время игры я слушаю оба канала на мониторной колонке, но они записаны отдельно, так что я могу настроить микс по своему вкусу позже.

Записанный звук также подвергается небольшому эквалайзеру, компрессии и стерео реверберации.

Эргономика

У коммодордиона есть один огромный недостаток: он создает большую нагрузку на левое запястье, руку и плечо. Большинство клавиш на левой стороне труднодоступны, поэтому запястье оказывается полностью согнутым, и в то же время рука должна выдерживать большой вес при работе с мехами. Как музыкант, я серьезно отношусь к эргономике, поэтому, к сожалению, я не буду играть на этом инструменте очень часто, и уж точно не буду тратить часы на тренировки, чтобы улучшить технику левой руки. Это значительно снижает потенциал коммодордиона как жизнеспособного музыкального инструмента.

Но давайте закончим на более приятной ноте! Вам не придется беспокоиться о своей правой руке: она находится в здоровом, расслабленном положении. Я обязательно учту все недостатки в своих будущих проектах музыкальных инструментов на базе C64.

Больше интересных статей здесь: Дом-2.

Источник статьи: Если вам кажется, что вы уже видели все безумные проекты с ретро-компьютерами, то вы сильно ошибаетесь.