PWM制御で表現力アップ!MIDI自動演奏 鍵盤ハーモニカ・MIDI制御 送風ファン

MIDI自動演奏 鍵盤ハーモニカ鍵盤MIDI送風ファン
概要・仕組み解説は→コチラ
あらたな試みとして
PWM制御を取り入れた、
音量強弱・奏法の表現力アップ

PWMとは…
Pulse の Width を Modulation する。
機械とかシンセとかいろいろな事に使われている技術。

ここでは、
necobit の MIDI自動演奏 鍵盤ハーモニカと
MIDI制御送風ファンに
どうPWMを使ってどんな結果になったか
を、書きます。

MIDI送風ファンのPWM制御

左:MIDI自動演奏 鍵盤ハーモニカ 右:MIDI制御 送風ファン

この送風ファンは
ラジコン用ブラシレスモーターを使ったファンを
3Dプリンターで製作したものです。

MIDIメカニカルシステム MP-8から
ファンの回転数をコントロールすることで
鍵盤ハーモニカの音量を自在に制御できます。

上限値を変えずに音を小さくする

MIDIコントロールチェンジ CC#2
送風ファンの回転数をコントロールします。

一定の上限値で、ON-OFFを高速に切り替えます。
(ONは60ticks間隔)
OFFから次のONまでが広くなるほど
音量が小さくなります。

上限値を変えずにクレッシェンド・デクレッシェンドする

CC#2のOFFからONまでの間隔を
段階的に変えていけば
音量をだんだん大きく/小さくできます。

上記ツイート内 誤:4回 正:3回

他楽器と組み合わせて合奏する
といった場合などにも、
ニュアンスを損なわず
素早く全体音量の調整ができます。

ダイナミクスの大きな音量変化

鍵盤ハーモニカソロ楽曲や
クラシック楽曲など、
ダイナミクスを幅広く使った音量変化。

動画テスト時は、上限値100から115の範囲でしたが
最大値は127です。

CC#2=64でOFF

現状(2020年8月)この鍵盤ハーモニカの場合
CC#2=90以下の送風ファン回転数では
音を鳴らすのに適した風量にならないため、
この記事の作例動画では、下限最低値は100になっています。

逆回転で瞬時に音を止める

OFFを受信してから完全に止まるまで
惰性による回転があります。

CC#2を63以下に設定すると
送風ファンは逆回転します。

(動画の画面内、黒線のついたCC#2が逆回転の値)

正回転中に、逆回転の数値をひとつだけ入れ
ブレーキの効果で音が瞬時に止まります。

ファンが逆回転=吸う状態になっているので
鍵盤ハーモニカが打鍵されても、音は鳴りません。

逆回転とPWM制御を合わせた強弱変化

逆回転で瞬時に音量を落とし、
音が完全に消える前に
PWM制御で弱音を持続させ、クレッシェンドにつなぎます。

フォルテピアノクレッシェンドなどのような
素早い風量のコントロールも可能になりました。

ソレノイドのPWM制御で打鍵スピードを変える

このMIDI鍵盤ハーモニカは、
MIDIノートON/OFF=ソレノイドON/OFFで
打鍵用のパーツを動かしています。

MIDIノートを細切れにすると
通常は連打音になりますが、
あるところでPWM制御の効果を発揮し
打鍵の押し込みがゆっくりになります。
(テンポによって適切なデュレーション値は変わります)

ただし、ゆっくりながら底まで押し込んでしまうため
押し込みを半分で止めるなど
打鍵量までコントロールすることはできません。

また、ソレノイドやパーツの各組み付け具合によっても
反応はそれぞれ異なりますので
その場その場での調整が必要になります。

謝辞

このようにして向上した
MIDI自動演奏 鍵盤ハーモニカの表現力の結果が
冒頭の演奏動画です。
(まだまだ詰められるところはたくさんありますが)

この成果を取り入れて、
Maker Faire Tokyo 2020の展示で披露します。

送風ファン・打鍵に、PWM制御を取り入れることについては
明和電機 土佐正道会長にアドバイスをいただきました。
ありがとうございます。

備考

余談

制御基板「MIDIメカニカルシステム」について

necobit の自動演奏楽器は、
自作の製品「MIDIメカニカルシステム」シリーズで
MIDI制御しています。

→ MIDIメカニカルシステムについて詳しい解説はコチラ

ねこびっと通販スイッチサイエンスなどで発売中。

お問い合わせはコチラ

返答が必要な場合は入力したメールアドレスに間違いがないか再度ご確認ください。


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください