teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:28/789 記事一覧表示 | 《前のページ | 次のページ》

Re: お世話になっております~♪

 投稿者:猫サックス  投稿日:2015年 7月25日(土)15時42分34秒
  通報 返信・引用
  > No.769[元記事へ]

nekosanさんへのお返事です。

お世話になります!
有り難う御座います~。

> フォーマットは
> http://www1.plala.or.jp/yuuto/midi/p0301.html
>
> このあたりとかに書かれているので、
> そのまま出力すれば動くのではないかと。
>

実はこちらのご紹介ページは以前から存じてはおりますが、
これを利用したつもりで試みましても残念ながらうまくいっておりません。
。プログラムチェンジ送信だけなら全く問題はないのですが。



たとえば
MSB  0  63
LSB  32  1
Prog  109

を1チャンネルで送りたい設定だとします。
それで

B0H 00H 3FH B0H 20H 00H (←バンクセレクトで書き換えたつもり)


ということで、とりあえずバンクセレクトだけ付け加えてやってみますと、

///////////////////////////////////

void funtion_key(){
int i;

if (now_notes[13] == LOW) { // funcyion
program_change(0,B0H 00H 3FH,B0H 20H 00H,109); // Spitz Bottle
}
}

というのと、

void program_change(int channel,int MSB,int LSB,int program){
Serial.write(0xc0 + channel);
Serial.write(MSB);
Serial.write(LSB);
Serial.write(program);
}


///////////////////////////////////

と書いてみて まぁ↑これだと、コンパイルが通りませんし、

MSB  0  63
LSB  32  1

の63と1だけ採用して(一個ずつしか数字を入れられない?ため・・)


void funtion_key(){
int i;

if (now_notes[13] == LOW) { // funcyion
program_change(0,63,1,109); // Spitz Bottle
}
}

とかでも、または、

void funtion_key(){
int i;

if (now_notes[13] == LOW) { // funcyion
program_change(0,0 63,32 1,109); // Spitz Bottle
}
}


当然(汗)これもだめでして。完全に迷宮入りですw




例えば、nekosanさんはこう書かれてます。
void program_change(int channel,int program){
  Serial.write(0xc0 + channel);
  Serial.write(program);
}

と、

void funtion_key(){
  int i;

  if (now_notes[13] == LOW) {  // funcyion
    program_change(0 ,65);  // Soprano Sax
  }
}


なにはともあれ、この2箇所にどうにかしてバンクセレクトを加えるという方向性でとりあえずは間違ってはいないでしょうか???

 
 
》記事一覧表示

新着順:28/789 《前のページ | 次のページ》
/789