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

 投稿者
  題名
  内容 入力補助画像・ファイル<IMG> youtubeの<IFRAME>タグが利用可能です。(詳細)
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ] [ 検索 ]


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

 投稿者:nekosan  投稿日:2015年 5月31日(日)19時11分47秒
返信・引用
  > No.746[元記事へ]

猫サックスさんへのお返事です。



> なるほど、そのようにすると良いのですね。
> とりあえずは、モジュレーションとピッチベンドの記述だけをとにかく消してゆくことで超適当に対応しておりました・・・・(汗)


単にロジックを消してしまうと、入力値が不定になって、
変な動作になってしまうかと思います。操作する代わりに
なにか適当な値(といってもなんでも良いわけではないですが)
を仮定しておけばよいかと。
(ベロシティーに100とか)


> 相も変わらず、3オクターブのものを作ろうとしてはおりますが、
> 現時点では入力を沢山作るとかはとても難しそうに思えますので、
>
> arduino x 3台でいく感じとし、
> (まだ1個しか持ってはおりませんが・・・汗。この場合ですが、
> ・6in 6outのMIDIインターフェイス、
> ・またはMIDIマージボックスを買ってMIDIケーブル3本入力させる、
> ・あるいは音源を三台接続する。同じ音源モジュール一応3台持ってます・・・)
>
> でも、本当はMIDIケーブル1本で実現したいのですけれども。


MIDI信号のミキサ(マージボックス)がすでにあるので
あれば、それを利用するのも手だと思いますが、
そのためだけに使うのもなにかもったいないような
気がしますね。

I2CやSPIなどのシリアル通信ライブラリで、複数のArduino
を繋いでしまうとかできれば手っ取り早いのですが…
(複数のキー入力担当Arduinoを、シリアル通信の子にして、
 MIDI送信を受け持つ親から子を読み出すようにして)


そういう繋ぎ方なら、単なる配線ですむので、線材の
値段(数円~数十円程度?)で済むかと。



> それでまずは、静電容量センサー式へのトライです。
>
> 先日教えて頂きました、「デジタルピン
> 1本だけで入力できるようなタッチ式のスケッチ」の件ですが、
> 現在使わせていただいておりますスケッチに何とか(無理やり・・・)導入してみましたが・・・。コンパイルは通りましたがやはり(当然!)まともには反応せず(笑)
> (以下・・・)
>
> /**************/
> /* main logic */
> /**************/
> int f=0;//フィルタ用変数
> void setup() {
>   int i;
>
>   Serial.begin(31250);      // connect to MIDI synth
>   //Serial.begin(38400);      //connect to PC
>
>   for (i=0;i<14;i++){
>     pinMode(key[i], INPUT);
>   }
>   pinMode(led, OUTPUT);
>
>
>   pinMode(9,OUTPUT);
>   digitalWrite(9, LOW);  // 放電しておく
>   //LED点灯用に13番ピンをデジタル出力
>   pinMode(13,OUTPUT);
> }
>
>
> void loop(){
>   /* input from keys and pots */
>   key_input();
>
>   /* function key */
>   funtion_key();
>
>   /* check push or release / output note on/off */
>   check_and_output();
>
>   /* store "old notes" */
>   store_old();
>
>
>   //静電容量変化量の変数を用意
>   int a=0;
>   //9番ピンをLOWで出力
>   digitalWrite(9, LOW);  // 放電 and プルアップ抵抗オフ
>   pinMode(9,INPUT);  // 入力モードに変える(充電開始)
>   //9番ピンがHIGHになるまでをカウント
>   while (digitalRead(9)!=HIGH){
>     //カウントする
>     a++;
>   }
>   delay(1);
>   //9番ピンをLOWにする
>   pinMode(9,OUTPUT);  // 出力モードに戻す
>   digitalWrite(9, LOW);  // 放電しておく
>
>   //値を滑らかにするフィルタ式
>   f+=(a-f)/2;
>   //モニタリング:フィルタ値を出力
>   Serial.print(f);
>   Serial.print(" , ");
>   Serial.println(a);
>
>   //LED点灯のプログラム
>   if(f>5){//値が5より大きい場合点灯
>     digitalWrite(13,HIGH);
>   }else{ //それ以外消灯
>     digitalWrite(13,LOW);
>   }
> }
>
> (きっとめちゃくちゃなのでしょう・・・)この状況・・・では、9番ピンに接続しておりますアルミには触れても全く音は出ず(LEDは点きます。)、そして、そのまんま、まだタクトスイッチが付いている他の入力では、(タクトスイッチを押すと)アタック音だけ音が出るといった感じで、あえなく失敗中で御座います。



