IchigoJamと音痴の戦い。IchigoJam R で解決するかも?

音の正体は空気の振動。IchigoJamの部品、サウンダーに電圧がかけたり(1)、かけなかったり(0)することで、サウンダー内にある金属板が上下に動き、その空気の振動が耳に伝わり、それを人は音として認識します。 例えば、ラの音を鳴らすとき、ラの周波数は440Hz、1秒間に440回のペースでON/OFFを繰り返せばいいわけです。440連打!

決まった時間でON/OFFするのは、コンピューターの得意技!フルカラーLEDを制御したように、1秒の880分の1の時間だけ待ってON、同じ時間だけ待ってOFFを繰り返せばOK。 LEDを点滅させるのと同じ要領ですね。エルチカすごい!

ただ、コンピューターが音だけに全力を使ってしまうと、ゲームが動きません。そこで便利な、コンピューター向け目覚まし時計的機能、タイマーです。 タイマーは指定した時間が経ったら教えてくれたり、自動的にON/OFFしてくれたりしてくれます。 タイマーを使えば、ゲームやツールを動かしながら、音を奏でることができるわけです。

ただ、このタイマーという機能の数は有限です。 いままではIchigoJamでは画面の表示とロボット制御用のPWMでタイマーを使っていっぱいいっぱいでした。 音用には画面表示のタイマーを流用したため、細かな周波数が出ず、特に高音域で音痴だったわけです。

IchigoJam R、RISC-Vの新しいコンピューターはタイマーが豊富。 サーボ制御もいままでの4つから6つに増え、更に音専用にも使えます!


IchigoJam Rβ と IchigoJam S で聴き比べながら開発し、βファームウェア公開しました。計算上の周波数誤差はいままでの最大5%から、最大0.04%(O5A+)まで下がりました。

IchigoJam BASIC 1.5b03 ファームウェア (RISC-V版 IchigoJam R用)
- IchigoJam 1.5β4
音程の調整 BEEP/PLAY
(ファームウェアの書き換えには、「IJUtilities」が便利です!)

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS