ArduinoでAuduino

投稿者: | 2018年1月1日

今年もあと2時間で終わるというのに、夏頃までにやったことを書こうとしています。そうしないと次のプロジェクトに進めないので(;´∀`)

Auduinoとは

AuduinoArduinoの最初の記事で紹介したシンセサイザーのプログラムです。AudioとArduinoを文字って「Auduino」という名前にしたのでしょう。

必要なハードウェアはArduinoボードの他は、5つの可変抵抗(5kオーム、リニアタイプ)と音声信号出力用の2極ケーブルやジャック・コネクタ、あとは配線用のブレッドボードやジャンパーワイヤくらいです。

プログラムは公式Wikiにあるので(最新版はAuduino_v5)、ダウンロードしてArduinoツールでPCからボードに流し込むだけです。

発音ロジック

さてAuduinoとはどういう仕組で音を出しているのでしょう?いろいろ調べた結果、この記事にあるグラフを見るのが一番わかり易いと思いました。

先ずAuduinoはオシレータとして2つの三角波を発振します。そして夫々のオシレータは、FREQとDECAYというパラメーターを可変抵抗で調整し、元の三角波を加工出来ます。FREQは文字通り周波数ですから音の高さです。そしてDECAYの方は、ノコギリ波の夫々の山の右(下り)斜面の傾斜角のようです。

従って、この右斜面が左斜面より急だと次の山が始まる前に底辺まで落ちて、パルスのようにフラットな部分が出来ます。逆に右斜面が緩いと途中で隣の山の左斜面にあたって、振幅が少し減った左右非対称の連続した三角が出来ます。

そうやって変形した三角波が2つ(記事では”Wave1″/”Wave2″)出来るわけですが、これらを足すことで頂点が水平にカットされてデジタル歪を起したような波形(記事では”GRAIN”)が出来ます。

そしてこのGRAINを1つの波(ワンサイクル)に見立てて繰り返し、その繰り返す周波数を変更(可変抵抗で調整)した波形が最終的に出力されます。ああ、ややこしい(;´∀`)

スケッチ(プログラム)を見ると、この最終的な周波数は飛び飛びの値(つまり数列)で与えられ、これが音階となります。音階は次の3種類が入っており、このうちどれか1つのコメントアウトを解除することで、演奏する音階を選べます。

  1. 無段階(但し対数をベースにした細かい数列)
  2. クロマチック・スケール(半音階)
  3. ペンタトニック・スケール(5音音階):デフォルトではこれが有効)

因みに、平均律なら計算式で周波数を出すのかと思いましたが、最初から数列にしといたほうがCPU負荷が減るということでしょうか。

実演

それでは私の演奏を聴いて下さい(;´∀`)↓

さてこのシステムでは、可変抵抗の役割は左から次の順に並んでいます。

  1. オシレータ1の周波数
  2. オシレータ1のDecay
  3. オシレータ2の周波数
  4. オシレータ2のDecay
  5. ミックスされた最終的な出音の周波数(音階)

ビデオの冒頭で「ヒューヒュー」と無段階の音が流れている時は、一番右の音階ノブは左に振り切ってるので恐らく周波数はゼロ。つまり2つのオシレータがミックスされた音がそのまま出ていると思われます。

しばらくしてゆっくり音階ノブを右に回すと最初はブリブリ言いつつ、徐々に音階になって上がっていきます。ペンタトニック・スケールとは日本の「ヨナ抜き」音階なので、上げたり下げたりしてるだけで民謡的というか演歌風に聴こえますよね。

一番左のノブも少しいじってますが、そうすると「ギュイーン」と音色が変化するのが判るでしょう。フェイザーというかディストーションというか、良くわからない強烈なエフェクトが掛かっています。これは一方の波形の周波数をを変えることで、もう一方の波形との間にうなりが生じるからだと思います。因みにDecayは何方も大きめに設定しないと音が小さいし上手く唸りませんでした。

さてデフォルトの3つの音階以外にも、別の音階の数列を追記して読み込めば演奏できる筈。というわけでスケッチにブルース・スケールを追加して演奏してみました。

今度はケース(キャンドゥで買った筆箱)を加工してパーツをねじ込んでいますが、蓋を閉めると何処かの接触が変わってしまうようで、音が変わってしまいますね。何とか上手く押し込んだら一応正常に音が出ましたが、このまま最終製品にするつもりはありません。もっとスケッチを加工するとか、Auduino以外のシンセサイザーシステムも試してみたいので。

コメントを残す

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