入力処理の実体は、「key_input()」関数にまとめて
あるので、その中に押し込むとよいかと思います。



あと、プログラムの流れと各部分の動作は、現在の
Arduino-IDEではどうしても解りにくいところがあって、
各方面で指摘されています。

具体的には、ステップ実行などのシミュレーション環境が
Arduino-IDEには搭載されていないことです。

多分、スケッチを書いたり、修正したりしたときに、
その動作がどうなるかを想像しにくいのは、Arduino-IDE
の機能不足(シミュレータが無い)によると思います。

短いスケッチや簡単なスケッチは、さくっと書けて簡単に
実行できて、便利なのですが、少し長いスケッチ、複雑な
スケッチを書き始めると、とたんに厄介になってくるのが
Arduino-IDEの特長だと思います。

そのためにシリアルモニタがあるのですが、複雑な処理を
させたい場合は、使い勝手は良くないので…



サードパーティー製ソフトなどで、Arduinoスケッチ用の
シミュレータが公開されていたり、Eclipseのような環境
ではArduinoのプラグインが公開されてたりしています。

ステップ実行しながら変数の値がどのように変わっていく
のか目で追って眺めたり、実行の最中に変数の値を書き
換えて、その後の実行を追ったり、といったことができる
ので、ためしにシミュレータ環境をいじってみると面白い
かもしれません。

http://www.smashingrobotics.com/arduino-simulators-lineup-start-developing-without-real-board/

ここでも紹介されている、「Simulator for Arduino」

http://virtronics.com.au/Simulator-for-Arduino.html

は、オーストラリアの人が作ったArduino専用のシミュレータ
で、有料なのですが、以前お試し版をちょっと弄ってみました。

このシミュレータは、Eclipseのように(Arduinoと無関係の)
たくさんの機能が入っているわけではなく、Arduinoに特化
しているので、比較的わかりやすかったりするのですが、
対応しているライブラリが限られていたりするので、用途に
少し制限があるかと思います。(バイナリコードを元にした
シミュレーションではない)

どのようなことができるのかは、ムービーでなんとなく
お分かりいただけるかと。


http://playground.arduino.cc/Code/Eclipse

Eclipseのプラグインなんかは、生成されるバイナリコード
を元にシミュレーションしたりするので、機能的には
良い感じみたいなんですが、Eclipseに慣れてないと、
どハマリするかと思います。



> 後日、これがもしうまくいった暁には、9番ピン以外のピンにも対応するようにスケッチを書き換えるにはどうしたらよいか、という初歩的な?問題を解決したいです。それにはもう少しお利口さんにならないと・・・といった感じです。(笑)また新しいアイデア練って挑戦してみます。
>
>
> しかしながら、これまでのスケッチそのままで(最初の標準のスケッチのままで)、物理的な接続だけを(教えていただいた1Mの抵抗を挟んでのタッチ式接続)タッチ式に変えますと、アルミに指で触れたただけで、音は鳴ってくれました。
> ただ、これは例のチャタリングというのでしょうか、超高速連打で音が鳴ってくれてましたが・・・。
>


チャタリングが原因なのか、周囲のノイズが原因なのか、
フィルタリングのロジックでノイズを取りきれてないのが
原因なのか…これだけだと原因の切り分けが難しいですね。



> そして、スイッチ式もやってみました。
>
> これは こちらの
> お手製パネルスイッチを参考に縦8センチ、横5センチで、計4つのスイッチを作成してやってみました。
>
> 作ってみましたパネルスイッチは、微妙にそれぞれ感度が違っていたりして、両面テープの種類、サイズを何種類も変えては試してみたり、
> プラ板のサイズを変えてみたり、いろいろやってみましたが、やっぱりアルミなどのタッチ式のほうが作りもいいなぁ・・・という気が強くいたしました。
> 因みにこれは踏み方によってうまく音が出なかったりはありましたが一応フットペダルのようには動きました!
>


