「Arduinoから直接音を出力したい!」という方は非常に多いと思います。
代表的な例としては、以下の方法でArduinoのピンから直接音を出力することができます。
Tone()やAuduinoを用いた音出力をやってみたことがある人は多いかもしれません。 しかし、どうにもビープ音やローテクな音しか出せず、苦しい思いをしている方も多いと思います。
最近は、Arduinoにシールドをつけて音声や正弦波などをならすことができるGinSingなどが開発され、Arduinoを用いた音出力は色々とできることが増えてきています。
また、Raspberry Piを使うことで、Pure Data (Pure Data Japan)を動かし、スタンドアローンデバイスを作ることも可能になってきています。しかし、Pure Data等をRaspberry Pi, BeagleBoardなどにインストールしてみたはいいものの、高度な音響処理を行った場合はあまり処理速度に期待できません。
これに対して、スタンフォード大学CCRMA(Center for Computer Research in Music and Acoustics)で進められている”Satellite CCRMA“というプロジェクトは、SDカードにイメージを焼くことでRaspberry Pi, BeagleBoardを音響処理用に最適化してくれます。この辺りは Pure Data Japanのサイトで詳しく述べられています。
ハードウェア上でPure Dataが動かせれば全く問題はないのですが、 小型のスタンドアローンシンセや共同演奏のための電子楽器を作りたい私の観点から上記の問題点をあえて挙げると、
(参考: Arduino Uno対BeagleBone対Raspberry Pi, Make:JAPAN)
そこで注目しているのが、Mozzi sound synthesis library for Arduino (inventor: Tim Barrass)です。
この”Mozzi”は特別なシールドを用いず、16MHz駆動Arduinoだけで豊かな音響表現を可能とします。 また、Arduino同様オープンソースのライブラリです。
現在のところ、Arduino Duemilanove (ATmega328), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Uno, Arduino Leonardo, Arduino Mega, EtherMega, Boarduino, Ardweeny, Teensy2 and Teensy2++ で動作が確認されています。(私の環境ではArduino Pro (5V, 16MHz)も動作確認ができています)
ちなみに、私がMozziを搭載した自作デバイス”B.O.M.B.”と数個のエフェクターを使って行ったパフォーマンスの音源が以下です。
個人的にはMozziだけで十分電子楽器を作り出すことが可能であると感じています。 本作品のリンクはMozzi 本家サイトのwikiにも掲載していただいております。
今年2月に開催され、私も講師として参加した、東京工科大学松村誠一郎先生のPdワークショップでMozziを取り扱いました。
また、上記ワークショップの際に大変お世話になりました原田克彦様と、赤羽亨様による”メディア芸術表現基礎ワークショップ ex-Workshop01 「プログラミングと音」−Arduino + Mozzi−“ではメイン技術として取り上げられ、日本でも少しずつ用いられるようになってきています。
日本大学芸術学部音楽学科の川上央先生も解説をされています。
現在のところ日本語による基礎的な情報サイトは立ち上がっておらず、なかなか独習が厳しい状況です。 また、以前のワークショップから4ヶ月足らずではありますが、かなりのアップデートがなされており、 Pdワークショップ参加者の方にお配りしたサンプルプログラムもおそらく最新版のMozziでは動作しません。
そこで、本ページで資料のアップデートもかねて新しいサンプルを作成し、解説をしていきたいと思います。
私自身は単なる一人のユーザーですので、至らない点/カバーしきれない点もあるかと思います。 ご意見やご質問、リクエスト、改善要求等はコンタクトフォームかTwitterまで頂ければ幸いです。
本ページの管理者である中西が執筆した『Arduinoではじめる手作り電子楽器』が工学社より発売されています。
筆者が開発した楽器の基礎部分を題材に、Mozziの解説をしています。 本ページと合わせてご参照いただけると、より理解が深まると思います。
最初はサポートのため、Pure Dataを用いてMozziをコントロールします。徐々にハードのみの動作に移行します。
また、もっとしっかりとした情報を得たい方は、本家Mozziサイトの方を是非チェックしてみてください! ディスカッションフォーラム (Mozzi-users)に参加するのもありでしょう。