フェスに出演しました 3

イメージ
アイヌ文化フェスティバル2021に出演しました。 備忘録として。 前日仕込み とはいっても音響は自前の機材をほとんど使わないので、使いそうなモノ(ワイヤレス関連と卓まわり特にPC、インターフェイス関連)だけよりわけて荷揚げです。 スピーカー、卓、PCCなど場所を指定して置いてもらいました。 奥のモニター。いつもの場所にスタンドで立ててもらいました。 メイン&前モニター。 前モニターは場所が厳しくてこの位置に。同軸なので軸外の音の変化がすくないのが良い。 メインはラインアレーなんで、客席では明瞭度が高い。舞台上では、低音の回り込みは少なく客席からの跳ね返りは大きく感じられる。 卓廻り。手前がCL3。奥がCL5。 手元全貌。 PCはいつも通りの右側に戻しました。台本は箱馬を重ねた上にのっています。 緑のトレーは3Dプリンターで作ったもの。RIVAGEに合わせて作ったので、CLには収まりが悪く、ちょっと斜めになっています。 写ってませんがヘッドホンは自前のを引っ張り出してきました。 TBマイクは借りた58です。 案の定、照明、映像に時間がかかり、隙間で音出しして、あとはレイヤーやユーザーデファインドキーの設定に時間を費しました。 カスタムレイヤーの設定 CLのいやらしいところはMIX/MTXのレイヤーがインプットの側のブロックに出せないところ。 こんな風にNanoPadをCentraLogic上に置いちゃうと、MIXにアクセスしにくくなってしまう。 最初はNanoPadをどけながらいじっていたんだけど、かなり面倒。 カスタムレイヤーがみっつ設定できるので、A2に出力用のカスタムを設定したらとたんに便利になりました。LS9的な使い勝手が復活です。 ユーザーデファインドキーの設定 これはLS9にも設定してるんだけど、comp1/EQ/Home画面のbookmark、TB On/Off、TB画面を呼びだせるようにしておくと便利です。 何だか調子が悪い?..本番中に止まる 他団体のリハがお先で進んでいくんだけど、何だか調子が悪い感じ?繋がらないチャンネルがあったり、出音が変だったり… 曰くDanteを目一杯使っていて、かつDanteとMADI変換してるところがあって上手くいってないのではないか、あとCL5自体もおかしい、とのこと。まぢか。困る

arduino uno r3でMIDIもUSBMIDIも出せるようになる...続きの続き。

続きです。
実際にフェーダも付けてみました。
どうせ付けるなら滑らかに動いて消え際もスムーズな14bitフェーダにしよう!と思い立ってプログラムを組んでみました。
実際はarduinoのアナログインの分解能は10bit = 0-1023なので、14bit = 0-16383には程遠いのですが、7bit = 0-127よりはずっとなめらかなはずです。

フェーダを二本付けて、それぞれCC#1(MSB)とCC#33(LSB)、CC#2(MSB)とCC#34(LSB)の組み合わせで値を送信するようにしました。

動かしてみたら、動くには動いたのですが、常にフェーダがフラフラ動いて落ち着かない。
で、通常のデバウンスに加えて、前の値と新しい値の加重平均をとって新しい値にすることで入力を滑らかにしてみました(下の青字のくだりです)。

あと、arduinoのリファレンスには書いてないけど、簡潔に書けるようなので試しにポインタを使ってみました。赤字のくだりです。

もろもろ、ちゃんと動いているようです。動きはなめらか。フラフラ動きません。

ありものの5kA,50kAのフェーダを使ったため、動きが画面と違いすぎて過激すぎるのが難点。
Bカーブのフェーダが欲しい!
もし6本フルにつけるんだったら、電源のことも考えて50kBということになるのかな?

以下、スケッチ。