このアルミスイッチのは、いわゆる「静電容量式のタッチセンサ」
ではなく、「タクトスイッチ」のような金属接触のセンサなので、
1MΩの抵抗ではなく、1kとか、10kとか、そのくらいの小さい抵抗
じゃないと、ノイズの影響を強く受けます。

あと、接触式のセンサだと、どうしてもチャタリングが起きる
ので、フィルタ回路なり、ソフト側のフィルタリング処理なりが
必要になるかと思います。特に、タクトスイッチとかよりも
接点面積が馬鹿でかいスイッチとなるので、フィルタ処理
(ソフトまたは回路)はそれなりに大げさにやらないと
うまくチャタリングが取り除けないかと。


回路でやってしまえば、ソフト側が比較的単純化できるるかと。
「シュミットトリガ チャタリング フィルタ」などと検索
してみると、動作原理、回路構成、定数などがわかります。
(なお、ArduinoのAT-MEGA328は、デジタル入力回路が
 シュミットトリガなので、この手のフィルタ回路は
 組みやすくなっています)


逆に、そのあたりを作りこんでしまえば、ソフト側の処理は
あるていどデジタル回路に特化して考えられるので、いろいろ
楽になるかと思います。


3オクターブの鍵盤を、プラ板みたいので加工するとなると、
強度とか耐久性とか、いろいろ心配なところもありますねぇ。
あと、それだけのサイズのプラ板をどこから調達するかとか。

回路とかソフトとかよりも、その場合は構造物の作りこみの
あたりがネックになってきそうな気がします。

 
 

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

 投稿者:猫サックス  投稿日:2015年 5月31日(日)01時59分43秒
返信・引用
  nekosanさんへのお返事です。


お世話になります!
長文になりました、たいへん失礼いたします。

>
> ジョイスティックが、いわゆるアナログジョイスティック
> であれば、
> http://akizukidenshi.com/catalog/g/gP-00246/
> このような可変抵抗が2個(x軸、y軸)入っているだけ
> だろうと思います。(手を離すとセンターに戻る機構
> が付いているかも知れませんが)
>


ジョイスティックといたしましては、
http://akizukidenshi.com/catalog/g/gP-04048/
http://akizukidenshi.com/catalog/g/gM-06807/
を購入していますが実は一度も使用出来ずにおります・・・・。(汗)




> 各可変抵抗は、
> http://akizukidenshi.com/download/Supertech_vr.pdf
> こんな風に3つの端子があって、1と3を5VとGNDに繋いで、
> 2をADCの入力に繋げば、分圧された電圧がADCから入力でき、
> 回転の角度を数値化できると思います。
>



有り難う御座います。可変抵抗器は
http://akizukidenshi.com/catalog/g/gP-00246/
http://akizukidenshi.com/catalog/g/gP-07212/
を実は購入しておりますが、これもまだ一度も使ったことは御座いません・・・・(汗)



>
> ベロシティーとかを利用しないのであれば、スケッチ中の
> アナログ入力処理の部分を修正して、
>
> now_velocity = analogRead(velocity_pin) / 8;
> now_pitch_bend = analogRead(pitch_bend_pin) / 8;
> now_modulation = analogRead(modulation_pin) / 4 - 128;
> if (now_modulation < 0) {
> now_modulation = 0;
> }
>
> を
>
> now_velocity = 100;
> now_pitch_bend = 64;
> now_modulation = 0;
>
> などと固定値にしておいてもいいかもしれません。
> (アナログ入力に何も繋がなくてもok)
>
>
>
> デジタル入力端子についても、同じように、使ってない
> 端子については固定値を埋めてしまうことで楽が
> できると思います。そのあたりは、Arduinoの文法周り
> がいろいろいじれるようになったらすぐだと思います。
>
>
>
> いずれにしても、動くものがひとつできているので、
> ナニを変えたらどうなるか、といった実験がしやすい
> (うまくいかないときは一旦帰ることができる)
> と思うので、いろいろ試してみてください。
>

有り難う御座います!
なるほど、そのようにすると良いのですね。
とりあえずは、モジュレーションとピッチベンドの記述だけをとにかく消してゆくことで超適当に対応しておりました・・・・(汗)


相も変わらず、3オクターブのものを作ろうとしてはおりますが、
現時点では入力を沢山作るとかはとても難しそうに思えますので、

