« ドラム・インターフェイス~その3.6 | トップページ | Trimの話のまとめと、日記 »

2010年7月20日 (火)

ドラム・インターフェイス~その4

MEDIO write:

 

 チクチクとソースコードの見直し作業の結果。

 アセンブラで書いた方が効率が良さそうな部分が少ないうえ、データテーブル(配列)の参照が結構面倒なので、Cのままです。

 

 例えばMIDIメッセージ送出用のRingBufferの読み書きのポインタは、最大値を16としてそれを判定文で初期化していたんだけど、単に0x0fとandを取って終わりにしたり、関数内外で重複していた判定部を削除したり、たぶんbuffer溢れは無いだろうと溢れ判定箇所を削ったり。(w

 

 当初160byteほど溢れてたプログラムは。

Avrgcc

 末尾アドレスが0x7f4。Tiny2313の2kByte(2048Byte)のROMの、2036Byteを使用しています。残り12Byte...(--;

 といっても、本来搭載したかった「変更パラメータのEEPROM保存」が入りませんでしたが。

 毎回起動後に設定するのは面倒です...

 

 さて動作の方です。

 起動すると。

Drumplay

 こんな感じ。ちなみに演奏状態の画面、本当だったら下の行は出ない予定でした。その非表示の判定すら削ったのでした。(w

 

 SELECTを押すとパラメータの変更モードへ。

Drumkey

 各パッドに割り振られたKeyNo.と、

Drumvelo

 Velocityが変更出来ます。パラメータは、TomのHiで-1、Loで+1に。

 システムパラメータも、

Drumchannel

 MIDIの送出Channel(0~15表示→1~16に相当)や、

Drumprog

 ProgramChangeも。

 GMやGS音源に繋いで、16でPowerキットとか24でElectronicキットとか、変更出来ます。

 

 とりあえず完成しました。が。

 この後、正式版を作ろうと考えていたのですが、制作中にいろいろわかった事もありまして...

 

 例えば、アナログ入力を使ってVelocityをダイナミックに出力しよう!という点は、このコントローラに搭載されているセンサでは難しいんじゃないか?とか。

(バス・ドラムに至っては、単なるスイッチだから不可能だし)

 といっても、プロトタイプだからと「いい加減に組んだ基板」は、ケースに収まらないという結論。

 

結論: 行き当たりばったりはダメですね。

|

« ドラム・インターフェイス~その3.6 | トップページ | Trimの話のまとめと、日記 »

パソコン・インターネット」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

趣味」カテゴリの記事

電子回路」カテゴリの記事

音楽」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/437678/35815368

この記事へのトラックバック一覧です: ドラム・インターフェイス~その4:

« ドラム・インターフェイス~その3.6 | トップページ | Trimの話のまとめと、日記 »