FreeBSDとRS-MIDI

RS-MIDIとはシリアルポートから出る信号でMIDI機器をいじるものを 意図して表現されています。

このドキュメントの中身は大変に古い内容で、そのまま鵜呑みにすると とてもよくないですが、問い合わせもときどきあることなのでまとめてみました。

現状

FreeBSD-currentにはドライバが含まれているようです。 谷村さんのページにある 4.x向けのドライバはかなり昔のものなので現在のFreeBSD-stableでうまく 使えるかどうかは不明です。

経緯

PC-98用ドライバの開発

97年10月に、MidiAxisドライバ(Linux用uart16550ドライバ)を参考にして PC-9801シリーズの標準のシリアルポート(8251)用のドライバを開発しました。 FreeBSD 2.1.xで稼働していました。

5MHz系のマシンであれば、(←嘘でした。 8MHz系でもOkです) いわゆるComputer(To-HOST)端子でなく 普通のMIDI端子に直接信号を送ることができます。 8MHz系は38400bpsに設定できませんので、Computer端子で接続する場合は 31250bpsに設定する必要があります(Rolandの音源だとPC1にスイッチを合わせる)

16550用ドライバの移植

半年後、メインのマシンがPC-98からLibretto20にうつったため、 前述のMidiAxisのドライバをFreeBSDに移植しました。 最初はFreeBSD 2.2.5で動かしていたように思います。

FreeBSD-users-jpで公開

上記の2つのドライバは、当時在学していた山形大学内のWebスペースで 公開していました。一部のMLで紹介して あとは放置しておりましたが、unix-dtm ML管理人(当時)の園田さんの アドバイスもあり、当時リリースされたばかりのFreeBSD 3.1で 動くように作業を行い、 FreeBSD-users-jpでアナウンスを行いました。 いきなりドライバ本体を入れてるあたりがかなり無謀。

当時はVoxWare(OSS/Free)と、Luigi氏による新しいサウンドの フレームワーク(newpcm)が並立した状態ですが、 ここまでのパッチはすべてVoxWareベースのドライバとなっています。

谷村さんとの共同作業

users-jpでの公開から数日後、谷村さんから4-currentへのパッチを頂き、 以後谷村さんが主導でドライバの開発を行うようになりました。 当時4-currentはいわゆるnew-busが入った直後の状態であったため、 谷村さんが4-currentへの追従、私がそれを3-stableに移植、といった 形で開発を続けました。

また、谷村さんの尽力によりnewpcmの枠組みにあわせた新しいドライバの 作成も進み、 freebsd-hackers / freebsd-multimedia でのReviewなどを経て 4-currentのソースツリーに取り込まれました。 同時に、VoxWareベースのドライバの開発を終了しました。

その後、谷村さんは横浜国大から東大に移られ、 現在もFreeBSDのcommitterとして活躍されています。

そのほか

↑に書いた通り、私が書いたuart16550.cはMidiAxisの移植であり、 著作権は原作者であるGeorge Hansper さんにあります。

newpcm化されたuartsio.cは、谷村さんによりほぼ1から書き直されている ものだと思います。

まとめ

ここにあるドライバや谷村さんのページ内のドライバなどは ほとんどがソースツリーにとりこまれる前のものです。

newpcm化には私はまったく関わっていません。そのため 私の開発は3.1への移植の時点で止まっております。 PC98用ドライバは2.1系のものが最初で最後です。

このドライバに関して私の功績があるとすれば、谷村さんのような技術も 能力もある人のやる気をどういうわけか起こさせたという一点のような 気がします。

そのほか

といったところをご理解の上、下に進んでください。 谷村さんちからyamagata-u.ac.jpへのリンクがある場合、 適当に読みかえてやってください(ぉ

例: http://www.eie.yz.yamagata-u.ac.jp/~a95516/zinnia/hack/rsmidi/uart16550patch.tar.gz

http://risky-safety.org/~zinnia/hack/rsmidi-freebsd/uart16550patch.tar.gz


戻る
Zinnia (zinnia@risky-safety.org)