前回妄想しいていたデジタルコンガもどきが一応出来上がったのでご報告。
バンドでパーカッション入れたいと思った時に、案外気軽にお願いしたりしていたものだが、よくよく考えて見ると、ドラマーだからできるだろうとか、じゃあ楽器はどうすんのかという点は深く考えていなかった。
今さらながら反省しきりであるが、実際スタジオ練習もほとんどやれずに本番だけコンガがあるよ的なことで、いい演奏が出来る訳がないのであった。
また、コンガだけあればいいのかっていうと、曲にもよるけど、それだけでないし、それだけだと出番がない場面もある訳で、それはそれで申し訳ない気がする。
ということで、オクタパッドを準備中なのであるが、前回も記した通り、これは基本スティックで叩かないと確実に発音させられない。
となるとコンガのようなものはちょっと雰囲気が出ないということもあり、何かないかと考えていた。
iPhoneのアプリで、マイクに反応するパーカッションなるものを見つけて、案外使えるなと思ったりしていたが、マイクで反応するということはスタジオでは使い物にならんだろうと思い至って、じゃあ振動だ、ピエゾ素子だ、となったのである。
モノがないなとふと思い出したのが、初めてArduinoを買った時にいっしょに購入したスターターキットに、なんからしいものが入っていたこと。
これが正解でピエゾ素子、いわゆる圧電スピーカーは手元にあった。
ので、早速実験にとりかかる。
といっても、ネットを探してスピーカーではない使い方のサンプルをいくつか試してみたくらいのことであった。
回路は抵抗が1個だけとか、増幅したりとかいろいろあったけれど、こう叩いて使うという用途はあまり見つからず、また、実際にAnalogReadで読んだ値をシリアルモニタで見ている感じでは、どう整理してMIDI信号化するか、なかなか難しそうであった。
そんな中でようやく見つけた
サイト の情報がまさにバッチリであった。
ということで、コードはこのサイトに載っているものから必要なところだけ取出して使っている。
多少の修正は必要になったが、実際の動作としてはなかなかいい感じになったと思う。
で、コンガらしきものを目指すということから、円筒2つのイメージが頭を回る。
50枚入りDVDのケースが目の前にあったが、これだと上面が平でない。
たまたま、使っていたベビー綿棒がなくなり、そのあきケースがとりあえずいけそうということで、形が決まるとあとが早い。
ピエゾ素子も2つ新たに調達。肝心のArduinoはというと、なんとAmazonで1個100円のNANO互換機を発見。
早速3個注文。
ピエゾ素子が先に届いたので、手持ちのUNOで回路とコードを実証。
NANO互換機も3日くらいで届きちょっと驚く。
但し、この互換機はCH341というUSB-シリアル変換チップを使っているということで、そのままではMacで認識できない。
メーカーサイトにドライバはあるのだが、最初うまくいかなかった。OSのバージョンによっても違いはあるようで、一旦ここで足踏み。
Windowsマシンでもトライしてみたが、こちらもうまくいかず。
で、もう一度情報を探して、Macで再びやってみたところ、無事接続できた。
何がどうなったのか、正直わかっていないが、
このサイト の情報でドライバを再度インストールしてうまくいった。
NANOは小さいので、基盤に直付けして抵抗その他を乗っけた。
ピエゾ素子の貼付けにはひっつき虫というのがいいらしいのだが、これに似た粘着ゴムという物を100円ショップで購入。何回もやり直せるのと、適度に隙間を空けられるのがいい。
仕様としては、決め打ちの2つのノートナンバーをMIDI出力する。
オクタパッドだと音源の側でパッチごとに音を選べるので、これを利用する。
一応ピエゾ素子の発電量に合わせてベロシティーを送信しているけど、音源の反応の問題もあって、ここの調整は課題。
思っていたよりは反応はいい。
VIDEO 体のいいおもちゃといった感じだが、小さいだけに素人の練習には使えそうな気がしている。
オクタパッドの内蔵音源なのであまり選択肢がないのが残念だが、そもそも本物のコンガとは奏法からして違う。改めてコンガのことを調べたりしている。
但し、スティックほどではないものの手で叩いてもそこその音は出るので、夜中に思い切りやるのはやはり無理そうだ。
配線図とコードを載せておく。
#include <MIDI .h>MIDI_CREATE_DEFAULT_INSTANCE ();//-------------------------------------------- #define PIEZOTHRESHOLD_ON 2 //10 #define PIEZOTHRESHOLD_OFF 1 //5 #define BOUNCE_PERIOD 2 //10 long last_read_time[2]={ 0,0}; ;byte piezoState[2]={ 0,0};byte peakVal[2]={ 0,0};byte piezoDrum[2]={ 38,42};byte i,n,val,t;byte last_val=0;byte flag_peak=1;//----------------------------------------- void setup () { MIDI .begin (10); }void loop () { for (n=0; n<2; n++){ val = analogRead (n)/8; if ( val >= PIEZOTHRESHOLD_ON && piezoState[n]==0) { while (flag_peak){ val = analogRead (n)/8; if (last_val > val){ flag_peak=0; } last_val=val; } last_val=0; flag_peak=1; MIDI .sendNoteOn (piezoDrum[n],val,10); piezoState[n]=0xff; last_read_time[n] = millis (); } } for (n=0; n<2; n++){ val = analogRead (n)/8; if ( val <= PIEZOTHRESHOLD_OFF && piezoState[n]>0 && (millis () - last_read_time[n]) >BOUNCE_PERIOD) { MIDI .sendNoteOff (piezoDrum[n],val,10); piezoState[n]=0; } } }コードはほとんど引き写しだが、MIDIライブラリを使うように変更している。
今回の製作費は、Arduinoが100円、と言っても送料がかかるので実質1個470円ほど。
ピエゾ素子は送料込みで2個320円。
粘着ゴム108円。
その他DIN5ピン端子、電源ジャック、スイッチ、抵抗、コンデンサ、ダイオード、基盤等は有り物を使ったので、1000円かかっていない。
Arduinoもここまで値段が下がると、石を焼いていた時が随分昔に感じる。
しかも、小さいので、以前作ったものもこれに置き換えるとケーシングが楽になるし、機能も増やせそう。
妄想は続く。
久々にBOSSのエフェクター、ComboDriveとDistortionを買ったので、次回はそのレビューをしてみたいと思う。
Mini USB Arduino Nano V3.0 改造バージョン 互換ボード ATmega.../vership ¥価格不明
Amazon.co.jp
圧電ブザー<圧電ブザーA>2個<con-273>/sapporo boueki ¥価格不明
Amazon.co.jp
コクヨ プリット ひっつき虫 タ-380N/コクヨ ¥324
Amazon.co.jp