相変わらず、AliExpressで購入した300円台のMIDI再生ボード
「VS1003」で遊んでいます。
前回、Arduino nanoマイコンにVS1003ボードとMIDIキーボードを接続して
鍵盤から演奏できるようにしました。
しかし、標準の音色が貧弱。どうしようもないくらい薄い。14種類しかないし。
何とか立派な音を出せないかと、Arduinoのプログラムで以下のようなことを試しました。
発音の装飾をするような処理です。一週間ほどかかりました。
・鍵盤を一つ押したら、10の音を重ねて鳴らす。
・10の音が、鍵盤を押してからそれぞれ遅れて鳴る(ディレイ処理)
・10の音ごとに、音色と音量と音階を指定。
・VS1003のイコライザ機能(SCI_BASS)を使って、低音・高音を調整する。
[音色番号、音階、音量、遅延]×10チャンネルのパラメータを、「拡張音色セット」として記述します。
これを10セット分作りました。
遅延処理については、鍵盤オフオンの情報を1ミリ秒単位、2.5秒間、50回までバッファに記録して
各チャンネルが独立の遅れたタイミングで発音するようにプログラムしました。
ちょっと面倒でしたが、なんとか動きました。
MIDIキーボードの低ドと低レを押すと、標準音色14+今回の拡張音色セット10が連続でアップダウン、
OLEDに音色の名前を表示するように作りました。
同時発音や遅延とか、文章では分かりにくいと思いますし、
自分もこんなのを試すことは初めてなのですが。
実用性とか無視して、単音のインパクト、目立つ音だけでパラメータ調整しました。
たとえば子供とかが聞いて「ちょっと鍵盤を触ってみたい」と思うような音を目指したつもりです。
結果をまとめたのが、以下の動画です。
エコーのように残響が残るのが、遅延(ディレイ)処理です。分かりますでしょうか?
予想より、効果があったと思います。
またイコライザ(SCI_BASS)で音色の明るさや重量感に変化が出ていると思いました。
VS1003は今回でお腹いっぱい・・・ひと区切りついた気がします。
MIDIデータの入出力処理も、いくらか慣れてきました。次は何をしようかなと。
おしまい。