PC Speaker ミュージック

この文章はYerzmyeyさんのブログを翻訳したものです。訳の精度は高くありませんので原文と一緒に読まれることを望みます。翻訳の際にPCスピーカーと訳すと外付けの小さなスピーカーを想像してしまうと考えPC speakerとしました。Wikipediaには"スピーカー(コンピュータ)"となっています。「昔さ、ビープ音の周波数を早く入れ変えてさ、和音を出したものだ(笑)」という誰かが話していたのを思い出しました。Pythonなどのプログラミング言語でこういうことをインタラクティブにやってる人いなかったかなあ〜。

>>>それでは本文

PC Speakerミュージック:イントロダクション
原文 http://bit.ly/tCRlQ3

PC Speakerは、ほぼすべての古いPCでみることができる、もっともポピュラーな1bitデバイスの1つ。まだPC Speakerの音楽的な能力は一般に見落とされていて、それについての信頼に足る情報が乏しい。この記事では歴史、現状、そしてPC Speakerミュージックの手法について手短な概要を書いてみたい。

PC speakerは実際に、ぼくたちが愛用するSpeccy(訳注:SpeccyはZX Spectrumのエミュレータ?)のビープ音発生器と同じように動作する。PC speakerでサウンドを生成するには、ポート61hのビットを0と1に設定するだけで、オンとオフが切り替えられビープ音がでる。タイミングはふつう、1,193,182 Hの周波数で動作するProgrammable Interval Timer (PIT)チップのチャンネル2によって制御される。より複雑な合成方法はメインのシステムタイマー(PIT チャンネル0)をかわりに使う。

モノフォニックシンセシス

Speccyのビープ音発生器とは異なり、PC speakerは、単純な使用目的のためにCPUを停止させない”バックグランド”で再生できる。それゆえモノフォニックサウンドは古いDOSゲームでよく見受けられた。興味深いモノフォニックのPC speakerのサウンドトラックをもったPCゲームの例をあげよう。

The First Samurai」NickJonesとMartinWalker作曲
The Secret of Monkey Island」Michael Land作曲
Lotus III」Pat Phelan作曲

モノフォニックシンセシスのアプリケーション

QBasic(DOS)
言わずと知られたMS-DOS BASICインタプリタは、PC speakerでモノフォニックミュージックを再生するための簡単な方法を提供する。BEEP、PLAY、SOUNDコマンド。周波数と音符の長さを叩くだけですべての設定は済んでしまう。QBasicでどんなことが可能かを示めした素晴しい例がココでみられる。

Monotone(MS-DOS)
http://www.oldskool.org/pc/MONOTONE

もうひとつ、とても強力なモノフォニックアプリケーションは、Trixerの手によるMonotoneである。MonotoneはProtracker互換で、Protrackerのエフェクトさえもサポートしている。このプログラムはCPU効率がたいへんよく、128KのRAMでも動作するのでかなり古いマシンであってもいけるだろう。Monotoneはアルペジオを介し4チャンネルでミックスできる。アルペジオは時間に正確なので、かなり精度の高い”フェイク”ポリフォニーが作成可能。Trixerはもともと実際にポリフォニックシンセシスするつもりだったのだが、不幸にも開発段階がアルファにとどまったままだ(訳注:作者のwebを確認したところソースは公開してるから後は自分でと言っている模様)。プログラムがどう動作するかココでチェクして。

Bleeper Music Maker (WinXP以降)(訳注:95や98はスピーカの問題でダメだと、だけど別の方法もあるそうでinfo.txtを確認して)
http://robbi-985.homeip.net/hosted_programs/update/bmm/index.html

PC speakerでモノフォニックミュージックを作るもっとも強力なアプリケーションのひとつは、 Robbi-985 aka SomethingUnreal の手による Bleeper Music Maker (BMM) です。BMMの特徴は複数のチャンネルをアルペジオを介してミックスさせる。全体のサウンドがいくぶん粗雑ではあるのだが、アルペジオの周波数はカスタマイズできる。BMMはキックドラムを作れるポルタメント効果を含んでいる。BMMはMIDIの入出力をサポートしているので、ライブパフォーマンスに使用できる。さらに標準MIDIファイルを再生可能。サウンドのデモはココにある。

