Publish 2017.12.19
しばらく滞っていたシンバルパッドの製作に着手しようと思ってたんですが、シンバルパッドを自作してる人がいないので情報がほとんどありません。
メルカリでYAMAHAのPCY135というシンバルパッドを格安で入手したので、arduinoに繋いでみました。
PCY135 - 概要 - 電子ドラム用パッド - 電子ドラム - ドラム - 楽器 - 製品情報 - ヤマハ – 日本
いわゆる3ゾーンのパッドです。
ライドシンバルとしての使用においては、3つの音が必要です。エッヂ、ボウ、カップの3種類です。
つまり、3ゾーンのパッドとなるのですが、RolandとYAMAHAではシンバルの仕組みが大きく違います。
まずケーブルの数が違います。3つの音を出す場合、Rolandは2本のケーブルを必要とするのですが、YAMAHAは1本で済ませています。センシングの精度など、どっちが優れているのか分かりませんが、作る上では1本で済ませたいということもあって今回はYAMAHAのパッドを入手したという訳です。
早速繋ぎましょう。
とりあえずanalogReadでシリアルプロッタの様子を見てみます。シリアルプロッタはカンマで区切ると複数の値を別の色で見ることができます。
配線はこんな感じです。
まずはスイッチを指で押します。何も押してない状態から、エッヂ、カップの順で押していくとしたの画像のようになります。
叩いてみます。まずはボウだけ。スイッチに反応はないのでオレンジ色の線に動きはありません。
次にエッヂ。
そしてカップ。
ケーブルが一本だけなので、予想通りの仕組みでした。仕組みとしては、ボウ部分にピエゾが1つ入っていて、エッヂ、カップ部分にそれぞれフィルムスイッチが入っています。
しかし、ケーブルはただのステレオのケーブルなので、ピエゾとフィルムスイッチで埋まっちゃいます。そこでエッヂとカップはそれぞれ違う値を返すようになっているようです。
さて、プログラムは今までのコードに手を加えるだけで作れそうだったので、さくっとMIDI用のコードを作ってみました。
一見、上手くいってる感じなんですが、カップのスイッチが押されてる間はピエゾの値の変化がとても小さくなるので、とりあえず今はベロシティを一定にしてあります。エッヂに関しても上手く強弱の判定が取れていません。いずれ改良していきます。
コードですが、ピエゾの反応をセンシングしてピークを取るまでは今までと同様で、それからフィルムスイッチの値を読んで位置検出をします。
フィルムスイッチに何も反応がなければボウの音を、エッヂのスイッチに反応があればエッヂの音を、といった具合です。
センシングに関しては、少し改良の余地がありますが、すんなり上手くいきました。
問題はハードです。こんなパッドをどうやって作るかです。絶妙な重さとゴムが良い感じの跳ね返りを生んでいます。ボール紙で作ったプロトタイプとは全く別物で、素材から考え直す必要があります。そして円形のフィルムスイッチも自作しないといけません。というわけで次はこのパッドを分解してみます。