USB-MIDI(ソーラーLEDピックアップ)のテスト | ..あちゃ! no mic's

..あちゃ! no mic's

野良作業でウクレレサイズの楽器製作中(構造材としての剛性をテスト)

SANTA no Mix


少しずつではあるけど、前に進んでいる。
今回は、ソーラーパネルを入力装置にした。
いつものごとく、LEDライトを入射させた。
定常ノイズがあるけど、それも綺麗なノイズに置き換わった。
アイドリングストップの実験でやったように、入力がないときは入力を遮断するのがいいかもしれない。
Dfu-programmerとmocalufaがこんなに便利。
RaspberryPiとArduinoをUSBで接続するだけ。
勝手にPCが認識してくれる。


実験の内容の動画。

ArduinoにA0~A5まで6本の入力があるけど、これ全部使ってもいいかな。
一つのアンプにつき一個のアナログ入力。
計6本。
問題は、Arduinoの処理速度。
追っつくかなあ。
6個の入力を音程ごとにふるいにかけて、MIDI出力。
ダメなら、RaspberryPiに直接、処理させるしかない。

とりあえずのスケッチ。
青字のところはコメントアウト文。
なくていい。
次の実験の準備をしていて、ノイズの入力の大きさを見るために書いておいた。
赤字のところもいらないが、時間がなくて省くのを忘れていた。
ブログ上でプログラムを改変するとコンパイルでエラー吐くといけないのでそのまま載せた。
あと、変数の定義についても、省略できるところがある。
いい加減だが、動くには動いた。

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

int notenumber[8]={60, 62, 64, 65, 67, 69, 71, 72};
int i;
const int analogInPin = A0;
const int analogOutPin = 13;

int sensorValue = 0;
int outputValue = 0;


void setup(){
    MIDI.begin();
 //   Serial.begin(9600);
}

void loop() {
    sensorValue = analogRead(analogInPin);
    outputValue = map(sensorValue, 0, 1023, 0, 63);  
//    Serial.print("sensor = " );                       
//    Serial.print(sensorValue);      
//    Serial.print(" output = ");      
//    Serial.println(outputValue);   

//    for(i=0; i<8; i++){
        MIDI.sendNoteOn(outputValue, 100, 1);
        delay(50);
        MIDI.sendNoteOff(outputValue, 100, 1);
//    }
}

https://ameblo.jp/math-physics/entry-12728093312.html