//The circuit:
// * switch(momentary) 1,2,3,4 connected to digital in ,4,6,8,10  and ground pin 5,7,9,11.
// * pot 1,2 cennter terminal connected to analog in A0,A1 :each ground terminal connected to ground :each ref connected to +5v  
// * digital in 1 connected to MIDI jack pin 5
// * MIDI jack pin 2 connected to ground
// * MIDI jack pin 4 connected to +5V through 220-ohm resistor
// Attach a MIDI cable to the jack.
//
// USAGE:
// 
// 2. Open, compile, and upload this sketch into your Arduino.
// 3.Connect arduino's MIDI-out to MIDI I/F (or connect MIDI through USB-MIDI,if you use arduino UNO and MOCO LUFA) .
// 4. Launch your music software such as Ableton Live,choose control for each switch/pot.
//
#define pushVal 0  //for push-on switches.
//#define pushVal 1  //Otherwise,use this for push -off switches.

#define nd 4  //number of digital switches.
#define na 2 //number of analog pots.
#define msg 176  //controll change. note-on:144 note-off:128

const byte inPin[nd] = {4,6,8,10};  //input pins for switches.
const byte gndPin[nd] = {5,7,9,11};  //input pins' ground.
const byte val1[nd] = {70,71,72,73};  //control No or note No
byte val2[nd];  //controll value or velocity

const byte anaIn[na] = {0,1}; // analog input pins for pots.
const byte val1MSB[na] = {1,2}; //control number for MSB
const byte val1LSB[na] = {33,34}; // control number for LSB
int anaVal2[na]; //control value 


long digiTime[nd];//the last time each switch was toggled.
long anaTime[na]; //the last time each pot's value changed.

const long digiDebounce = 30;  //switch's debounce time. Increase if the output flickers.
const long anaDebounce = 50;  //pot's debounce time. Increase if the output is unstable.

void setup(){
  
  for(int i=0 ; i < nd ; i++ ){
    pinMode(inPin[i] , INPUT);
    digitalWrite(inPin[i] , HIGH);
    pinMode(gndPin[i] , OUTPUT);
    digitalWrite(gndPin[i] , LOW);
    
    digiTime[i] = millis();
    
    val2[i] = readPin(i);
  } 
  
  for(int i = 0 ; i < na ; i++ ){
    anaTime[na] = millis();
    anaVal2[na] = analogRead(anaIn[na]);
  }
  
    Serial.begin(31250);
}

void loop(){
  int reading;
  long now; 
  byte MSB,LSB;
  
  for(int i = 0 ; i < nd ; i++ ){
    reading = readPin(i);
    
    if(reading != val2[i]){
      now = millis();
      
      if(now-digiTime[i] > digiDebounce){
        val2[i] = reading;
        MIDI_TX(msg , val1[i] , val2[i] );
        digiTime[i] = now;
      }
    }
  }
  
  for(int i = 0 ; i< na ; i++ ){
    reading = smoothedAnalogRead(anaIn[i],anaVal2[i]);
    
    if( reading != anaVal2[i] ){
      now = millis();
      
      if(now-anaTime[i] > anaDebounce ){
        anaVal2[i] = reading ;
        getMSBLSB( reading , &MSB , &LSB );
        MIDI_TX(msg , val1MSB[i], MSB );
        MIDI_TX(msg , val1LSB[i], LSB );
        anaTime[i] = now;
      }
    }
    
  }
}

int readPin(int i){
  
  return digitalRead(inPin[i])  == pushVal ? 127 : 0 ;
}

void MIDI_TX(int MESSAGE, int VAL1, int VAL2) 
{
  Serial.write(MESSAGE);
  Serial.write(VAL1);
  Serial.write(VAL2);
}

int smoothedAnalogRead(int num , int val ){
  
  return ( val * 2 + analogRead(num) ) / 3;
  
}

void getMSBLSB(int num , byte* MSB ,byte* LSB ){
 int mapped;
 mapped = map(num,0,1023,0,16383);
 *MSB = mapped / 128;
 *LSB = mapped % 128;
 
}

スケッチ終わり。


コメント

このブログの人気の投稿

カフボックス作った。andなぜノイズが出る?

シーンでフェードアウト on LIVE

AudioToolsを使ってみた