arduino x 3台でいく感じとし、
(まだ1個しか持ってはおりませんが・・・汗。この場合ですが、
・6in 6outのMIDIインターフェイス、
・またはMIDIマージボックスを買ってMIDIケーブル3本入力させる、
・あるいは音源を三台接続する。同じ音源モジュール一応3台持ってます・・・)

でも、本当はMIDIケーブル1本で実現したいのですけれども。

そして今回挑戦いたしましたのは

・静電容量センサー式

・スイッチ式

の二つです。


それでまずは、静電容量センサー式へのトライです。

先日教えて頂きました、「デジタルピン
1本だけで入力できるようなタッチ式のスケッチ」の件ですが、
現在使わせていただいておりますスケッチに何とか(無理やり・・・)導入してみましたが・・・。コンパイルは通りましたがやはり(当然!)まともには反応せず(笑)
(以下・・・)

/**************/
/* main logic */
/**************/
int f=0;//フィルタ用変数
void setup() {
  int i;

  Serial.begin(31250);      // connect to MIDI synth
  //Serial.begin(38400);      //connect to PC

  for (i=0;i<14;i++){
    pinMode(key[i], INPUT);
  }
  pinMode(led, OUTPUT);


  pinMode(9,OUTPUT);
  digitalWrite(9, LOW);  // 放電しておく
  //LED点灯用に13番ピンをデジタル出力
  pinMode(13,OUTPUT);
}


void loop(){
  /* input from keys and pots */
  key_input();

  /* function key */
  funtion_key();

  /* check push or release / output note on/off */
  check_and_output();

  /* store "old notes" */
  store_old();


  //静電容量変化量の変数を用意
  int a=0;
  //9番ピンをLOWで出力
  digitalWrite(9, LOW);  // 放電 and プルアップ抵抗オフ
  pinMode(9,INPUT);  // 入力モードに変える(充電開始)
  //9番ピンがHIGHになるまでをカウント
  while (digitalRead(9)!=HIGH){
    //カウントする
    a++;
  }
  delay(1);
  //9番ピンをLOWにする
  pinMode(9,OUTPUT);  // 出力モードに戻す
  digitalWrite(9, LOW);  // 放電しておく

  //値を滑らかにするフィルタ式
  f+=(a-f)/2;
  //モニタリング:フィルタ値を出力
  Serial.print(f);
  Serial.print(" , ");
  Serial.println(a);

  //LED点灯のプログラム
  if(f>5){//値が5より大きい場合点灯
    digitalWrite(13,HIGH);
  }else{ //それ以外消灯
    digitalWrite(13,LOW);
  }
}

(きっとめちゃくちゃなのでしょう・・・)この状況・・・では、9番ピンに接続しておりますアルミには触れても全く音は出ず(LEDは点きます。)、そして、そのまんま、まだタクトスイッチが付いている他の入力では、(タクトスイッチを押すと)アタック音だけ音が出るといった感じで、あえなく失敗中で御座います。

後日、これがもしうまくいった暁には、9番ピン以外のピンにも対応するようにスケッチを書き換えるにはどうしたらよいか、という初歩的な?問題を解決したいです。それにはもう少しお利口さんにならないと・・・といった感じです。(笑)また新しいアイデア練って挑戦してみます。


しかしながら、これまでのスケッチそのままで(最初の標準のスケッチのままで)、物理的な接続だけを(教えていただいた1Mの抵抗を挟んでのタッチ式接続)タッチ式に変えますと、アルミに指で触れたただけで、音は鳴ってくれました。
ただ、これは例のチャタリングというのでしょうか、超高速連打で音が鳴ってくれてましたが・・・。


そして、スイッチ式もやってみました。

これは こちらの
お手製パネルスイッチを参考に縦8センチ、横5センチで、計4つのスイッチを作成してやってみました。

作ってみましたパネルスイッチは、微妙にそれぞれ感度が違っていたりして、両面テープの種類、サイズを何種類も変えては試してみたり、
プラ板のサイズを変えてみたり、いろいろやってみましたが、やっぱりアルミなどのタッチ式のほうが作りもいいなぁ・・・という気が強くいたしました。
因みにこれは踏み方によってうまく音が出なかったりはありましたが一応フットペダルのようには動きました!


以上、現状はこんな感じで御座います。長文、たいへん失礼いたしました。

いつもお世話になり、誠に有り難う御座います!!
 

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

 投稿者:nekosan  投稿日:2015年 5月30日(土)19時46分9秒
