CMU-800
Tweet 1982年にアムデックからデビューした、パソコン用音源ユニットです。これ1台で6パートのメロディとドラムの音を鳴らすことができます。 もう30年以上前、知人から譲って頂きました。それまでその方はMZ-80C(しかもコンパチ基板)を使われていたのですが、譲渡を機にFM77AV20を購入されました。そもそもCMU-800を使っていたのも、学生時代から音楽に親しんでいた関係でパソコンでも音楽をやってみようと思われたからのようで、FM77AV20を手に入れてからはFM音源を活用していろいろ楽しんでいらっしゃいました。 なお写真のものはアムデックからローランドDGに社名変更した後の製造品です。 |
目 次
|
1982年と言えば、NECからPC-6001が前年に登場するなど、パソコンによる音楽ということではもうブザー音から脱却していた頃ですよね。PSG(AY-3-8910)は今でこそチープな印象の音ですけど、メロディを演奏するには十分なスペック(三重和音を鳴らせる)ですし、ゲーム用と思われるノイズジェネレータもパーカッションとして使用可能でした。
また一部の機種にはサードパーティーがPSGボードを発売しており、拡張スロットに収まるようなすっきりした使い勝手が実現されていました。なのにわざわざごつい外付けユニットが発売される理由…それは、このCMU-800がただの音源ユニットではないからなのです。
音源ユニットとしてのスペックを簡単に紹介すると、
となります。
メロディとコードはパンフによるとピアノの音だそうですが、ベースと合わせて6音同時に出せるというのはかなりリッチです。PSGだと3和音まで、6音出すにはMZ-1500のように2個搭載する必要がありましたからね。ベースはLPF(ローパスフィルタ)が効いていていい音が出るんですよ。
リズムパートはドラムセットの音がひととおり揃っています。もちろんアナログ回路で擬似的に作っているのですけど、そのわりにはそこそこリアルな音が出てきます。ちゃんとしたドラムやリズムパートの音はパソコンだとPCM音源がサポートされるまで無理でしたから、それだけでも価値があったと言えるかもしれませんね。
そしてもう一つCMU-800には特徴というか大きな機能があります。それは最大8台の電子楽器を制御可能というもので、今ならMIDIのインターフェースに相当するものですね。1982年というと秋にMIDIの仕様が正式に発表されたというような時代なので当然MIDIではなく、CMU-800で採用されている制御はCV/GATE方式と呼ばれているものです。これは音程をCV(Control Voltage)という電圧で、発音をGATEというパルス信号で表したもので、比較的高級なシンセサイザやリズムマシンなんかにはこの信号を受け付けるものがありました。CVが1V1オクターブなのか発音する周波数を表すのか、GATEがHiアクティブなのかLoアクティブなのか方言があって思ったほど自由に接続できなかったようですが…。
CMU-800の各部分を見ていきましょう。上面操作部の左下にあるのは、内蔵音源の音量を調整するスライドボリュームです。 左からメロディ・ベース・コード・リズムの各パート、右端がそれらをミキシングした全体の音量の調整に使われます。 |
||
今度は左上。ここには内蔵音源の音調の調整などができるボリュームがあります。 内蔵音源に対する調整と言ってもできることはエンベロープの変化の具合だけです。一度ポンと鳴った時の音量がどう変化していくか、いわゆるADSR(アタック-ディケイ-サステイン-リリース)のDとSの長さを短くしたり長くしたりできるわけです。長くすればそれだけ余韻が生まれますし短くすれば歯切れの良い音になります。メロディのみディケイとサステインを、ベースとコードはディケイを調整できます。 上の方に8つ並んでいるのはLEDで、発音している=GATEが有効になっている時に光ります。内蔵音源は6チャンネルだけですが、CV/GATE出力は8チャンネルありますのでLEDも8つあるのです。 CH-8(右端)にあるボリュームはポルタメントの調整です。これを右に回せば、音と音の間の音階が滑らかにつながる(CVが滑らかに変化する)ようになります。 |
||
右半分。右下にあるツマミはテンポで、右に回すほど曲の演奏スピードが速くなります。テンポの元になる信号はCMU-800内で作っていて、その変化をパソコン側で読み取ることで次の音を送り出すタイミングが決まるわけです。 テンポの右に「TUNE」とあるのですが、ここには硬質ゴムのフタがあって、それを取るとトリマコイルのコアが見えます。このコアにマイナスドライバーを差し込んで左右に回転することで、内蔵音源の音程の調整ができます。トリマコイルを含むLC発振回路にて2539732Hzのクロックが生成されるよう調整することになります。 回路にはチューニングをするためのモード設定があって、このモードに入るとコードのエンベロープ設定が無視されて音が鳴り続けるようになっています。サービスノートによれば、そのモードにて442Hzになるようにすれば良いようです。 最初私はやり方がよくわからなくて、コードの音声出力をオシロで見て442Hz周期になるよう調整したんですが、だいたい素直な矩形波なりサイン波なりではありませんから、崩れたノイズまみれの波形を見るしかなかったんですよね。 そもそもこういう調整って「チューナー」を使うものですよね。アコースティックな楽器を使わないのですっかり忘れていました。通販を見るとほぼギターのチューナーで、基本的には440Hzで調整するっぽいですが442Hzにも設定できるのが普通のようです。この440Hzなのか442Hzなのかというのがいろいろ議論のあるところらしいのですが…そういうのは横に置いておきまして…まぁそんな設定変更可能なデジタル式のチューナーでも1000円程度しかしないので、今度買ってもいいかな…一度しか使わないけどな…と考えてたら思い出しました。最近はスマホのアプリにチューナー機能を持つものがあったんですよ。サウンドコルセットというのをインストールして、ちゃんと調整できていることを確認しました(オシロでの調整はうまくいってた!)。 |
||
こちらは背面左側。上に5つ並ぶ標準ジャックは音声出力で、左からMIX、リズム、コード、ベース、メロディとなっています。ミキシング出力だけじゃなくて各パート単独の音も取り出せます。今風に言うとパラアウトというやつですね。 その下のミニジャックはクロックの入出力です。内蔵のテンポ回路で作られたクロックがOUT端子から出力されるようになっていて、他の機器と同期するのに使えるようになっています。またIN端子にクロック信号を入れると外部のクロックに追随するようにできます。 |
||
背面右側はGATE(上段)とCV(下段)の出力端子。そして中央下からホストのパソコンに接続するためのインターフェースケーブルが出ています。 | ||
そしてその先端は、カードエッジコネクタになっています。CMU-800のサポートするパソコンの機種は原則として限定しないのですが、もちろん各機種の拡張バスコネクタはいろいろな形状がありますので、このコネクタを共通の端子としてアダプタのようなI/Fが使用されることになります。 |
||
これがMZ-80K/C用インターフェース、IF-80C。CMU-800がRoland DGブランドなのにI/FがAmdekブランドなのは特に意味もないでしょう。前オーナーが入手した時の在庫の都合だと思います。 CMU-800からのケーブルの先のコネクタを、左下のところにある(写真では見えませんが)カードエッジ端子に差し込みます。逆に伸びているフラットケーブルの先の青いコネクタ、これは50ピンの角形ヘッダコネクタなのですが、MZ-80K/Cの後面にある拡張バスコネクタに接続します。 ということはですね、拡張I/Oユニット(MZ-80I/Oとか)を接続しているとCMU-800が使えないということですよ。逆に、CMU-800で演奏したい曲データをフロッピーディスクに保管・管理するとかできないという言い方もできます。いやそれは…つらいよね? |
CMU-800の対応機種一覧を作ってみました(大部分はパンフからの転写)。特に輸出されていたものはいろいろハッキリしません。
パソコン | I/F | ソフト | 媒体 |
MZ-80K/C | IF-80C | CM-MZ | CT |
MZ-80B/2000 | IF-MZB | CM-MZB | CT |
MZ-700 | IF-MZ7 | CM-MZ7 | CT |
MZ-1500 | IF-MZ15 | CM-MZ15 | QD |
X1/turbo | IF-X1 | CM-X1 | CT |
CM-X1D3 | 3''D | ||
CM-X1D5 | 5''D | ||
PC-8001 | IF-PC8 | CM-PC | CT |
PC-8801/mkII/8001mkII | IF-PC88 | CM-PC88 | CT |
CM-PCD | 5''D | ||
CP YOU-PCD | 5''D | ||
PC-6001/mkII/6601 | IF-PC6 | CM-PC6 | ROM |
FM-8/7 | IF-FM | CM-FM | CT |
CP YOU-FMD | 5''D | ||
FM-77 | IF-FM77 | CM-FM77 | CT |
CP YOU-FMD | 3.5''D | ||
PASOPIA/5 | IF-PA | CM-PA | CT |
APPLE ][ | IF-APL | CM-APL | CT |
CM-APLD | 5''D | ||
Commodore64 | IF-C64 | ??? | 5''D |
TRS-80 | ??? | ??? | ??? |
ソフトのうち「CP YOU-xxx」とあるのはアムデック/ローランドDG製ではなく、シーピーユーという会社の製品です。シーピーユーはローランドの関連会社で、大阪駅前ビルにローランドのショールームを開きつつソフト開発なども行っていたようです。そしてどうもそのCP YOU-xxxのMIDI版が後のレコンポーザにつながり、さらには株式会社インターネットの「Singer Song Writer」の源流(ただし反面教師的な意味で)になったということのようです。
ところで。
手元には1982年に大阪・天満橋のOMMビルにて行われた「MZフェア'82」(6月19・20日)にアムデックが出展していた時のCMU-800他の総合カタログがあります。タイミングとしてはCMU-800の発売直後であり、おそらく最初のパンフかと思います。そこに、対応機種に関する記述としてこんな情報があるのです(パンフには機種ごとに文章があるが、上の表のとおりにまとめている)。
余談ですが、そのMZフェアでは入り口に入ってすぐの所にMZ-2000が展示され(出荷前だったからなのか触れない)、その反対側の端にアムデックの大きなブースがあって、シンセサイザと共にCMU-800がデモ演奏していました。何曲かループしていたと思うんですが、他社のブースを見ている最中でもなぜか聞こえてくるのは近藤真彦の「ふられてBANZAI」で、すっかり頭にこびりついてしまいました。
パソコン | I/F | ソフト | 媒体 |
MZ-80K/C | IF-80C | CM-MZ | CT |
PC-8001 | ─ | CM-PC | CT |
APPLE ][ | IF-APL | CM-APL | CT |
この表で何が言いたいかというと、PC-8001だけI/Fの記述がないんです。まさか…ダイレクトに接続できたとか? PC-8001の外部バス端子もカードエッジ端子ですね…比較してみましょうか?
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMU-800 | PC-8001 |
おお…そっくりなんてもんじゃなく…不要な信号を削除しただけ、に見えますね…。
さらに驚愕の事実があるのですよ。MZ-80K/C用I/FのIF-80Cですが、分解して基板を見てみるとなにやら余計なパターンが走ってるんですよね。
表 | 裏 |
先に断っておきますが、フラットケーブルの付き方がおかしいのは勘弁して下さい。昔この圧着が信用ならなかったというか、データの書き込みがうまくいかない時があるような挙動があったので、前オーナー時代から詰め物をしてより強く押さえるようにしてたのですが、その効果も怪しかったので強引にはんだ付けしちゃったんですよね。今思うと、故障した8253が何か影響を及ぼしていたのかもしれませんね…(修理編を参照)。
本題に戻って、わかりやすいところで言えば裏面はGND以外必要ないはずなのですけど、いろいろ配線されていますし、表面も空き端子がちょっと少ない気がします。こちらも比較してみましょうか。
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IF-80C | PC-8001 |
これはこれは…なんだかPC-8001用拡張ユニット(PC-8011)とか接続する目論見でもあったのかと勘ぐってしまいます。リセット信号がないので限定的な使い方も難しいとは思いますけど…。なお、リセット信号がないのはMZのリセットが正論理で、反転したくても拡張バスコネクタに+5Vが出てないのでインバータを載せることもできなかったから…でしょうね。
製品のCMU-800が必要とした信号とIF-80Cが準備した信号に差があるのは、まずPC-8001とMZ-80K/Cで共通な信号をピックアップして、そこからCMU-800の回路をどうするか検討したからなのではないか…と推測します。電源が使えない分制約があるのはMZの方ですから、MZで使えるようにしておけばPC-8001でも問題ないという理屈です。CMU-800の回路を検討する過程でさらに絞り込まれたのが、製品で使われている信号ということですね。なおAPPLE ][版は最初にアナウンスされた三機種のひとつでありながら、実際の発売はかなり遅れています。CPUも違いますから開発が後回しになってしまいましたかね…。
ところで、さっき心配していた「IF-80Cを接続しているとMZ-80I/Oがつなげられない」件、実はIF-80Cにコネクタをはんだ付けすることで回避できるようになっています。フラットケーブルがついているところの近くに、穴が二列に並んでいるのがさっきの写真で確認できるかと思います。ここに50ピンコネクタを取り付けるのですね。ただ、MZ-80I/Oの回路の事情で、CMU-800と同時に電源を入れることができないという問題が残っちゃってますが…。
I/Fと共に各機種でそれぞれ準備して使用するのがソフトです。どの機種用のもほとんど使い方や機能が同じですが、データの保存形式は各機種のベースの機能に依存しますのでそれも含めて各機種それぞれ用ということになります。
こちらがソフトのトップ画面。ソフトの機能としては「データ入力」「演奏」「保存・読み込み」があります。 |
EDITOR 曲のデータを入力するモードに入ります。EDITORは新しいデータの入力に、POINT EDITは入力済みデータの修正を意識しているようですがデータの呼び出し方が違うだけであとはほとんど同じです。 POINT EDIT PLAY 曲を演奏します。LOOP PLAYは文字通り繰り返し演奏します。 LOOP PLAY TUNE チューニングモードに入るコマンド。 CHANGE PLAY BIAS 演奏時の転調を指示します。CV BIASの方はCV出力の音階を調整します。 CHANGE CV BIAS LOAD FROM CASSETTE カセットテープに対するロードを実行します。 SAVE TO CASSETTE カセットテープに対するセーブを実行します。 VERIFY WITH CASSETTE カセットテープに対するベリファイを実行します。 ALL CLEAR 記憶している曲データの全クリア。
画面の上にどれだけのデータが入力されているのか、メモリの使用状況が表示されるようになっています。
それと、画面には表示されていないですが隠しコマンドがあるようです。SHIFT+Bを押すとシステムのバックアップテープを作成する画面が表示されるのです。それにMZ-700用データのコンバータか何かの機能もあるようです(具体的にどうなってるのかは不明)。
エディタの画面。トップ画面で1~8のキー(入力したいチャンネルを表す)を押すとこちらの画面に移行します。この画面での入力についてはまた後で触れます。 全ての音のデータをいちいち入力していくのはしんどいので、他のチャンネルを含むデータを小節単位で指定回数コピーしたり、指定した音について転調(CV値を増減する)したりなどの編集コマンドが用意されています。 |
同じくエディタの画面ですが、これはリズムパートを入力するモードです。チャンネル0に割り当てられています。 他のチャンネルがメロディを先頭から記述していくスタイルなのに対して、リズムパートはパターン化されることが多いのか、パターンを定義して別の画面でどのパターンを使うのか指定するようになっています。B/S/L/H/Y/O/Cはそれぞれバス/スネア/ロータム/ハイタム/シンバル/オープンハイハット/クローズハイハットを表します。ひとつのパターンに16ステップまで登録できます。 |
こちらが、チャンネル0で作成したパターンをどう使うのか定義する画面(チャンネル9)。パターン画面と分かれているので、画面の往復がちょっとややこしいですね。 |
Oh!MZ1985年3月号のレポート記事には、X1およびMZ-1500用ソフトの画面に「KAMIYA-ST」のクレジットがありますので、そもそもがカミヤスタジオ製か、もしくは後年にカミヤスタジオによって改良されたか、対応機種拡大のための移植を担当したかという事情があるのだと思われます。
またソフトというと、こういったデータ入力ソフトだけではなくて、なんとCMU-800で演奏するための曲データがパッケージソフトとして売られていました。上記のシーピーユーをはじめ、CMU-800を取り扱うショップの広告を見ると喜多郎やYMOなどの曲データ集も販売中であると書かれていたのです。
ウチにもたまたまそういうソフトのテープがあるんですよ。 ダイヤモンド社のDiamond Software Library(DSL)というシリーズの製品で、カミヤスタジオによる企画制作とクレジットされています。このテープはビートルズのヒット曲集で、それぞれ6曲のデータが収録されています。 推測ですが、曲データは純粋な打ち込みではなく、生演奏をサンプリングして変換しCMU-800が処理可能なデータにしたものではないかと思われます。曲全体で小節がひとつしかなかったりして、楽譜から打ち込んだとは考えにくいんですよね。一旦データ化した後、打ち込みで微調整したんじゃないかと思います。 ちょっと面白いのが、このテープには曲データだけではなく先頭にCMU-800制御ソフトも記録されていて、演奏のためにそのプログラムを使用することになっています。特殊なフォーマットで曲データが記録されており、このテープから起動する制御ソフトにJ(JUKE)コマンドが増設されていて、このコマンドでのみロードすることができるようにされています。Jコマンドでロードすると曲の編集やセーブ機能がオフになります。つまりは、コピー防止策ですね。 このテープはPC-8001/8801用なのですが、FM-7/8用にコンバートするテープがあってダイヤモンド社からの直販で入手可能という案内がラベルに書かれています。MZやX1にはなかったの…? |
改めて説明しますが、CMU-800は大阪のアムデックという会社が開発した製品です。アムデックは楽器メーカーのローランドの子会社で、後にローランド・ディー・ジー(Roland DG)に社名変更しています。ローランドDGと言えば、業務用X-Yプロッタやカッティングマシン、切削式3Dプリンタのトップメーカーですね。ちなみにX-Yプロッタの最初の製品はアムデック時代にCMU-800と同時期に発売した、アムデックとしての最初の製品だったりします。
さて、ローランドというと世界に冠たる楽器メーカーであるわけですが、そのローランドが1977年に発売した「マイクロコンポーザ」MC-8という製品があります。いわゆるシーケンサーという機械で、曲のデータを入力しておけばそれを自動的に楽器を制御して演奏してくれるものです。現代ではPC上でDAWと呼ばれるソフトなどを使えばMIDI経由で同じ事ができますが、当時のシーケンサーと言えば8とか16ステップの短いフレーズを繰り返すものぐらいしかなく、また1ステップ毎の表現も細かく調整したりできないものでした。
しかしMC-8の登場で状況は一変します。演奏者を揃えなくても、楽譜がちゃんと読めるとか音楽の素養があれば訓練しなくても楽曲の演奏が可能になりました。日本での価格が120万円と高価だったこともあり爆発的ヒットとはいかなくとも、そのメリットを高く評価した何人かのアーティストによってMC-8を使用した楽曲やアルバムが発表されたりして、さらに多くの人にその有用性が認識されるようになりました。日本では冨田勲やYMOが有名ですよね。YMOはアルバム制作だけでなくライブのステージに持ち込んで人間との同期演奏も実現したことでも知られています。
MC-8がどんなものなのか、私も聞きかじりなので詳しいところは安西史孝氏の「Vintage Synthesizer Museum」内にあるMC-8のページをご覧になってください。またローランドでMC-8が開発された経緯などはITmedia NEWSサイトの松尾公也氏の連載「立ちどまるよふりむくよ」内の「その後の音楽を一変させた『MC-8の父』について」を読むとよいかと思います。
松尾氏はちょうどYMOが有名になり出したあたりでバンド活動を始めていらっしゃいます。ご多分に漏れずYMOに影響されてシーケンサーが欲しくなったわけですが、MC-8はもとよりMC-4(機能アップとコストダウンを実現した後継機ではあるが、それでも高い)なんてとても買えず、そんな時出会ったCMU-800を代わりに買ってバンド演奏に活用する…という顛末を連載の別の回「コンピュータで音楽を作る時代はこうして始まった」で語っておられます。その記事にて、氏は「このCMU-800というのが、実はMC-8/MC-4直系の製品なのだ」と紹介されています。
確かにローランド系の会社の製品です。ですが方や楽器、方やパソコンの周辺機器…何がどう直系なのでしょうか?
まず始めに、MC-8とMC-4の「打ち込み」の解説をご覧ください。
ここで着目するのはデータの管理方法です。MC-8もMC-4も
ということがわかると思います。音の長さを音符記号に従ったものにするのではなくてあくまで時間で表現することで、同じ音の長さでも長く鳴るのか短く切るのかの表現が可能になりますし、楽譜上では八分音符が並んでいるとしてもそれぞれの音の長さを微妙に長く短くすることで曲の感じを変えることができます。
小節での管理は入力する人間用で、演奏には何の影響も与えません。曲の全てをひとつの小節として入力しても構いません。ただ楽譜に合わせて小節にインデックスがついていたら目的のデータが呼び出しやすいとか、編集の時に便利とかいう効果があります。そしてこの小節も中に並べられる音の長さが固定されておらず、曲のあちこちで長さの違う小節があっても何の問題もありません。
そしてCMU-800はMC-8/MC-4のデータ管理方式を引き継いだかのように、全く同じ概念で打ち込みすることになっています。曲をデータとして入力するのが打ち込みですから、曲の構成要素を考えればその管理方法がそうそう何種類もあるわけないのは当然なんですが…ローランド系ですし、MC-8のソフト担当がCMU-800を手がけたなんてことはないにしても、MC-8を直接見て参考にした可能性は高いと思います。
MC-8とCMU-800がどれだけ似ているか、実例をご覧に入れましょう。MC-8のことを調べていた時本体マニュアルにサンプル曲が掲載されていたことを知りまして、ぜひ聴きたいなぁ…CMU-800で演奏させたいなぁと思っていたのですが、なんとRoland MC-8 Micro-ComposerというブログにMC-8のプロトタイプを製作しMC-8の開発にも関与したラルフ・ダイク(Ralph Dyck)氏作曲のODD RHYTHMSと、バッハの2声のインヴェンションの、そのマニュアルのページがアップされていたのです。インヴェンションはYMOが2000-20ツアーや第2回ワールドツアーで最後に流していたことでも知られていますね。
マニュアルには楽譜だけでなくMC-8用のコーディングシートとでも言うのですか? そのままデータが入力できる表があったので、そのままCMU-800に入力してみました。
例として挙げたのはインヴェンションのチャンネル1・第1小節ですが、いやもう本当にそのままです。小節(MEAS)、ステップ、CV、STEP TIME(ST)、GATE TIME(GT)と入力する項目も順番も同じ。結局インヴェンションは完全にそのまま、ODD RHYTHMSはリズムパートを除いてそのまま入力して演奏が可能でした。
先ほどのMC-8/MC-4の動画を見てもわかるとおり、打ち込みはLEDやインジケータなどで表現された、たかだか1行分くらいの表示で確認しながら行わないといけなかったわけですが、CMU-800は複数行を一覧しながらスクリーンエディットできるというのはかなりのアドバンテージです。
しかもMC-8はメモリを拡張しても最大約5400ステップまでしか入力できなかった(メーカー仕様。改造して倍以上の容量に増大して使っていた人はいたらしい)のに対して、CMU-800のMZ-80K/C版では最大約13500ステップまで入力できます。部分的にはルーツであるMC-8を上回っているのです。パソコン本体も含めて全部新品で買うとしても25万円でお釣りが来ます。機能にもよりますがMC-4の本体も買えないでしょうね。
じゃあ全てにおいてCMU-800が上回るのかというとそうでもなくて、例えばMC-8/MC-4にはCV入力なんかもあって生演奏を記録する機能があったりします(ただしMC-8のCV入力は使い物にならないらしい)。出力もチャンネルひとつにCV出力が2つとかGATEに加えてMPX出力というのもあるとか、他の楽器との同期機能もMC-8/MC-4の方が優れている(これまたMC-8の場合は改造しておかないと使えないそうだが)など、さすがパソコン周辺機器に毛が生えた程度のものとは違いますね。
CMU-800の同期機能については、後からCMU-802・COMPU-SYNCというオプションが発売されていて、これを使うとリズムマシンとの同期演奏やMTRの制御、CV出力によるテンポコントロールが可能になります…というところからすると、なかなかCMU-800も侮れないですよね。プロまたはセミプロのユーザーがかなりいたということなんでしょうか。
ということで、「そのまま入力した」ODD RHYTHMSとINVENTIONの演奏をどうぞ。まさにMC-8チルドレンです。あの時、アマチュアが、超プロ用機材MC-8の片鱗を、ごっことかイミテーションではなく、本物の打ち込みとして使えたということなんですよ。すごいですよね?
たまにCMU-800のことをシンセサイザーとする記述に出会うことがあるのですが…確かに電子回路でピアノやドラムなどそれらしき音を合成(シンセシス)しているのでシンセサイザーと言えなくもないのですけど、VCOもVFOもいじれず、LFOもなく、EGの一部だけしか調整できないのでは楽器としてのシンセサイザーの範疇に入れられるのか甚だ疑問…。
数少ない調整ポイント、サスティンとディケイについてマニュアルには次のように説明があります。
サスティン・ツマミ … 音の余韻を調整するツマミです。右へ回す程、余韻が長くなります。
ディケイ・ツマミ … 音が消えるまでの時間(減衰時間)を調整するツマミです。右へ回す程、減衰時間が長くなります。
「音の余韻」と「音が消えるまでの時間」てあまり違いがないような…ここはひとつ実際の波形で確かめてみますか。っとその前に、いわゆるADSRからなるエンベロープについて、CMU-810のマニュアルからおさらいを。
ADSRで定義されるエンベロープでは、サスティン(S)だけがレベルで、その他は時間を設定します。ここでディケイ(D)はアタック(A)時間経過して最高に達したレベルからサスティンレベルに変化するまでの時間、サスティンはディケイ時間経過後ノートオフするまで維持するレベルを意味します。
GATEはつまりノートオン・オフを示す信号で、図中のONとOFFがそのままノートオン・ノートオフを意味します。ノートオンの状態ではADSまで推移し、ノートオフとなってR(リリース)に移行するわけです。
まずDECAYの変化を見てみましょう。CH-1(MELODY)のSUSTAINを最小に固定してDECAYだけ変化させた結果がこちら。どちらも音が消えるまでノートオンしたままにしています。
SUSTAIN最小+DECAY最小 | SUSTAIN最小+DECAY最大 |
---|
時間軸方向がかなり圧縮されているようなグラフなのでわかりにくいですが、短いながらアタック時間は存在します。そしてアタック後に減衰する変化があるのですからこれはディケイですね。ディケイツマミの位置により、ゼロレベルに至るまでの時間が変化しています。最小にしてもゼロになるわけではありません。
次はSUSTAIN。今度は先ほどと逆に、DECAYを最小に固定してSUSTAINだけ変化させてみます。
SUSTAIN最小+DECAY最小 | SUSTAIN最大+DECAY最小 |
---|
…違いがありませんね。DECAYを最大に固定しても、先ほどの「SUSTAIN最小+DECAY最大」の波形がSUSTAINに関係なく現れます。ではSUSTAINの効果はどこに現れるのかというと…。
SUSTAIN最小+DECAY最大+途中でノートオフ | SUSTAIN最大+DECAY最大+途中でノートオフ |
---|
ノートオフした後の波形の変化です。SUSTAIN最大の方の波形は少しわかりにくいですが、ディケイで減衰していたカーブがちょっと歪になっている箇所があります。ディケイの減衰カーブの終点がノートオフの瞬間です。でも、ノートオフの後にある変化ってADSRだとリリースじゃなかったですか…?
つまり、わかりやすさか何かはわかりませんが、CMU-800では本来リリースと表現すべきところをサスティンとして名付けているのです。ADSRでのサスティンは「鳴っている状態が続いている」ということなんでしょうが、CMU-800では「余韻として鳴り続けている」という意味でサスティンとしているのかもしれません。
なお、CH3~6のCHORDはMELODYのSUSTAINツマミを左に回しきった時と同じ音になります。回路図で見ても、SUSTAINの回路が減衰量を固定しただけの構成になっています。またCH-2のBASSはCHORDと同じ回路の先にこのページにあるようなLPFを通して低音を強調するようになっています。
30年以上前に前オーナーから譲って頂く前からこのCMU-800には不具合がありまして、いつかは修理するぞと思いつつ、なかなか手がつかない状態がず~っと続いておりました。その10年ぐらい後、ネットにCMU-800の回路図がアップされているのを発見し、これで故障箇所究明の手がかりが掴めるとは思ったものの大部分を占めるアナログ回路の塊が行く手を阻み…。
最近いくつかのMZ本体などの修理や再生にチャレンジしてそれなりに成功してきたこともあって、さらには最近のシンセ事情も相まって個人的に気運が盛り上がった勢いで取り組むことにしたのです。しかしこんなに苦労するとは思わなかった…。
電解コンデンサの交換
液漏れしていたとか、これが原因の不調があったとかではないのですが、延命化を期待して全ての電解コンデンサを交換しました。アナログ回路なので大量に使われているかと思いきや、回路特性のバラツキを押さえるためかフィルムコンデンサが多用されていて、作業がめちゃくちゃ大変…という程でもありませんでした。
参考までに、CMU-800の電解コンデンサ一覧を挙げておきます。
耐圧 容量 個数 部品番号 25V 47uF 2 C1,C2 16V 1000uF 1 C3 25V 100uF 2 C4,C5 16V 47uF 1 C6
耐圧 容量 個数 部品番号 25V 100uF 2 C4,C5 16V 10uF 4 C6,C7,C30,C40 16V 100uF 1 C8 50V 0.47uF 2 C22,C76 50V 1uF 6 C60,C63,C81,C83,C84,C86 25V 4.7uF 1 C75 50V 2.2uF 1 C82
耐圧 容量 個数 部品番号 50V 1uF 11 C3,C4,C5,C8,C19,C30,C102A,C102B,C102C,C102D,C102E,C102F 16V 47uF 1 C9 25V 47uF 2 C10,C16 50V 10uF 1 C33(無極性)
TEMPO回路の修理
どういうわけか、テンポつまみを右に回して早いテンポにすると、TEMPO信号が消失して演奏ができなくなるという問題がありました。これが前オーナーの時代からの不具合で、譲って頂いた際に簡単な発振回路を前オーナーに作ってもらい、それを外部クロック入力に入れて演奏させていました。一応それで機能的にはなんとかなるんですが、発振周波数の調整が演奏として正しいのかどうかわからなくなってしまって、せっかくテンポ調整の指示があっても元の曲を知らなければめちゃくちゃなテンポの演奏を聴くハメになってしまう可能性があったのです。というかそうなりました。
前オーナー曰く「発振回路だろうからコンデンサを交換したら治るんじゃないかと思うんだけど…」ということだったんですが…原因は意外なところにありました。
結論から言うと、発振回路を構成していたICを交換しました。経年変化によって症状は進みましたが、原因自体は経年変化とは関係ありませんでした。
発振回路はこんな回路になっています。NAND(CMOSロジックICの4011、正確にはHD14011BP)の入力を結合したインバータを3つ並べた、リングオシレータがその正体です。
怪しいと思われていたコンデンサ・C18はフィルムコンデンサだったので、あまり容量抜けなど心配しなくて良さそうです。当てが外れたのでオシロであちこちの波形を確認しようとしたのですが…波形がどうにもおかしい、VR11を回しても速度の変化があまりないような? そもそも思ってたような波形の出る回路ではなかったとか? …それに指で触ると波形が変わったり、また別の発振をしているような、どうにも不安定な動きのように思えます。
実はCMU-800を分解してここの回路を見た時から不思議に思ってたんですが、このIC3がナナメに浮いて実装されてたんですよね。動いていたならまぁいいかということで初めは気にしてなかったんですが…よくよく観察してみると、これ2番ピンが基板に刺さってないやん…。
つまりIC3を基板に取り付ける時に2番ピンが内側に曲がってしまい、つっかえてナナメになったまま、ざっと見た感じではちゃんと刺さってるように思えるので、そのままになってしまったということみたいです。前オーナーに確認してみたところICの交換まではやってなかったようですし、交換するのに必要な分解のために緩めるネジがネジロックで固められたままでしたから、足が曲がっていたのは製品の製造時からということになります。前オーナー曰く最初はちゃんと動いていたということなので、製品の製造検査でもパスしてしまったことから、そのまま市場に流出したのでしょう。
CMOS ICの入力を開放するのはラッチアップなどによる故障の原因にもなりますし、そこまでではないにせよじわじわと痛んできて動作が変わってきてしまったんでしょうね。どれだけ壊れたのか判別のしようもないので、幸いにして同じメーカー製のIC(HD14011BG、セラミックパッケージ品)が入手できたこともあったのでそれに交換しました。
右のICが4011、ムダに高級感漂うセラミックパッケージ…(笑)。もとは左にある4013と同じプラスチックパッケージだったんですけどね。 |
交換後は、思っていたとおりの波形が思ったような操作の変化で発生していることをオシロで確認できました。これで長年の懸案が解決した!
…そう思っていた時代が、私にもありました…。
インターフェースの端子のクリーニング
TEMPO回路が修理できたならもう大丈夫! とばかりにMZ-1200をセットアップしてみたんですが…CMU-800はウンともスンとも言わないのです…。この無反応ぶりは、回路トラブルというよりは、インターフェース端子の接触不良のような…?
そこでインターフェースのカードエッジ端子と、CMU-800のインターフェースケーブルの先にあるカードエッジコネクタの端子をそれぞれクリーナーで洗浄してみました。やはりここに問題があったらしく、無反応ということはなくなったんですが…。
LSIの交換
再びMZ-1200をセットアップしてみると、なんと今度はMZ-1200が暴走してしまう…それもCMU-800の電源の状態に関わらず、なのです。インターフェースからCMU-800のケーブルを取り外せば暴走しなくなりますから、CMU-800側に問題があることは間違いないでしょう。
BASICからCMU-800を直叩きしてトラブルシューティングするどころの話ではありません。CMU-800を接続した時のみおかしなことになるのですから、CMU-800が何か悪さをしているはずです。インターフェースでやりとりする信号のうち、その流れがMZ向きになるのはデータバスだけです。ということは、データバスを伝っておかしな信号がMZを暴走させているということでしょうか?
ひとまずインターフェースの先からCMU-800内のケーブル終端まで、全ての信号が導通していることを確認した上でLSIのデコード回路がおかしな働き(回路が動いてないのにチップセレクト信号が'L'になるとか)をしてないかチェックし、問題ないことがわかったところでデータバスの状態を見てみたところ…。
MZに接続せず、CMU-800に電源が入った状態だと誰もLSIを駆動しようとしないのでデータバスも開放されており、信号線上にはプルアップの関係で+5V(負荷の条件や部品の劣化具合によりこれより低い場合もある)が検出されるはずなのですが、8本中2本に1~2Vなど妙に低い電圧が現れており、どこかに故障箇所があるらしいことが推測されました。
そこで、8255と8253をひとつずつ取り外してその不審な電圧が変化するか確認してみたところ…最後の8253を取り外して、ようやくデータバスが本来あるべき状態に戻りました。8255と先に取り外した方の8253を実装し直しても大丈夫、新たに調達した8253を代わりに実装しても大丈夫…。
左の8253が交換した新品、右のが動作する従来品。 ところで、使われていた8253はシルクを見ると「D8253C-5(A)」と刻印されていまして、その「(A)」などというサフィックスは今まで見たことがありませんでした。選別品でしょうか? 回路図を見ても「NEC only」とか書かれてますし、指定した音程にて音を発する部品ですから、何か特別な理由があったのか…。 だったら音を揃える意味でももう片方も交換しておくべきだったかな? |
CMU-800を元通りに組立ててもう一度MZ-1200と接続しても…暴走しない!
レギュレータの交換
8253の交換のついでに、電源部にある三端子レギュレーターも交換しました。調査の過程で各所の電圧を測ってみると、妙にそれぞれの電圧が低かったりしたもので…。
フェーダーボリュームの交換
ようやく修理完了ということで、Twitterに演奏してる風景でもツイートしようと動画撮影を始めたんですが…なんか雰囲気が変。一部無音になってるとこ、前からそうだったっけ? …あっ! リズムパートが鳴ってないのか!
試しに他のパートの音量を全部下げてみても、リズムパートの音が聞こえてきません。リズムはCV出力されないこともあってLED表示がなく、見た目に動作しているかどうかわからないんですよね(LEDと発音は別なので実は目安にもできないんだけど)。
そういえば各パートのサウンド出力はMIX出力と別だったよな? と思い出してRHYTHM出力につなぎ替えてみると、リズムパートが出てるじゃないですか! この出力とMIX出力との間はフェーダーボリュームしかありませんから、このボリュームに問題がありそうです。
再び分解して件のボリュームの端子をあたったところ、他のパートのとは明らかに違う抵抗値が計測されたり、ツマミを動かした時の値の変化がありません。接点クリーナーとか接点復活剤とか吹き付けてみましたが変化なし。どういうことかと基板から取り外して分解してみたところ…。
ボリュームの基板に2本の線がありますね。濃い方がカーボンでできていて抵抗の本体、薄い方が銀かなんかだと思いますがツマミにつながっているスライダーにある端子と接触するところで抵抗値はほぼゼロになっています。この2本の線を端子でブリッジすることで抵抗を可変するわけです。 薄い方の線の上の方なんですが、濃い方の線の上の端近辺に近いあたり、ちょっと色が変わっていますね。ここをよく見ると導電材が剥離していて、スライダーの端子に電気が流れないようになっていることがわかりました。ここは抵抗値がほぼゼロのポジション、つまり最大音量のところですから、そりゃいつも接触していますよね。それで削れたのか…。 |
修理できないか検討したんですが、耐久性含めうまくはいかなさそうということでボリュームを交換することにしました。しかしこれが大変…元のはアルプス製だったのですが現行製品に互換性のあるものが見当たらず、他のメーカー品でも特性や形状で替えがききそうなものも見つからない…。
互換のための条件が、厳しいんですよ。
カーブは妥協しましょう、パネルに固定さえできれば…レバー長さは長い分には最悪は切り落とせばいいですし、端子配置が異なっても基板に差し込まず配線できればなんとかなります。それでも…見つからないのですよねぇ…。
古い部品を専門に扱う日本国内のショップもダメなので、海外を含めてしつこく探した結果、特性一致・形状ほぼ一致の中国製と思しき製品をeBayで発見…探し始めてからおおよそひと月かかりましたが、ようやく入手することに成功しました。端子だけちょっと違った(そのまま実装すると背が高くなってしまう)のですが、ニッパーで加工すれば問題なし。
光り輝くスライドボリューム(右から2番目)…。 ボリューム自体にホコリの侵入を防ぐ黒い布が貼り付けられていたのですが、元々CMU-800の筐体の方に同じ目的の紙みたいなのが貼ってあることもあり、ネジ留めの際に邪魔だったので剥がしました。 |
故障の原因を考えるとどのスライドボリュームも似たような使い方をしているので、全部交換した方が良かったのかもしれませんが…部品自体の寿命がどれぐらいのものなのか予想がつきませんので、ひとまず1本だけの交換に留めました。スライドボリュームは5本買ってあるので、問題があったら都度交換することにしましょう。
なにはともあれ、これでリズムパートの音がMIX出力から出るようになりましたし、昔と遜色なく調整することができるようになりました。
やったー、CMU-800修理完了!演奏させてるのはカミヤスタジオ編曲の「10番街の殺人」。全パートばっちり鳴ってるぜ! pic.twitter.com/qinMKW42ko
— Oh!石 (@oec_Nibbleslab) 2019年3月16日
せっかくCMU-800の修理に成功したことですし、このまま箱にしまい込むのはもったいないので常設したいところなのですが、場所の都合やI/Oボックスと接続が競合してしまうことからMZと一緒に置くのが難しい状況です。
一方、パソコンではなく楽器側からのアプローチとして、CMU-800をビンテージ音源と捉えてMIDIで鳴らせるようにする試みがあります。MIDIで制御できるとなると、チープではありますが逆に「味がある」とも言える6音+リズム音源として使えるだけでなく、CV/GATE変換器にもなるんですよね。最近になってパソコンもI/FもソフトもないけどCMU-800本体だけ手に入れたような人の中にはMIDI化を目的にしていた方もいらっしゃるんじゃないでしょうか。
そもそも私は、パソコンデスクの棚の上がごちゃごちゃしてたのを整理した際、せっかくスペースができたのだからCMU-800なんか置いたらカッコイイんじゃないかと…つまり単なる飾りのつもりだったのが、以前ふとした気の迷いで買ったKORGのmonotribeが2013年のアップデートでCV/GATE入力が可能になっていたことを6年越しで知り、それならCMU-800とmonotribeで連動させられるやん…昔からの夢がひとつかなうやん! という動機で修理を始めたという経緯もあったので、先ほど何やら建前を述べましたがMIDI化は当初からの予定だったりしたわけでして…。
これまでのMIDI化のおさらい
ここでちょっと、CMU-800のMIDI化改造の歴史を振り返ってみましょう。
いろいろ調べてみたところでは、CMU-800をMIDIで直接制御できる仕組みを考案したのは2001年頃のKomura Takaakiさんによるものが最も古い製作例のようです(回路図や写真は失われている)。この時はAKI-80を使用していました。
その後2004年になってLITZHAUSさんによる製作例(AKI-H8を使用)とRJB(RadioJunkBox)さんによる製作例(PIC16F876を使用)が相次いで公開されました。特にRJBさんのものは動作する様子がYouTubeに投稿されたことから海外のオーナーからも注目を集め、それをお手本にして実際に作った人も現れるほどになりました。
RJBさんは2008年に改良版としてマイコンをATmega168に代えたバージョンを発表。さらに2011年にはMIDI処理を機能アップさせ本体を改造せずにケーブルの先に取り付けられるようにした2011モデルを発表し、頒布を始めます。その後頒布はbeatnic.jpさんに引き継がれ、今でも入手可能です。
私もその2011モデルを買おうとCMU-800を修理しながらいろいろ準備していたのですが…その…ちょっとお高いのですよね…。もちろん個人による頒布物ですし、綺麗なカバーもついていて、テスト済みなのですから部品代はもとより手間賃を考えれば妥当だと納得しているんですが…つい思ってしまうんですよ…なまじ普段から電子工作をしてるだけに、これ作れるんじゃないかと…。
ただ、RJBさんがブログを閉じてしまいましたのでファームや回路図が入手できない状態でしたし、何より買えば確実に動くのですから、製作の面倒さも相まって気分がなかなか盛り上がりませんでした。やっぱり作るか…いや面倒だなやっぱり買うか…いや高いしなやっぱり作るか…と逡巡していた時、見つけたのがもあさん(morecat_lab)のUSB-MIDI版です。
ストロベリーリナックスのAT90USB162ボードを内蔵化改造したUSB-MIDI版は、ACアダプタが不要なのとCMU-800との電源投入順序を問わない(2011モデルは初期化の都合上CMU-800→MIDIアダプタの順に電源を入れる必要がある)など魅力的な特徴があるのでかなり心惹かれたのですが、開発環境を整えるのすら面倒とかまだ踏ん切りがつかなかったのですよね。
最後に背中を押されたのが、もあさんのArduino UNOをUSB-MIDIデバイス化するという「MocoLUFA」でした。個人的にArduinoというのはとにかくプロトタイピングに便利というだけで完結したプロダクトにはなりにくいというイメージがあったのですけど、MocoLUFAは完全にUSB-MIDIデバイスに化けるものなので今までとひと味違います。開発環境の導入も手軽ですしね。
Arduino版MIDI I/F
というわけで、サクッと作ってみました。
CMU-800との接続部をシールドとしてまとめ、Arduino本体にスタックするだけの簡素な構成のハードウェアとしました。MIDI音源として使用する機会が多くなるとしてもたまにはMZと接続したいですから、2011モデルと同様にケーブルの先のカードエッジコネクタに装着できる形式にしました。 作ろうと思ったそもそもの動機が高いから…ということもあったので、とことん安い部品を使おうという方針で選定しました。Arduino UNOは定評のあるELEGOO製UNO R3互換品を使い、ケースもアクリル製の安いのがあったのでそれを選びました。 最近は2.54mmピッチのカードエッジ端子のあるユニバーサル基板も少なくなってきてますが、いろいろ探した結果電子部品通販 M.A.D.製MSX用ユニバーサル基板を使うことにしました。もともとMSXのカセットに収めるためのものなので基板外形がいびつですが、加工するのも面倒なのでそのままです。 |
ユニバーサル基板を直接Arduinoに装着できれば良かったんですが、ご存じのとおり逆挿し防止のためか一部端子がずれていますので、サンハヤトのArduino用ユニバーサル基板「UB-ARD03」を使って整合を取るようにしました。AB-ARD03は世代の古いArduino用に発売されたものでUNOには端子が足らないですが、今回の工作には十分です。もちろんいわゆるバニラシールドでもいいんですが、探した時にはUB-ARD03の方が安かったんですよね。 この基板をマルコ精密工業の基板用リードフレームなんかでスタックしています。またArduinoと接続するヘッダコネクタは、Amazonで探しまくって少し長めの端子のものを買って使いました。 |
MocoLUFAはATmega16U2側のICSP端子の4番と6番端子をショートすると、USB-MIDIではなくUSBシリアルとして動作します。するとシステム的には本来のArduino
UNOとして使えるようになります。ユーザーのスケッチはそのモードにて書き込むわけです。 基板の穴とかを利用して少し削り、シールドを装着した状態で延長ケーブルを抜き差しできるようにし、ケーブルの先にはショートプラグを付け外ししながらデバッグを進めました。 |
安さにこだわって部品を集めた結果、だいたい3000円くらいでできちゃいました。大量生産する汎用品ならではですね。
工作らしい工作はシールドぐらいしかなかったのですが、その回路図がこちら。
データバスの8ビットをまとめて取り扱えるようPortDを使いたかったのですが、シリアルポートもここなので綺麗な使い方ができず(GPIOにしちゃうとMIDIデータが受けられなくなる)…一時はMEGAも検討しましたがAD入力もGPIOとして使えるということに気づき、4ビットずつ分けて割り当てることで解決しました。
データバスのD0ビットに82kΩのプルダウン抵抗がついているのは電源チェック機能対策です。USB-MIDI版はCMU-800の電源を監視して、オフだったらオンになるまで待ってその後初期化するという仕組みを設けることで電源の投入順序を不問にしていたのですが、I/Fケーブルには電源はありませんので同じ方法では監視できません。
しかしCMU-800内部でデータバスが開放対策としてプルアップされていることから、誰もバスを駆動しなければ電源電圧が現れているはずです。そこで、通常は初期化と音程設定・GATE操作で出力としているデータバスを、D0ビットのみ一時的に入力にして、読み出される値によって電源投入状態を把握しようと考えました。プルダウン抵抗は電源非投入状態にて確実にD0ビットを'L'にするためのものです。内部のプルアップ抵抗の値が10kΩなので、通常時に影響を与えないよう大きめのプルダウン抵抗を選んでいます。
MIDI I/Fのファームウェア
ソフトは基本的にUSB-MIDI版の移植です。もちろんArduinoですのでその流儀に則った書き方に変えていますし、Arduino MIDI libraryが使えますのでMIDIパーサーはライブラリに任せ必要な処理をコールバックで記述するようにしています。初期化後の電源断に備えたチェックとモジュレーションのためのタイマ割り込み用にMsTimer2ライブラリも使っています。
データバスを上下4ビットずつ分けたのと電源監視について多少実験しながらのコーディングでしたが、実働1日程度でできてしまいました…。実はその後HDDがクラッシュして保存前のソースが消失してしまったのですが、その復活にも2時間程度しかかかりませんでした。RJBさんともあさんによるプログラムの完成度が高かったので、肝心のMIDI部分についてあまり苦労するところがなかったからだと思います。
一旦完成した後、だんだん気になってきたのでファームを改造してチューニングモードを追加してみました。というのも、発音用の基本周波数が変わらないのに、CMU-800のサービスノートではA=442Hz、MIDI化ファームではA=440Hzと定義されており、またよくよく調べてみると8253への音の設定値がそれぞれで微妙に違ってるんですよね。それにこいつの心臓部はアナログ回路、経年変化もするだろうに出荷以来調整されたことのない機体もたくさんあるんじゃないですか? これでは正しくMIDIで演奏していることにならないかも…?
古いものですしあまり厳密に考えなくてもいいのかもしれませんが、せっかくですので、MZ用のソフトを解析してチューニングモードを追加したのです。具体的にはコントロールチェンジの#019、General Purpose Controller 4と呼ばれる汎用設定機能を流用して、チャンネルは関係なく、0以外の値ならチューニングモードに、0なら通常モードになりますシステムメッセージのチューンリクエスト(0xF6)を一度送ることでチューニングモードに、もう一度送ると通常モードに戻ります。探せば任意のメッセージを送ることができるユーティリティがありますから、そういうのを利用してみて下さい。
さらに、CMU-800のクロック出力を利用して、MIDIクロックを発生させる機能も追加しました。CMU-800のCLOCK OUTとCMU-800シールドのミニジャック(回路図では上の方にあったCLOCKコネクタ)を両端にミニプラグがついたコードで接続すると、TEMPOツマミの調整に応じた間隔でMIDIクロック(0xF8)がMIDI出力から得られます。
CMU-800はバス経由でテンポのタイミングを知ることが可能なのですが、そのレジスタをポーリングで監視することになり、処理としてはムダな動きが増えることから、もあさんのUSB-MIDI版を参考にクロック信号の変化を割り込みとして捉える方式を採用しました。この方法が良いのはコードを外してしまえばMIDIクロック出力を停止させられるところでして、スイッチを増設したりソースを書き換えたりしなくても手軽にON/OFFできるのですよね。
もちろん、CMU-800のCLOCK INにクロック信号を入力すれば、MIDIクロックはそちらのテンポで出力されるようになるのは機能的に従来通りです。
MIDIクロック出力は、実現するかどうかは不明ですが将来のための布石です。なんにせよこれでMIDI環境下でもCMU-800が持つ全ての機能について役割を持ち操作・活用が可能になったというわけですね。
できたプログラムはこちらで公開しています。
MocoLUFAでUSB接続に限らず、例えばSparkFun MIDI Shieldのようなものを使うと普通のMIDIによる接続もできます。見た目と手軽さを買ってDINコネクタのものを使ったおかげでゲタを履かせないと取り付けられなくなってしまいましたが、先般のMIDI仕様のバージョンアップによりTRS(いわゆるミニジャック)コネクタによるMIDIも標準化されましたので、MIDIシールドの背を低くする工夫は可能です。 SparkFun MIDI Shieldを使う場合は、DIN以外の付属パーツを一切取り付けず、LEDがつながっているパターン(D6端子とD7端子)をカットするようにしてください。ソフトウェアシリアルを使う場合は、CMU-800シールドで使われていない端子を使うよう改造が必要です。 もうひとつ、MocoLUFAを書き込んだArduinoはSparkFun MIDI Shieldを使えないようです。オリジナルのものを使いましょう。 |
演奏させてみた
試しにいくつか曲データを再生してみたのですが、今時のMIDI音源はチャンネル数もたくさんありますしどれもポリフォニックで発音できますから、それを想定して作られた曲をCMU-800で鳴らすとあっさり破綻してしまいますね。モノフォニックなチャンネルにポリフォニック想定のデータを流し込んでもエラーにはならないのですが、音階の高い音が優先して鳴るので当然和音にはなりませんし一瞬だけ鳴る音があったりデータ数の多さからテンポすらおかしく聞こえます。Arduino UNOのクロックは標準で16MHzなので、20MHzに改造すると多少マシになるかもしれませんが、それよりは鳴らせるチャンネル数に合うようにデータを絞る方がいいと思います。
いろんなソフトから鳴らせるようになったので、X68000エミュレータXM6 TypeGを使って「出たな!!ツインビー」の1面BGMを演奏させてみました。
主旋律がコードのところにあったりとか、CMU-800のパートとは違う構成で鳴らしているので、本来の曲のイメージとは違っちゃってますね。パートを入れ替えできるツールがあるといいんですが…。
それと、クロックと8253への設定値(分周比)の制約でしょうが、高音になると音痴になるようです。設定したい音階の周波数に対して、カウント値が小さすぎて誤差が大きくなってしまうのが原因でしょう。こればっかりはCMU-800の特性であり、MIDI化しなくても抱えていた問題だと思うのですが、特にゲームBGMなんかを鳴らすと高い音階の音が多くて違和感が目立つのは残念なところ…。
BGMが7パート使っていることもあり、せっかくなのでCH-7をCV入力可能にするファームにバージョンアップしたmonotribeに担当させてみました。
monotribeのCV入力はSYNC入力を転用しているので、そのためにはCVとGATEを4極ミニプラグに変換するケーブルなりアダプターなりが必要になります。もちろんCV/GATE全盛期にそんな変換ケーブルとかありませんから、用意するにしてもなかなか面倒です。 実はbeatnic.jpさんが「#006 Breakout Box for Monotribe」としてそういうアダプターを販売されてはいるんですが、単に配線するだけですからねぇ? というわけでこちらも手作りしてみました。 いろいろ考えた末、ダイセン電子工業の「3.5φイヤホンジャック変換基板」とサンハヤトの「4極オーディオジャック変換基板 CK-42」のお尻を突き合わせて、必要な線(CV,GATE,GND)を接続することにしました。そして、モノラルミニプラグ×2→ステレオミニジャックと両端ステレオミニプラグ、両端4極ミニプラグのケーブルを併用させると変換アダプターの完成です。 ケースに入れたいところですが、何らかのケースの想定をせずに配線だけしてしまったので、適当な板に両面テープで貼り付けることでお茶を濁すことにしました。 |
一応monotribeもシンセサイザですが、ウリである「KORGのMS-20相当」なのはフィルタ回路だけで、フィルタに通す前の音を作る部分は貧弱ですね。フィルタも下手に通すとすぐ過激に変化するのであまり使えません。ちゃんとした音が欲しいならCMU-810を手に入れろ…ということになっちゃうんでしょうが、今CMU-810は暴力的に高騰してますからね…。