Prev / Next / カメ太の日記

外部MIDI対応[dolittle]

2009-01-11

ドリトルの音楽機能はMIDIを使って演奏しています。標準ではJavaのソフ
トウェア音源(楽器の音を演奏するための音の素材データ)を利用しますが、
「外部の専用の音源で演奏したい」という声をいただいたため、現在対応
できるようにドリトルのプログラムを修正しています。

Roland SD-20C STUDIO Canvas

まず、外部音源を入手しました。ローランド(Edirol)のSD-20です。

sd20

セットアップは多少試行錯誤が必要でした。まず、開発機のMacBookにドラ
イバをインストールしUSBで接続します。しかし、ドリトルからデバイスが
検出できません。原因は2つありました。追加の設定とJavaの問題です。

まず、SD-20をMacに接続した後は設定が必要でした。でも付属の冊子マニュ
アルには記述がありません。たまたま「付属CDのドライバが古いのなか?」
と考えてダウンロードしたドライバの説明書(PDF)を見て気付きました。

audio

Mac標準のツールである「アプリケーション/ユーティリティ/Audio MIDI
設定」を起動し、検出されたSD-20からデバイスを3個追加しました。Macの
ツールはおしゃれですよね。右上のSD-20のアイコンから、下に追加した3
個のアイコンに曲線で入出力を接続するのは楽しかったです。この画面か
らは動作を確認できるため、正しく接続されたことを確認できました。

しかし、Macからは見えるようになったはずなのに、ドリトルからは見えま
せん。さんざん調べた結果「MacのJavaからは外部のMIDI装置が見えないの
が仕様」らしいことがわかりました。これはどこにも記述がないため、偶
然どこかのサイトで見かけなければ気付かないところでした。解決策は唯一、
Mandolaneという$5のシェアウェアを使うしかないようです。

midi

そんなわけで思わぬところで時間を取られましたが、何とか無事にドリト
ルから外部のMIDI装置を使って演奏できるようになりました。これは装置
を選ぶダイアログです。確かに、専用の装置は音がいいですね。本物の楽
器が演奏しているような臨場感です。次のリリースに含めたいと思います。

今回、JavaからMIDIを扱うときに参考にしたサイトをメモしておきます。
JavaでMIDI
Java Sound Resources: FAQ: MIDI Programming

(追記)
recordPlayer

ある先生から、高校生の作品プログラムを送っていただきました。曲を選
ぶと、レコードプレーヤーがぐるぐる回りながら音楽を演奏します。ちょ
うど外部装置に対応したところでしたので、生演奏と区別がつかないよう
なよい音質で楽しむことができました。力作をありがとうございます。

permlink