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

Идея изготовить духовой контроллер родилась из любопытства и желания проверить движок синтезатора с использованием дополнительного контроллера. Родные ямаховские контроллеры BC1 и BC2 уже сняты с производства, ВС3 стоит около $150 (в 2004 г., а в 2012 г. уже не производится).

Внимание! Для изготовления устройства необходимы навыки радиомонтажных работ. Применение не рекомендованных производителем аксессуаров автоматически лишает Вас гарантии на синтезатор/тонгенератор. Вы можете следовать данным на этой странице рекомендациям только на собственный страх и риск. Автор снимает с себя любую ответственность за возможную порчу синтезатора и прочего оборудования и ущерб любого рода, связанный с описанными здесь действиями.

Работа над ошибками. Много лет эта схема существовала с неправильно указанным типом проводимости транзистора, конечно же, тут нужен NPN, как справедливо заметил Александр. Схему поправил, приношу извинения тем, кто потратил лишнее время на исправление этой ошибки.

Анализ небогатых источников из Интернета и учебников показал, что существует как минимум три способа снятия информации о дыхании. Во-первых, способ классический — мост со слабо подогреваемой лампочкой без колбы, меняющей сопротивление при охлаждении — чувствительный, но весьма габаритный и прожорливый до электричества. Второй способ — хитрая механическая система из перекрываемой флажком на мембране оптопары — (описан здесь http://home.earthlink.net/~ijfritz/st_cir2.htm) дешево и сердито, но надо аккуратно изготовить этот самый узел. Поэтому был выбран третий способ, где в качестве датчика дыхания используется интегральный датчик давления (http://www.ucapps.de/midibox_ext.html). Примененый в там датчик от SenSys в отечестве найти не удалось, да и цена порядка 40 евро показалась не привлекательной.

Итак, выбор пал на сравнительно доступный датчик фирмы Motorola (Freescale) MPXM2010GS. К слову, его низкая цена (ок. 320-350 руб.) обусловлена миниатюрным исполнением корпуса, в отличие от более дорогих моделей, имеющих уши для крепления и довольно мощные порты для подключения трубок. В прочем, его маленькие размеры скорее на пользу. В основе данного датчика давления — мост, одна из четырех граней которого выполнена в виде полупроводниковой мембраны, меняющей сопротивление при деформации.

Параметры датчика приведены в справочном листке. При изменении давления от 0 до 10 кПа (макс. давление, не приводящее к разрушению — 75 кПа) напряжение на выходе изменяется от 0 до 25 мВ. Напряжение возбуждения датчика — 10 — 16 В. В общем, задача сводится к усилению дифференциального напряжения от датчика до нужного значения. С этим прекрасно справляется схема, описанная Патриком Геллем в книге «Как превратить ПК в измерительный комплекс». Эта схема и была, с небольшими модификациями, положена в основу духового контроллера.

В целом все было понятно, кроме того, каким собственно образом синтезатор воспринимает сигнал с контроллера. Имелся разъем на синте, подключение к которому кабеля с оголенными проводами приводило к тому, что при зажатии проводков между пальцами, синт откликался небольшой добавкой модуляции к звуку. Измерение напряжений на контактах разъема мультиметром дало интересные результаты — «земля» общая для всей схемы в разъем не попадает. Напряжение между «земляным» и концевым контактами и оказалось 17В, причем «земляной» имел более положительный потенциал. На нем, относительно общего провода цифровых цепей синтезатора, оказалось +5В, а на концевом -12В. Центральный контакт был заподозрен информационным, поскольку изменение сопротивления между ним и концевым давало слышимый эффект. Чтобы разрешить сомнения, было решено вскрыть чрево синтезатора. В эксперименте участвовал YS200, выпуска 1988 г. Однако, похоже, что эти значения напряжений такие же и для новых моделей. Более того, можно предположить, что BC1, BC2, BC3, с точки зрения синта, идентичны (при наибольшем удобстве последнего с точки зрения исполнителя, исходя из описаний). Оказалось, что «земляной» контакт разъема, через дроссели и токоограничивающие резисторы подключается к шине +5В, концевой — к -12В, а центральный, пройдя защитную обвязку, упирается в некую серьезного вида микросхему.

Собранная схема заработала, но действовала на синт противоположным образом — чем сильнее дуешь, тем меньше модуляция. Потребовалось ввести в схему инвертор на транзисторе. Путем переборов резисторов, удалось найти комбинацию, которая обеспечивала более или менее правильный отклик синта на сигнал. (После подключения схемы, из-за токоограничивающих резисторов в цепях питания разъема, напряжение на ней становится около 12В. При помощи миди-монитора выяснилось, что сигнал имеет полезный диапазон от 12 до 5В (относительно концевого контакта). При этом синт передает значения контроллера от 00 до 7F.)

Вообще приведенную схему следует рассматривать скорее как рекомендации, поскольку схема спроектирована «дурно», т.е. весьма чувствительна к номиналам элементов. Возможно, стоит еще поэкспериментировать. Тем не менее, предложенный вариант собран и вполне интересен в деле. Впрочем, пока сравнить с фабричным BC не удалось.

По схеме. Первый каскад преобразует дифференциальное напряжение с моста датчика и усиливает его, второй каскад регулирует размах напряжения с помощью потенциометра GAIN, регулятор OFFSET дает постоянное смещение на выходе в отсутствие давления. В окончательный вариант схемы не попала цепь регулировки смещения нуля датчика (BIAS, показана серым), которое может достигать +/-1 мВ (5%). Возможно, она могла бы пригодиться при некоторых значениях усиления и смещения, однако увеличение степеней свободы в регулировке не способствует ее быстрой настройке. Детали: сдвоенный усилитель типа LM358 (один из самых дешевых), транзистор КТ315 (без комментариев :), резисторы — попроще, шнур — от мышки и т.д. Самое дорогое — собственно датчик давления.

Механика — по подобию BC — ободок от наушников, небольшая коробочка, трубка. Самая «творческая» часть — mouthpiece. Т-образный, из корпусов от ручек, и прочих подручных средств. Свободный конец нужно сделать регулируемым для изменения манеры игры — открытый, по типу флейты, закрытый — аккордеон и всевозможные применения модуляции.

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

Пример работы

Пример амплитудной и фильтровой модуляции с помощью BC (MP3 / «саксофоноподобный» тембр, FM-синтезатор YS200)

Запись опубликована в рубрике DIY с метками , , . Добавьте в закладки постоянную ссылку.

9 комментариев на «Духовой контроллер (Breath controller)»

  1. nikola говорит:

    Чувак, это круто!

  2. Felipe Martins говорит:

    Hi!

    I´m from Brazil and found you post very userful. I would like to know if you did go ahead with this and try on a Yamaha or Kurzweil keyboard that has breath controller input?

    You schematic is very clear and I´m want to use it since in Brazil is impossible to find a BC(1, 2 or 3).

    Sorry for write in english — this is the best I can do to try to communicate (I think it´s much better than portuguese).

    Again — very good post!

    Best Regards,

    Felipe Martins

    • sigma говорит:

      Hello, Felipe, thanks for your reply!

      I tried the BC with my old Yamaha YS200 synth. It was long time ago (more a decade ago). BC-port is quite rare thing on modern synths but I believe the design could be adapted for use with foot controller port without big efforts. Another possibility is to add an Arduino-board (or another MCU) to generate MIDI messages for BC CC and route them to virtually any synth.

      Best regards,
      Artyom

      • Felipe Martins говорит:

        Hi! Sorry for didn’t reply before! I will be more connected on this post. I already bought all components except by transistor KT361 that doesn’t exist in Brazil / tried China also… I’ll use BC307 and see what happens.

        My Kurzweil PC3K7 and CME UF7 have BC input, so I believe it’s going to work.

        About arduino, you are totally right, based on the results I could implement it thru MIDI to any keyboard and extend possibilities. I’m even think in a Melodica simple MIDI interface (like a midi controller but simplified).

        Again thank you for sharing this project since Yamaha discontinued it.

        Abraço (regards from Brazil)

        • sigma говорит:

          Hello, Felipe!

          KT361 — is one of the most popular soviet/russian PNP transistor (so letters «KT» are from cyrillic script). But here it is used just like low freq invertor, so virtually any PNP transistor will be adequate replacement.

          Also I believe it is possible to exclude the transistor at all if make proper modifications around the OpAmps, but at the moment I’m not perfectly sure how to do it.

          Please feel free to ask any questions. I’ll try to help if I don’t forgot what to do there ))

          About Arduino etc: Have you seen already audio codec VLSI VS1053 on Adafruit’s breakout board ( https://www.adafruit.com/product/1381 )? It is includes stand-alone GM-level MIDI synthesizer. So it is possible to make Melodica with direct audio output or with built-in speaker.

          Best regards,
          Artyom

        • sigma говорит:

          Hello, Felipe!
          If you still have interest in the device, I have to apologize about a mistake I made a long ago with the type of the transistor. Here should be an NPN, not a PNP.

  3. Александр говорит:

    При таком включении КТ361 не откроется, как и любой PNP. Скорее всего, использовался КТ315 (или другой NPN).

    • sigma говорит:

      С одной стороны — трудно не согласиться, с другой — на эту штуку было в свое время потрачено немало времени и нейромедиаторов, чтобы пропустить такую ошибку. При удобном случае, раскопаю его, посмотрю, что по факту и как работает.

    • sigma говорит:

      Да, Вы правы, открыл коробочку, там стоит КТ315. Спасибо за внимательность! Жаль уже и не вспомнить, как такая «опечатка» могла проникнуть…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *