無限音階

無限音階(シェパードトーン/Shapard Tone)

この言葉を知ったのはこの作品(nanorgan)がきっかけでした。

▲1オクターブしか鍵盤がないのに両端が連続しているように聞こえるオルガンです。

同じ音名でオクターブ違いの音を重ねているので、オクターブの違いが覆い隠されているわけです。これはコンパクトでいいですね。

一方、CAmiDion のほうは…

CAmiDion3号機でBm7(-5)のコードを鳴らした直後

オクターブの違いを左端の直線VRで操作し、MIDIがサポートする全ての音域をカバーしています。もしこれを無限音階にしたら…

さっそくやってみた。

波形はExcelで作っているので、シートに追加。ワークシート関数の計算式はこんな感じ:

=TRUNC(
	(( SIN(PI()*A1/128)
	 + SIN(PI()*A1/64)
	 + SIN(PI()*A1/32)
	 + SIN(PI()*A1/16)
	 + SIN(PI()*A1/8)
	 + SIN(PI()*A1/4)
	 + SIN(PI()*A1/2)
	 + SIN(PI()*A1)
	) * 31 + 127) / $B$35, 0
) & ","

ここで A1 は 0 ~ 255 を並べたセルの一つ、$B$35 は同時発音数=6です。この数で同時発音しても合計が 0 ~ 255 をはみ出さないように作ります。同時発音数が6なら 0 ~ 42 の範囲です。

セルを fill していくと、”数字,” の羅列ができるので、そのままArduinoスケッチへコピー&ペースト。

PROGMEM const byte shepardToneWavetable[] = {
/* Excelからここへペースト */
};

結果はみごと成功!オクターブ調整VRを変えても変化した感じがほとんどしないという不思議な音色になりました。

…ということは、オクターブ調整VRなしでもいける!

そして出来上がったのがこれ。CAmiDion 4号機です。

CAmiDion 4号機の基板

オクターブ調整VRをなくし、ATMEGA328のピンをめいっぱい使って外付けデジタルICを使わずに実装。これによりプルアップ抵抗もATMEGA328に内蔵されたものを有効化するだけでよくなったので外付け不要。部品点数を極限まで減らすことができました(ICの下にはリセットピンのプルアップ抵抗10kΩと、バイパスコンデンサ0.1μFが入っています)。

あとは電池やアンプをつけてケースに入れられれば、コンパクトな CAmiDion 4号機が出来上がりそうです。

参考までにスケッチをいつもの作業部屋に上げてあります。4号機の回路図はまだ載せていませんが、キーマトリクスは3号機と全く同じで、スケッチを見れば使用するピン番号が書いてあるのでだいたい想像がつくと思います。3号機/2号機用のスケッチも無限音階の波形を追加したバージョンにしてあります。

【2012/11/21追記】12月1日~2日に行われる Maker Faire Tokyo 2012 での電子楽器 CAmiDion の出展場所が判明したのでお知らせします。7Fb 交流サロンです。上の動画にある無限音階オルガン nanorgan の方も同じ部屋で beatnic合同出展するそうです。

【2012/11/25追記】動画を作りました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です