返信・引用
  > No.744[元記事へ]

猫サックスさんへのお返事です。

> (因みに、買ってみました割と大き目のジョイスティックの取り付けが今のところよく分かってはおりませんで(汗)、可変抵抗器とジョイスティックの部分は単に10kの抵抗を挟んで繋いでいるだけの状態です。でもこれが今回の音が出るか出ないかの決め手だったようですが・・・)


ジョイスティックが、いわゆるアナログジョイスティック
であれば、
http://akizukidenshi.com/catalog/g/gP-00246/
このような可変抵抗が2個(x軸、y軸)入っているだけ
だろうと思います。(手を離すとセンターに戻る機構
が付いているかも知れませんが)


各可変抵抗は、
http://akizukidenshi.com/download/Supertech_vr.pdf
こんな風に3つの端子があって、1と3を5VとGNDに繋いで、
2をADCの入力に繋げば、分圧された電圧がADCから入力でき、
回転の角度を数値化できると思います。


ベロシティーとかを利用しないのであれば、スケッチ中の
アナログ入力処理の部分を修正して、

  now_velocity = analogRead(velocity_pin) / 8;
  now_pitch_bend = analogRead(pitch_bend_pin) / 8;
  now_modulation = analogRead(modulation_pin) / 4 - 128;
  if (now_modulation < 0) {
    now_modulation = 0;
  }



  now_velocity = 100;
  now_pitch_bend = 64;
  now_modulation = 0;

などと固定値にしておいてもいいかもしれません。
(アナログ入力に何も繋がなくてもok)



デジタル入力端子についても、同じように、使ってない
端子については固定値を埋めてしまうことで楽が
できると思います。そのあたりは、Arduinoの文法周り
がいろいろいじれるようになったらすぐだと思います。



いずれにしても、動くものがひとつできているので、
ナニを変えたらどうなるか、といった実験がしやすい
(うまくいかないときは一旦帰ることができる)
と思うので、いろいろ試してみてください。

 

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

 投稿者:猫サックス  投稿日:2015年 5月29日(金)02時21分22秒
返信・引用
  > No.743[元記事へ]

nekosanさんへのお返事です。


> そうですか。とりあえず動いたとのことで安心しました。

本当にお陰様で有り難うございます。

>
> もうひとつ気になっていたのですが、タクトスイッチなり
> をつけていない、ほかの入力端子(デジタル入力端子)に
> ついても、周囲のノイズを拾って誤動作を起こしかねないので、
> その処理もしておく必要があるかと思います。
>
> 具体的には、使っていない端子をgndに落としておくか(今回
> の回路は正論理なのでプルアップだとNG)、もしくは
> プログラム中でこれらの端子を使用しないように書き換えて
> しまうか、どちらかになると思います。
>
> 多分、デジタル入力のほうは、それほど悪さしないんでは
> ないかなぁと思うのですが、対応を打っておいたほうが、
> トラブったときに、原因の切り分けがしやすくなるかと
> 思います。
>

アドバイス有り難うございます、承知いたしました。
まだ私の知識ではスケッチの書き換えは出来ませんのでまずはGNDに落としておく方で対応してみます。

(因みに、買ってみました割と大き目のジョイスティックの取り付けが今のところよく分かってはおりませんで(汗)、可変抵抗器とジョイスティックの部分は単に10kの抵抗を挟んで繋いでいるだけの状態です。でもこれが今回の音が出るか出ないかの決め手だったようですが・・・)

スケッチについてもまだ全然分かりませんが、いろいろ本を読んだりしてプログラム、スケッチの理解をもっと深めてゆきたく思っております。

有り難うございます!
 

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

 投稿者:nekosan  投稿日:2015年 5月29日(金)01時56分56秒
返信・引用
  > No.742[元記事へ]

猫サックスさんへのお返事です。