Pulse Dream / Pulse Tracker (DOS)
http://jackdawinteractive.com/pulse.htm

Frederik "Eagle" Larsson の手による The Pulse package は2つのアプリケーションをもっている。Pulse Dream と Pulse Tracker。Pulse Dreamはちょっと複雑なエフェクトシンセサイザー。Pulse Trackerは使えるエフェクト(もちろんアルペジオも)をもったシングルチャンネルのビープ音シーケンサーだ。クールなのは Pulse Dream で作ったサウンドエフェクトを Pulse Tracker で使えること。さらにPulse Trackerはまた、それ自身がドラムエディタを内蔵している。デモ音源はココにある。

Slowtracker 2 (DOS)
http://www.pouet.net/prod.php?which=17652

もうひとつ、水平パターンレイアウトを持った3チャンネルのアルペジオのトラッカー。使用はとても簡単で、エフェクトをまったく持っていない。

.0303 (Win95以降)
http://www.wizardmaster.com/bludgeonsoft/0303/

Bludgeonsoftによって作られた.0303はPC speakerのライブシーケンサーである。私は実際にこのソフトウェアを試していない、ソフトのリストを完璧にするためだけにここに載せた。注意:ダウンロードしたソフトウェアにマニュアルが含まれていない。(訳注:オンライン上にあります。試したところエフェクトとかはなさそう。見た目派手だができることは限られていそう。)

Pianoman (DOS)
http://cd.textfiles.com/psl/pslmonthly25/words/dos/mus_spkr/pianomn.zip

このエディタは1984年当時たいへん人気だった。素晴らしいアルペジオを作れたが、なにせ曲を作るのに時間がかかる。

Melody Maker (DOS)
http://cd.textfiles.com/psl/pslmonthly25/words/dos/mus_spkr/mmv30.zip

シンプルを好む人にとって、あまりにあまりに複雑である。

ポリフィニックシンセシス

PC speakerでポリフォニックミュージックを合成するということは、重要な合併症に苦しむことになる。ZX Spectrumとは異なり、CPU速度は機種によって大きく異なる。古いPCために設計された多くのアプリケーションは、それゆえに新しい機種で正確に動作しないだろう。時々、これらの問題は小さなユーティリティでもってCPU速度を落とせば回避できることもある。

Music Construction Set (1984年)
アバンダンウェアのサイトで見つけられる

Music Construction Set はもともと1984年にWill Harveyによって Apple II のために開発された。PC speakerのアップル版であるネイティブな Apple II hooter(警笛?)をサポートしている。MCSはその後、販売元のElectronic ArtsによってPC(ほかのいくつかのプラットホームも同様)に移植された。今日にいたってもMCSはPC speakerでリアルタイム合成したポリフォニーを作り出せるプログラムの一つである。MCSは4オクターブの範囲内で4チャンネル、5オクターブの範囲内で3チャンネル提供する。シンセシスは、SpecialFXエンジンのようなZx Spectrumビープ音発振器のルーチンで知られるふつうのパルス幅変調(PWM)方式に基づいている。MCSは起動時にCPUパフォーマンスをチェックするので、もしPC speakerではなくピエゾスピーカーでも、現代のハイエンドPCであっても正常に操作できるだろう。短いサウンドのデモがココにある。

Note Baron (1989年)
http://cd.textfiles.com/psl/pslmonthly25/words/dos/mus_spkr/nbaron.com

Forben Softwareによって作られたNote Baronは不特定の多数の音声を再生できる、すくなくとも8つは、大幅なデチューンや、サウンドの質を下げないで可能だ。サポートされている相対音感の範囲はF-1からF-4までだが、絶対音感は曲の速度によって異なる。全体的な音質は音声の多さに比較して驚くほど良い。合成は適正なタイミングのPWMを基礎にしているようだ。エディタはFLやその類似ソフトウェアでみられるピアノロールの簡易版のようだ。Note Baronはまたcpu速度を自動的にチェクする。残念ながらフルのプログラムはネット上を探したのだがないんだ。上記のリンクにあるのは、単一のパターンだけを生成できる制限つきのデモバージョン。

