日本語が、大好きです。(Sorry, Japanese Only.)
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<< 2017 November >>

no fun nolife
NEW ENTRIES
RECENT COMMENTS
とりあえず、配線図
    工場長(08/17)
    ここう(02/19)
    ここう(02/19)
    mohemoa(02/03)
    mohemoa(02/03)
CATEGORIES
rss
 はてなアンテナに追加
 はてなRSSに登録
 Bloglinesで閲読登録
 Subscribe with livedoor Reader
 Add to Google
 My Yahoo!に追加
LINK
ARCHIVES
music
LOGIN
現在のモード: ゲストモード
USER ID:
PASS:
logout

 Exp.3も控えているのですが、とりあえず週に一回は意地でもArduinoをやろうと決めたのでそうした。

 「アルペジエー太2号」のプログラムに入ったんだけど、作っていく課程で将来的に使えそうな機能は切り出していこうと考えた。アナログ入力/デジタル入力はすでに作っているので、今回はスケール出力を。どういう機能があればいいのかなと言えば、


   ・とりあえずクラス化
   ・スケールが切り替えできること
   ・センターノートが設定できること
   ・0~255までの値を、2オクターブ分のスケールに切り替えできること



 とまあ、これぐらいできればいいかな。後はごりごり書いていきます。アナログ入力(0~255)を、2オクターブ分のスケールに変換するところを、可能な限りIF文を使わず計算で出したくて、紙と鉛筆でいろいろ考えた。プログラミングする中で、こういう時間が一番好き。



そういえば、ArduinoのIDEを新しくしたら、同じディレクトリに*.cppと*.hを置くことでクラスを追加できるようになっていた。。。。。いや、前からそうだったのかも知れない。。。個人的には「ライブラリディレクトリに追加」よりもこっちの方がすき。

@
こんな風にファイルを置くと

@
読み込んでくれます。

特に、作ってる最中のクラスなんかは「トライ&エラー」を繰り返すからこっちの方が楽だねえ。

void setup()
{
// midi スケールの設定(Japanese Miyakobushi)
    midiScale.setScale(sc_Japan);
}

void loop()
{

    unsigned char note;

    // アナログ値取得
    val1.readAnalogData(0);

    // スケール値変換
    note = (unsigned char)midiScale.getNote(val1);
}
おおまかだけど、こんな感じで使う。

実際に出てきたのをログに出力してみて確認。
@

Japanese Miyakobushi のスケールは、『C ,Db,F ,G ,Ab,C 』。bはフラットの事でシャープに直せば『C ,C#,F ,G ,G#,C 』になるので、とりあえず合っている!!!。


#宣伝。今週末は中野でExp.3です。ニコニコ動画とかで活躍している人が集まります。おもしろいパーティーが好きな人、変わったモノが見たい人、是非遊びに来てください!!。

Recent Entries from Same Category









    
処理時間 0.40272秒