> 今回、モジュレーション、ベンド、等に10kΩ抵抗を入れまして入力と出力とでしっかり回路を作りましたら、押すと音が鳴り、ボタンを離すと音が止まることに成功いたしました!
>
> 今まで音が鳴っておりましたのはどうも誤作動で鳴っていただけのようでして、まずは再度教えて頂きました回路に作り直しました際、
> (最初は回路図の通りにやったつもりがどうも間違えていた経緯も御座いました・・・)
> まずは、音が
> うんともすんとも言わない感じになりまして・・・
> 「あれ、また以前とは違った感じになってしまった・・・何故だろう・・」
> といった感じでした。
>
> そこで今回は、さらにアドバイスいただきましたように、アナログ入力の回路を作ってやってみましたら音がちゃんと鳴るようになりました次第です。
> 有り難う御座います。
>
>
> 他、ベロシティーやモジュレーション、ピッチベンド用のアナログ入力を、スケッチから取り除こうと(部分的に削除したり等)やってみましたが、コンパイルが通らなくなってしまう感じで、やはりちゃんと一つ一つのプログラムの意味合いを理解していなくてはいけないなぁ、と思いました・・・。
>
> これから3オクターブ分に改造したい点と、
> ピッチベンドなどの回路をなくすやり方、
> タッチ式にしてゆく・・・
> 等、前途はまだまだ多難ではありますが、本当にお陰様でとりあえずはその入り口に立つことが出来た気がいたします。
>
> お礼申し上げます!


そうですか。とりあえず動いたとのことで安心しました。


もうひとつ気になっていたのですが、タクトスイッチなり
をつけていない、ほかの入力端子(デジタル入力端子)に
ついても、周囲のノイズを拾って誤動作を起こしかねないので、
その処理もしておく必要があるかと思います。

具体的には、使っていない端子をgndに落としておくか(今回
の回路は正論理なのでプルアップだとNG)、もしくは
プログラム中でこれらの端子を使用しないように書き換えて
しまうか、どちらかになると思います。

多分、デジタル入力のほうは、それほど悪さしないんでは
ないかなぁと思うのですが、対応を打っておいたほうが、
トラブったときに、原因の切り分けがしやすくなるかと
思います。
 

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

 投稿者:猫サックス  投稿日:2015年 5月28日(木)22時22分10秒
返信・引用
  > No.741[元記事へ]

nekosanさんへのお返事です。

お世話になっております!有り難う御座います!
>
> なお、ピッチ・ベンドとかのアナログ入力は、何も接続
> しないと値がパタパタと変動して、そのつどMIDIメッセージ
> が出力されるので、データがあふれていることでおかしな
> 処理になっているのかな?と思いました。
>
> →スケッチを修正しないのであれば、可変抵抗を適当に
>  つけておくか、固定抵抗でもいいので、10kΩ抵抗とか
>  使って適当に分圧した電圧をアナログ入力に入れておいたり、
>  というあたりで、安定させることはできそうな気がする
>  のですが…
>

今回、モジュレーション、ベンド、等に10kΩ抵抗を入れまして入力と出力とでしっかり回路を作りましたら、押すと音が鳴り、ボタンを離すと音が止まることに成功いたしました!

今まで音が鳴っておりましたのはどうも誤作動で鳴っていただけのようでして、まずは再度教えて頂きました回路に作り直しました際、
(最初は回路図の通りにやったつもりがどうも間違えていた経緯も御座いました・・・)
まずは、音が
うんともすんとも言わない感じになりまして・・・
「あれ、また以前とは違った感じになってしまった・・・何故だろう・・」
といった感じでした。

そこで今回は、さらにアドバイスいただきましたように、アナログ入力の回路を作ってやってみましたら音がちゃんと鳴るようになりました次第です。
有り難う御座います。


他、ベロシティーやモジュレーション、ピッチベンド用のアナログ入力を、スケッチから取り除こうと(部分的に削除したり等)やってみましたが、コンパイルが通らなくなってしまう感じで、やはりちゃんと一つ一つのプログラムの意味合いを理解していなくてはいけないなぁ、と思いました・・・。

これから3オクターブ分に改造したい点と、
ピッチベンドなどの回路をなくすやり方、
タッチ式にしてゆく・・・
等、前途はまだまだ多難ではありますが、本当にお陰様でとりあえずはその入り口に立つことが出来た気がいたします。

お礼申し上げます!



 

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

 投稿者:nekosan  投稿日:2015年 5月28日(木)01時17分9秒
返信・引用
  > No.740[元記事へ]

猫サックスさんへのお返事です。