Polyphon (1989年)
http://cd.textfiles.com/psl/pslmonthly25/words/dos/mus_spkr/polyphon.zip

Edward Grigassyによって作られたPolyphonパッケージはコンパイラ、プレイヤー、そしてSteve Muenter(訳注:IBM PCで3和音を成功させた方らしい)の"3和音/ポリ音楽"アセンブラのルーチンをおこなういくつかのラッパーを供給する。最大3声までがサポートされる。サウンドはかなり独特だ。実際にエディタが提供されていないために、Polyphonの音楽を書くのはかなり面倒。MMLスタイルの音符データはシンプルなテキストファイルからコンパイルされる。再生スピードは手動または自動的にCPU速度を検出して調整される。

VMusic (1989年)
http://cd.textfiles.com/psl/pslmonthly25/words/dos/mus_spkr/vmusic.com

Ted Holdenの手による3声ルーチン、Polyphonにインスパイアされたためか、似た機能と奇妙な音が特徴的。

_____________________________________________

デジタルシンセシス

PC speakerでデジタルミュージック(WAVE)を再生するのに一般に2つの方法がある。最初の方法はスピーカにそれを送って、8または16ビットのWAVファイルを1ビットにダウンサンプリングすることでおこなう。特殊なアルゴリズムがダウンサンプリング処理で使用されていない限り、これは音質低下を引き起こした、主に話し声に使われた。

次により一般的な方法は、修正されるCMオーディオデータを処理するよりも早くスピーカに送ることでおこなわれる。4から8ビットで時間枠内(これは収縮したスピーカのコーンが元の状態に戻るまでに必要な時間)でスピーカに送られる。この方法は全体の出力音量をかなり低くするので、小さなPC speakerでは結果がかろうじて聞こえるだけかもしれない。

デジタルサウンドエフェクトは、早くも1982年にPC speakerで聞くことができた。サンプルされた声を含んだ最初のPCゲームは「Dunzhin」。完全なデジタルミュージックをもった最初のゲームは、Wizball、Crazy Cars、そしてMach3と1987年に登場し始めた。

1988年頃にAccess Softwareは特許を取得、彼らはPC speakerで6ビットPCMを再生することを発明したと主張した。RealSoundと名付けられたこの方式は「Mean Streets」、「Links or Countdown」のようないくつかのタイトル画面で使われ、Loricielsの「Space Racer」とLegend Entertainmentの「Loriciels and Spellcasting101 」などのサードパーティ製にも同様に使われた。PC speakerを介して再生されたゲームのサントラの例は、ココで見ることができます。

1991年に Mark J. Cox は286やそれよりハイクラスのマシンのPC speakerをサポートした最初のMODプレイヤーのひとつ 「ModPlay」 をリリースした。

「Fasttracker 1 と 2」、「ScreamTracker 2.x」、「Impulse Tracker」、そして「ModEdit」を加えた、従来からあるいくつかのMS-DOSトラッカーがPC speakerをサポートする。だがミキシングがいつもスピーカ出力に最適化されていないので、特定のエフェクトコマンドが無視されれるかもしれない。これらのトラッカーのほとんどは6ビットPCMアルゴリズムを使用する。「Fasttracker 1」はユーザーに6ビットPCMと本物の1ビットシンセシスを選択させる。SILent REQuiemの手による「Fasttracker 2」のPC speaker上の例はココココある。

PC speakerでMODを高品質に再生させるのに、Inertia Player のような特殊な専用プレイヤーを通すという別の手段がある。音の例はココ

公式マイクロソフトドライバー

マイクロソフトはPC SpeakerでWAVファイルを再生できるWindows 3.x/95/98/ME用ドライバを提供している。すべてのプレイヤーがドライバで動作するわけではないが、標準のWindows WAV recorderがうまく動作する。音質はかなり良いが、残念ながらドライバが、すべての割り込みを無効にするので、トラックが終了するまで再生を止めることができない。たとえサウンドカードが存在していてもドライバがアクティブなときは、Windowsは通常、オーディオ設定に障害があると言ってくる。これは無視して構わない。

