ボタンを押したとき、エラーが出たとき、動作が完了したとき──“音”はユーザー体験を直感的に支える存在です。近年、ArduinoとMozziライブラリを活用したプロダクト開発が広がり、物理デバイスでも高度な音声演出が可能になりました。本記事では、Mozziライブラリの基本から応用的な使い方、シンセサイザー的な音作り、和音・LFO・Oscilといった仕組みまで、音のUXを実現する戦略と実装ノウハウを徹底解説します。
Mozziライブラリとは?Arduinoに音の命を吹き込む軽量サウンドエンジン
Mozziは、Arduinoボードでリアルタイム音声生成を可能にするオープンソースのオーディオライブラリです。
特徴
- Arduino Unoなど8ビット機でも使える軽さ
- 音波形の生成、LFO(低周波変調)、フィルター、ADSRなど基本機能が充実
- オーディオアウトは1本の抵抗とコンデンサで構築可能
主な利用用途
- サウンド付きインタラクティブアート
- ミニゲーム・電子玩具
- IoT機器のサウンド通知機能
Mozziライブラリの導入と使い方の基本
Mozziの導入手順(Arduino IDE)
- Mozzi公式GitHubからzipでダウンロード(Mozzi GitHub)
- Arduino IDEで「ライブラリをインストール」
- サンプル(examples)から
Basic
やSineWave
などを選択して動作確認
最低限のセットアップコード例
cppコピーする編集する#include <MozziGuts.h>
#include <Oscil.h>
#include <tables/sin2048_int8.h>
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA);
void setup(){
startMozzi();
}
void updateControl(){}
int updateAudio(){
return aSin.next();
}
void loop(){
audioHook();
}
これは最もシンプルなOscil(波形発振器)の実装例です。
Mozziで実現する“音のUX”とは?
なぜUXに音が必要か?
- 状態変化の視覚だけでは不十分な場面で、補助的に情報を届けられる
- 「押した」「成功した」などのフィードバックを0.1秒で伝える
- 感情を揺さぶる演出に貢献(成功音、警告音、環境音)
Mozziの強み
- 他の音源ICと違い、コードで音色を定義できる
- センサー・LED・モーターなどとの連携が自由自在
- リアルタイム制御が可能=UXデザインに最適
Mozziで和音を奏でる方法と注意点
和音(Chord)の生成方法
Mozziは複数のOscilを同時に使うことで和音を表現できます。
cppコピーする編集するOscil<SIN2048_NUM_CELLS, AUDIO_RATE> tone1(SIN2048_DATA);
Oscil<SIN2048_NUM_CELLS, AUDIO_RATE> tone2(SIN2048_DATA);
void setup(){
tone1.setFreq(440); // A4
tone2.setFreq(554); // C#5
startMozzi();
}
int updateAudio(){
return (tone1.next() + tone2.next()) / 2;
}
音割れしないためのコツ
- 複数音を重ねる場合は合計値を割る(÷2、÷3)
- PWM出力でボリュームが大きくなりすぎないよう抵抗値にも注意
シンセサイザー的な表現をMozziで作るには?
Mozziはシンセ音源の基本機能を備えています。
波形(Oscil)の選択肢
sin2048
:滑らかな音square8192
:ビープ系の硬い音saw8192
:ザラついたエッジのある音
LFO(低周波変調)による揺らぎ表現
LFOを使うことで、ピッチやボリュームに微細な変化を加え、より有機的な音に近づけられます。
cppコピーする編集するOscil<SIN2048_NUM_CELLS, CONTROL_RATE> lfo(SIN2048_DATA);
void updateControl(){
int mod = lfo.next() / 16;
tone1.setFreq(440 + mod);
}
Mozzi examples で学ぶ|公式サンプルの読み方と活用法
Mozziには公式に豊富なサンプルがあり、以下のようなカテゴリに分かれています。
Basics
:基本の発音構造Advanced
:LFOやADSRの応用Synthesis
:エフェクト、波形合成SensorInput
:外部入力と音の連動
おすすめ例
RingModulation
:倍音を使った複雑な音色ADSR_Envelope
:シンセ音の立ち上がり・余韻を調整
Mozziを使う上での注意点と制限
音質に限界はあるが、用途次第で十分
- サンプリング周波数が低いため、高音質オーディオには不向き
- 一方で、通知音・インタラクション音・プロトタイピングには最適
Timer1を使うので競合に注意
- サーボモーターなどTimer1依存機能と同時使用不可
- 他ライブラリとの干渉が起きやすいため、開発段階で検証を
Mozziを活用したプロダクトの実例と応用アイデア
音付きIoT製品のUX改善
- ゴミ箱の開閉に合わせて効果音を鳴らす
- 家電操作に成功した際の「ポンッ」音で安心感を演出
教育コンテンツとしてのMozzi
- 中学生でも扱える簡易シンセ教材として
- プログラミング × 音楽のハイブリッド授業
アート・展示作品での音表現
- センサー×音で没入感あるインスタレーション
- 抽象音による作品の解釈拡張
まとめ:Mozziで音のUXはここまで作れる
Mozziライブラリは、音を“再生する”のではなく、“生成する”体験を可能にするライブラリです。Arduinoのような手軽なデバイスでも、和音・LFO・Oscilなどの機能を駆使すれば、ユーザー体験の品質をぐっと引き上げられます。
プロダクトに「音」を組み込むことは、単なる通知機能にとどまらず、UXを豊かにし、ブランド体験そのものを強化する重要な要素です。Mozziはその第一歩に最適なツール。ぜひ手に取って試してみてください。