> 前回のご指摘いただきました通りに「入力回路の論理を逆に接続」ということでいろいろとトライさせて頂きましたが、症状はなぜか同じでした。(笑・・・)
>
> ところで実は、私の求める回路は、ノートとファンクションボタン以外は不要でして、それらの回路を実装せずに無理やりに作っているから?と思いまして、参考にさせていただいておりますこちらのプログラムの、ベロシティーやベンド、モジュレーションの部分をそぎ落とす方向でやりはじめております。(どこの部分を削除するのか、それぞれのそもそものプログラムの意味を本を片手に学んだりしています・・・)
>
> ノートボタンとファンクションボタンだけのシンプルなプログラムに改造できれば、といった感じですが、まだまだ分からないことが多く時間がかかりそうでございます。気長に頑張ってみます!



そうですか。なぜなんでしょうねぇ?


なお、ピッチ・ベンドとかのアナログ入力は、何も接続
しないと値がパタパタと変動して、そのつどMIDIメッセージ
が出力されるので、データがあふれていることでおかしな
処理になっているのかな?と思いました。

→スケッチを修正しないのであれば、可変抵抗を適当に
 つけておくか、固定抵抗でもいいので、10kΩ抵抗とか
 使って適当に分圧した電圧をアナログ入力に入れておいたり、
 というあたりで、安定させることはできそうな気がする
 のですが…
 

お世話になっております!

 投稿者:猫サックス  投稿日:2015年 5月27日(水)08時58分20秒
返信・引用
  お世話になっております!

前回のご指摘いただきました通りに「入力回路の論理を逆に接続」ということでいろいろとトライさせて頂きましたが、症状はなぜか同じでした。(笑・・・)

ところで実は、私の求める回路は、ノートとファンクションボタン以外は不要でして、それらの回路を実装せずに無理やりに作っているから?と思いまして、参考にさせていただいておりますこちらのプログラムの、ベロシティーやベンド、モジュレーションの部分をそぎ落とす方向でやりはじめております。(どこの部分を削除するのか、それぞれのそもそものプログラムの意味を本を片手に学んだりしています・・・)

ノートボタンとファンクションボタンだけのシンプルなプログラムに改造できれば、といった感じですが、まだまだ分からないことが多く時間がかかりそうでございます。気長に頑張ってみます!

ではでは!
 

Re: 度々、恐縮です御座います・・・。

 投稿者:猫サックス  投稿日:2015年 5月 2日(土)00時48分30秒
返信・引用
  > No.738[元記事へ]

nekosanさんへのお返事です。


有り難うございます!!!
無駄な時間なんて、いえいえ、とんでもないです、本当に有難うございます!

とりあえず、さっそくやってみます~♪

 

Re: 度々、恐縮です御座います・・・。

 投稿者:nekosan  投稿日:2015年 5月 1日(金)21時29分2秒
返信・引用
  > No.737[元記事へ]

猫サックスさんへのお返事です。



> その状態といたしましては、
>
> 例えば、「ド」のスイッチを押しますと、
>
> ①ほぼいつも、ドとレの音が重なって鳴る。
> まれにドだけ鳴ったり、ラとか違う音になったりもする。
>
> ②たいていは押したタイミングではなく、押してから指を離したタイミングで音が鳴る。そしてスイッチを離してもそのまま音は鳴り続ける。
>
> (因みに個人的には押したときに鳴り、離したときにノートオフにしたいと考えておりますが。)
>
> ③音が止まらず鳴り続けている状態から、もう一度スイッチを押して離した際に「まれ」に音が止まる。(基本的は音はこちらの意思で止められない。)
>
> ③勝手に様々な音が鳴って増えてゆく。音の壁が出来る感じになる。
>
> といった感じになっておりますが、ここから何か思い当たることはありませんでしょうか?



②のような事象が出ることから推測すると…
入力信号の正負の論理が逆になっているのでは?と
思って、見直してみました。

申し訳ありません。回路図の、スイッチ周りの論理が
反対になってました。
(正しくは、以下のように負論理です)


お手間、無駄な時間を強いてしまって、申し訳
ありません。サイトのほうの挿絵も後ほど差し替えて
おきます。


これで、②③は解消すると思うのですが、①は
これだけではなんとも判断できません。

②③は、note onとnote offが逆順に出力されている
ことを考えれば、このようになることが考えられる
と思うのですが、①は、こうなるかもしれないし、
ならないかも…と。

ひとまず、入力回路の論理を逆に接続してみて
いただけますでしょうか?
(もしくは、if文のほうを変更しても)
 

レンタル掲示板
/79