2007年05月14日
MIDI -> CV/GATEコンバータ(3) @ 電子工作
MIDI -> CV/GATEコンバータにピッチベンドを仮実装しました。ピッチベンドのLSBを無視して、MSBだけを現在は使っているので、大雑把な形になってます。(^_^;) 最終的にはLSBも使って、更にMIDIでベンド幅の設定をできるようにする予定です。ただ、LSBを使うといっても今のDACだと14bitのピッチベンド情報を全て生かせないので、12bit 2ch出力ではなく、1chをベンドに割り当てた方がよいかなと思ったりもしてます。この場合、MIDIでベンド幅の設定が出来なくなってしまうので、ちょっと不便かなと思ったり・・・。
それから、レガートっぽく弾いた場合の対策も修正しました。SH-101の場合、少しタイミングをずらして鍵盤二つを同時に押し、あとに押した方を離すと最初に押した鍵盤が発音するのですが、これと似たようなことを以前は自作コンバータでやっていました。しかし、これだと鍵盤三つ以上の場合に具合悪いので、バッファーを増やしました。両手の指全部よりも多いバッファーにしたので、演奏上はこれで問題ないはず。ただ、鍵盤を離して他の音が鳴る場合のポルタメントの扱いに悩み中です。オフベロシティに対応した鍵盤を持ってないので、オフベロシティに依るコントロールをするか否か迷い中です。この他にもポルタメントその物の扱いも迷い中です。考えられる設定を全て入れて、ユーザーが設定できるようにしてしまう方法も有りかなと思ったり・・・。
今のところの仕様としてはベロシティで時間当たりの変化量が決まります。つまり、音程が離れると同じベロシティでも時間が長くなることになります。その他にも、変化の仕方をテンポに同期させられるようにしようかなと思っています。テンポに同期すれば、ポルタメントを絡めたシーケンサーのデータ作りが楽になると思います。ベロシティで時間当たりの変化量を決定し、その基準時間をテンポに依存させる予定です。MIDIクロックだと粗いので、少々心配なのですが、滑らかにする方法も一応考えているので、何とかなるでしょう。
それにしても、開発環境のバグなのか、癖なのか分かりませんが、配列の扱いに悩まされました。当初、a[64]みたいな形で領域確保していたのですが、他の変数の領域に浸食しているのか、挙動不審になり、それが配列の確保した領域が大きすぎだった事になかなか気付きませんでした。結局a[50]までが限界と分かり、解決したのですが、この中途半端な数値は理解できません。
この妙な仕様に気付くまで試行錯誤してしまったので、ソースが可成り汚れてしまいました。何処かで綺麗に書き直さないといけないですね。徐々に複雑になってきているので、このままだと整理が出来なくなってしまいます。(^_^;)
関連日記
- 2007年03月22日 アナログシンセを作っちゃえ!! (7012)@ 電子工作
- 2007年05月01日 MIDI -> CV/GATEコンバータ (6579)@ 電子工作
- 2007年04月17日 PICにPS/2キーボード (6222)@ 電子工作
- 2007年04月08日 アルミケースの穴開け(2) (5267)@ 電子工作
- 2007年03月14日 KORG DDM-110 (3885)@ 音楽
- 2006年11月27日 求む!!昔のドラムマシン/シーケンサー (3606)@ 音楽
- 2007年05月11日 パーツ補充 (3503)@ 電子工作
- 2007年01月29日 某MIDI-CV/GATEコンバータ (3273)@ 電子工作
- 2007年05月03日 MIDI -> CV/GATEコンバータ(2) (3125)@ 電子工作
- 2007年03月30日 TEISCO S-60F (3087)@ 音楽
- 2007年03月12日 久々にオークション (2801)@ 音楽
- 2007年05月16日 u-Japanフェスタ (2687)@ 広島
- 2007年03月22日 YAMAHA CSかKORG MS (2524)@ 音楽
- 2006年10月23日 最近のErasureはソフトシンセなのか? (2472)@ 音楽
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。