第9回電通大エレクトロニクスコンテスト-課題部門-からりおん


からりおん

からりおん
製作:チーム『マイナスドライバー』
情報通信工学科江澤 崇裕
知能機械工学科岩谷 心太
情報通信工学科廣瀬 健二

はじめに

なんか面白いこと無い?と常日頃から考えているそこの貴方!
いつも「ガーガー」鳴っているプリンタが、音楽を奏でたら楽しいなと思ったことはありませんか?

紹介

"からりおん"はプリンタを使った新しい楽器です。 電子ピアノやパソコンから送信された信号を受信し、 プリンタ内部のステッピングモータ×2を音程にあわせて駆動する事により音楽を演奏します。 MIDI規格に対応しているので、MIDI出力が可能なほとんどの電子楽器(ギター、電子ピアノなど)を接続して楽しむ事ができます。

システム

システム全体
システム全体

ハードウェア

マイコン:AVR ATmega48
モータドライバIC:LB1845
入力機器:MIDIを出力するもの
出力機器:EPSON カラリオ (の内部のステッピングモータ)

ステッピングモータとはパルスモータとも呼ばれ、信号を順序良く送る事で決められた角度(ステップ)毎に回転するモータです。 与えた信号と回転角度/速度が比例するためフィードバック制御を行う必要がなく、 構造が簡単で安価なので様々な場所で使われています。 欠点としては、高速回転には向かない、消費電力が大きい、 ステップ単位で回転するために回転速度に比例した振動(騒音)が発生するということがあります。

ステッピングモータの「制御がしやすい」という利点と、「速度に比例した音が発生する」という欠点をうまく利用したのが"からりおん"なのです。

ソフトウェア

処理の流れ
処理の流れ

コントローラ基板上のマイコンはこのような流れで処理を行います。

バッファ

メッセージの解析などの重い処理を行っている最中にデータが来たらとりあえず貯めておいて、 取り出すときには最初に届いた物から使う仕組みです。 この仕組みがないとデータが来る度に処理をしなければならず、連続で来た場合に取り逃がす恐れがあります。

MIDIメッセージ解析

MIDI信号に乗ってやってくる指令を「MIDIメッセージ」と呼びます。 代表的なMIDIメッセージには、鍵盤を押す(ノートオン)、離す(ノートオフ)、音程の連続変化(ピッチベンド)、 音量などの調整(コントロールチェンジ)、音色の変更(プログラムチェンジ)など沢山の種類がありますが、 "からりおん"はこれらの中からノートオン・ノートオフ、ピッチベンドだけを使用します。

タイミング値生成

センサのチェックやMIDIメッセージ解析によって得られた結果に従って、 モータドライバへの送信タイミングを決める値を生成します。

モータコントロール信号出力

この処理は一定時間のタイマー割り込みごとに実行されます。(この周期がサンプリング周期となります。)
上で決定されたタイミング値に従って、制御信号を順序良くモータドライバへ送信します。

テスト風景

ドライバ基板のテスト
ドライバ基板のテスト

紙送りモータの駆動テスト

演奏風景

演奏中
演奏中の様子(外装なし)

最初に紙を入れて…(注)

演奏開始!

注: 紙を入れなくても動きます。

伴奏ユニット

MIDI入力のデバッグのために作った簡易MIDI音源が、手を加えていくうちにいつの間にか16和音+ピッチベンド(+エンベロープ(注))対応になっていました。 しかもデュアルプロセッサ(ただ単にマイコンが2つ)+オーバークロック(20MHz→27MHz)で最高40和音対応になってしまい、せっかくなので"からりおん"用伴奏ユニットとして公開します。

注: エンベロープとは音が出てから消えるまでの振幅のゆっくりした変化のことです。 今回は音が止まった後の余韻のようなもの(リリースタイム)の長さが音程に比例するというのを入れてみました。 この効果は無効にもできます。

伴奏ユニット
ブレッドボード上の伴奏ユニット
回路図
マイコン1つ(20和音)のときの回路
マイコン:AVR ATmega48 ×2
入力:MIDI信号
出力:スピーカなど

回路のR3(可変抵抗)より右はアンプです。マイコンが2つの時はそれぞれ1kΩの抵抗を通してC1(C2)の前で繋げます。 プログラムは、入力されたMIDI信号を解析して発音ユニットへ渡し、 タイマー割り込み(サンプリング周期)ごとに20個それぞれのユニットの出力を合成したものをPWM出力することで和音を表現します。

MIDIメッセージ解析部のプログラムは、まずこちらで動作確認をしてから"からりおん"に移植しました。

演奏サンプル


伴奏ユニットだけで演奏(まだシングルプロセッサの時に撮影。ノイズはパソコンのファンによるものです。)

パソコンのライン入力で録音したもの(デュアルプロセッサ版)

パソコンのシリアルポートからMIDIを出力するためのドライバ(シリアルMIDIドライバ)でMIDI信号を送っています。 接続すればMIDIピアノなどから鳴らすことも可能です。