ダウンロードと情報はココ

XP以降、もうこのドライバは利用できない、さらにVistaでは直接PC Speakerにアクセスすることが無効化されている。

サードパーティ製ドライバ

いくつかのWindows用のサードパーティ製のPC speakerドライバがある。一般にマイクロソフトのドライバよりも音質は悪くなるが、割り込みは許される。このようなドライバのひとつはココでダウンロードできる。PC speakerを通してWAVだけではなくMP3を再生できるMS-DOSのいくつかのツールも存在する。ココで見つけられる。

リナックスのPC Speakerカーネルモジュール

バージョン2.6.26以降のLinuxカーネルでは、かなり粗悪なバグだらけのPC speakerドライバが含まれている、だがモジュールはブラックリストに載っている。ブラックリストは/etc/modprobe.d/にある。モジュールそれ自身はpcspkrと名付けられている。それを見つけるためにこうする。

$ locate pcspkr

どのモジュールが読み込まれるかは、使用するカーネルのバージョンで違ってくる。はじめに/modprobe.dに"00local"と名付けられたファイルがあるか確認して。もしあるなら、それを削除。今

$ sudo modprobe pcspkr

あなたのカーネルにモジュールを読みこんでいるはず。うまくいったら、alsamixer内にデバイスが見つかるはずです。そうでなければ、alsaを再コンパイルしなければならないかもしれない。pcspkrが動作しないなら、代わりにsnd_pcspを試してみて。これはあまりにひどい音になってしまう。古いカーネルのためにココでパッチを見つけることができる。Linuxの場合、PC speakerにアクセスするためにはいつもrootになる必要があることに注意して。

PC speakerのサウンドを録音する
もっとも確実な方法はマイクでもってPC speakerを録音すること。だが他のPC部品からのノイズ全てに対処しなければならないだろう。別の可能性として、スピーカにつながる端子とラインをはんだ付けする。全く同じ音にはならないが、とてもうまく機能する。デジタルPC speakerのルーチンからキャリアノイズを低減するために、コンデンサをフィルタとして使用できる。更にココを読んでみよう。

ピエゾスピーカー vs. PC speaker
残念なことに新しいPC(ペンティアム2以降) は通常、本物の電磁スピーカの代わりに圧電ブザーが使われている。それらはモノフォニックミュージックを再生するには十分である(だけれども周波数範囲が限られていて、品質がとても悪いだろう)。しかもピエゾはより複雑なシンセシスメソッドには適さないので、ポリフォニックとデジタルシンセシスは働かない。どうする、もしあなたのPCがPC speakerをもってなかったら?。いくつかの家電小売店やオンラインショップにまだPC speakerは売っているので、ピエゾの代わりに簡単に置き換えれる。ここでサイズが問題になる、なぜなら大きいスピーカは一般に騒がしくなり、より低音がでて、そしてハードウェア遅延がひどくなる、したがってタイミングのトリック(ボリューム)をより正確に実行させる最小スピーカ径2.25(57mm)がいいのではないか。

この記事のソースとさらなる情報

en.wikipedia.org/wiki/PC_speaker (もちろん)
en.wikipedia.org/wiki/Music_Construction_Set
spkcorner.tripod.com
www.oldskool.org
www.mobygames.com
fly.cc.fer.hr/GDM/articles/sndmus/ (PC Speakerをプログラミングするのに非常に役立つソース)
replay.web.archive.org/20090601193233/http://www.gamedev.net/reference/articles/article442.asp (別のプログラミングソース)
board.kohina.net/viewtopic.php?id=62 (PC speakerオーディオレコーディングのディスカッション;)

Trixter (www.oldskool.org)にはとても感謝している、忘れていたソフトウェアなどの情報の多くを提供してくれた。

あなたの助けがいる

ここで提供される情報はすべてを網羅したものではない。対象についての詳細をご存知なら、またはここに加えることが出来なかったミュージックソフトウェアを所有している場合、ぼくたちに知らせて!!!