大変だあ!(弦二つ使って)ギターシンセ | ..あちゃ! no mic's

..あちゃ! no mic's

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

SANTA no Mix

しょぼい動画ばかり載せてたことを後悔している。
ギターシンセで載せたら、数は多くないけど、イギリスやアメリカからアクセスがあった。
イギリスったら聖地って感じなこと。
実際、ギターシンセで.ukってよく目にしたし。
みんなスゲエ、イカした動画ばかりじゃないの?
ちょいと、恥ずかしくなった。

ここは踏まえるべきことをきちんと踏まえて、恥ずかしくないものを仕上げる。 YouTubeも動画の編集して10分くらいのもの用意しておこうと思った。


弦を2本使って、音を出すことまで出来た。
和音はまだ。
一気に6弦全部調整してみたいけどケーブルがない。

Arduinoの方も、踏まえることきちんと。
ロボギターの方も、Arduino1台でいっぱいいっぱいだった操作を、デュアル接続にしたり、小型化したり、液晶つけてきちんとしたい。
どうせだから、サイレントギターシンセ?に載せてもいい。

作って遊べるArduino互換機/ソシム
¥2,808
Amazon.co.jp

とりあえずのスケッチ。
これで正しいとは言えない。
とりあえず、今日のところまではこれでOK 。
初心者が初心者に忠告だけど、デジタル出力HIGHでGNDに直に落ちしてしまうと簡単に壊れるって書いてあったので注意。

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

// int notenumber[8]={60, 62, 64, 65, 67, 69, 71, 72};


int outputValue1 = 0;
int outputValue2 = 0;
int outputValue3 = 0;
int outputValue4 = 0;

void setup(){
   MIDI.begin();
    //Serial.begin(9600);
     pinMode( 2, OUTPUT);
     pinMode( 3, OUTPUT);
     pinMode(12, INPUT);
     pinMode(13, INPUT);    
}

void loop() {
  
  digitalWrite(2, HIGH);
  outputValue1 = digitalRead(12);
  delay(100);
  outputValue2 = digitalRead(13);
  delay(100);
  digitalWrite(2, LOW);
  
  digitalWrite(3, HIGH);
  outputValue3 = digitalRead(12);
  delay(100);
  outputValue4 = digitalRead(13);
  delay(100);
  digitalWrite(3, LOW);

   /*
   Serial.println(outputValue1);
   delay(1);
   Serial.println(outputValue2);
   delay(1);
   Serial.println(outputValue3);
   delay(1);
   Serial.println(outputValue4);
 */ 
  
     if(outputValue1 == HIGH && outputValue2 == LOW){
        MIDI.sendNoteOn(72, 500, 1);
        delay(500);
        MIDI.sendNoteOff(72, 0, 1);
     }
     
      if(outputValue1 == HIGH && outputValue2 == HIGH){
        MIDI.sendNoteOn(74, 500, 1);
        delay(500);
        MIDI.sendNoteOff(74, 0, 1);
     }
     
      if(outputValue1 == LOW && outputValue2 == HIGH){
        MIDI.sendNoteOn(76, 500, 1);
        delay(500);
        MIDI.sendNoteOff(76, 0, 1);
     }
     
     
     
     if(outputValue3 == HIGH && outputValue4 == LOW){
        MIDI.sendNoteOn(77, 500, 1);
        delay(500);  // bpm=120
        MIDI.sendNoteOff(77, 0, 1);
     }
     
      if(outputValue3 == HIGH && outputValue4 == HIGH){
        MIDI.sendNoteOn(79, 500, 1);
        delay(500);  // bpm=120
        MIDI.sendNoteOff(79, 0, 1);
     }
     
      if(outputValue3 == LOW && outputValue4 == HIGH){
        MIDI.sendNoteOn(81, 500, 1);
        delay(500);
        MIDI.sendNoteOff(81, 0, 1);
     }
    
}