TV-B-Goneの作者がArduTouch音楽シンセサイザーを作成した方法

Arduino互換のデジタル信号処理トレーニング機器







TV-B-Goneテレビをオフにするユニバーサルリモコンを発明した発明者であり、ハッカー会議の主催者であるMitch Altmanによる記事



子供の頃、私は音楽に惹かれ、1968年のアルバムSwitched-On BachMoogシンセサイザーの音に感銘を受けました。 そのような音の作り方を学ぶ必要がありました! そこで、テクノロジー業界への参入と並行して、生涯にわたるシンセサイザーのトレーニングと製造を開始し、最終的には、ほとんどすべてのリモコン付きテレビの電源を切ることができるガジェットであるTV-B-Goneを作りました。 TV-B-Goneの人気を獲得して以来、 DIYカンファレンスで世界中で発表する楽しい屋外デバイスを作成するための多くのキットを作成しました。 それらについては、初心者がはんだ付けを学び、エレクトロニクスとマイクロコントローラーの世界に進出します。 若さを思い出して、私は彼らに組み立てと使用が簡単なセットを提供したかったのですが、同時にそれは本格的な音楽シンセサイザーでもありました。



それが30ドルの値を持つArduTouchが生まれた方法です 。 このプロジェクトには、1つのボード、タッチキーボード、ATMega328P(Arduino Unoで使用されているものと同じプロセッサ)、およびスピーカー付きのオーディオアンプが含まれています。 また、デジタル信号処理の世界への入り口として機能できるソフトウェアライブラリも備えています。



ボード開発の最大の難点は、ATMega328PのI / Oピンの数が限られていたことです。 キーボードに12個のピンを使用して、全体の半音階スケールを実装しました。 キーボードは、1960年代後半の私のお気に入りのアナログシンセサイザーの1つであるスタイロフォンに似ており、認識に静電容量センサーを使用します。 さらに2つのピンがステレオオーディオ出力に使用され、他の2つはシリアルデータ転送用です(コンピューターに接続するにはFTDIケーブルが必要ですが、Arduinoの標準開発ツールを使用してArduTouchをプログラムできます)。 残りの接点は、シンセサイザーを制御する2つのボタンと2つのポテンショメーターで十分でした。



はんだ付け後すぐに結果が聞こえるように、LM386アンプチップとスピーカーをボードに配置しました(オーディオジャックを接続するとアンプはバイパスします)。 DACチップは高価なので、 パルス幅変調を使用してATMega328Pから出力されるステレオオーディオチャネルをエンコードしました。 抵抗とコンデンサで構成される各チャネルのローパスフィルターは、PWMをオーディオに変換します。



経験豊富な電子技術者は、ArduTouch回路が単純であることを理解します。 このプロジェクトの基礎は、ATMega328Pのプログラミングに使用される洗練されたオーディオ合成ソフトウェアライブラリです。



マイクロコントローラに最も簡単なメモを発行させるのは非常に簡単です。 スピーカーを接点に接続し、オンとオフを交互に切り替えて、異なる周波数の方形波を送信します(この技術は、 マンチェスターマークIIコンピューターでアランチューリング自身が使用しました)。 しかし、結果は、Moogシンセサイザーの豊かなパレットとはかけ離れたシャープなサウンドです。



サウンドを改善するには、デジタルシンセサイザーを使用する必要がありました。 彼らは、音声波のバイナリ表現の作成、歪み、およびこれらの数値のアナログ信号への変換に取り組んでいます。 これはさまざまな方法で行うことができます.ArduTouchは、ウェーブテーブルの使用(メモリに保存されたサンプルの使用)やサウンドの生成(オンザフライでのオーディオのカウント)など、非常に多くの異なる技術をサポートしていることを嬉しく思います。



サウンドの基本的なバイナリ表現を作成した後、その「歪み」の重要な段階に戻ります。 あなたが音で遊んでいない場合、それは通常薄くて無菌であることが判明します。 動的な操作後にクールなサウンドが得られます。 ArduTouchは、トレモロ、ビブラート、ポルタメント、低周波および高周波フィルターなど、多くのデジタルダイナミック機能とエフェクトを適用できます。









ArduTouchが使用するコンポーネントは比較的少ない





初心者でも収集できます



また、概念的には上記のすべてを学ぶことや理解することは難しくありませんが、プログラミング自体は非常に複雑です。 私が友人のビル・アレッシと一緒に作成したArduTouchライブラリは、すべての低レベルの計算を実行します。作成に2年かかりました。



このライブラリは、柔軟性があり、経験の浅いユーザーでもさまざまなサウンドを生成する新しいシンセサイザーを作成できるように設計されています。 4つのノコギリ波を組み合わせたThickシンセサイザーがキットに付属しており、他のシンセサイザーは個別にダウンロードできます 。 経験豊富なユーザーは、高レベルの関数を呼び出すことにより、シンセサイザーをゼロから作成する方法を学ぶことができます。 プロジェクトを気に入った人が新しいシンセサイザーを作成し、自分のコードを私と共有して、他の人と共有できることを願っています。



しかし、デフォルトのシンセサイザーを使用している場合でも、そのような低電力マイクロコントローラー(15 kHzのサンプリング周波数のみをサポート)および安価な機器にとって、サウンドは予想外に優れています。 私のYouTubeチャンネルで多くのデモを聴くことができます



将来プロジェクトを開発するために、ArduinoのArduTouchライブラリを改善し、既製のシンセサイザーを追加していきます。 また、パフォーマンスに適した、より強力なバージョンのArduTouchの作成にも取り組んでいます。 キットではなくなりますが、Arduinoとの互換性は維持されます。 多くのI / Oピン、DAC、多数のメモリ( MIDIを使用できるようにする)、小さなLCD画面、いくつかのボタンとポテンショメーター、LEDインジケーターを備えた32ビットのマイクロコントローラーと、もちろん改善されたサウンドを備えています。



All Articles