Amithlonでディジタルサウンド
(2003.12.03)
ようやくAmithlonからSPDIF出力する方法がわかりました。
まずはハードウエアの調達から。
SoundBlaster Live!
いきなり、ど真ん中です。とてもAmigaとは思えないですね。
SPDIF出力できるドライバが出発点なので、周辺ハードウエアをそれに合わせるようにします。
注意点としてLSIはEMU10K1(EMU10001)限定です。
高級タイプでは別のLSIを使っていることがあります。
馴じみのパソコン屋さんで搭載LSIを確認していただき、取り寄せてもらいました。
サウンドボードに5,200円出す客はいないようで。
S:user-startupにスクリプトの呼び出しを追加します。
これまでload_ac97を呼んでいたのでコメントにします。
----------
S:user-startup(変更)
----------
;BEGIN load ac97
;load_ac97
;END load ac97
;BEGIN load emu10k1
load_emu10k1
;END load emu10k1
----------
次に呼ばれるスクリプトです。
----------
load_emu10k1
----------
stack 20000
cd devs:pcidrivers/sound
insmod soundcore.o
insmod acore/snd.o
insmod acore/oss/snd-mixer-oss.o
insmod acore/snd-timer.o
insmod acore/snd-pcm.o
insmod acore/oss/snd-pcm-oss.o
insmod pci/ac97/snd-ac97-codec.o
insmod acore/seq/snd-seq-device.o
insmod acore/snd-rawmidi.o
insmod synth/snd-util-mem.o
insmod acore/snd-hwdep.o
insmod pci/emu10k1/snd-emu10k1.o snd_extin=0x3fc3 snd_extout=0x1fff
----------
ディジタル出力のミソは、モジュールに渡すパラメタにあります。
なおロードするモジュールの一覧はS:pci_modules_allにあります。
----------
S:pci_modules_all(抜粋)
----------
1102 0004
1102 0002
# List for module sound/pci/emu10k1/snd-emu10k1.o
sound/soundcore.o
sound/acore/snd.o
sound/acore/oss/snd-mixer-oss.o
sound/acore/snd-timer.o
sound/acore/snd-pcm.o
sound/acore/oss/snd-pcm-oss.o
sound/pci/ac97/snd-ac97-codec.o
sound/acore/seq/snd-seq-device.o
sound/acore/snd-rawmidi.o
sound/synth/snd-util-mem.o
sound/acore/snd-hwdep.o
sound/pci/emu10k1/snd-emu10k1.o
----------
SB Live!のSPDIF出力はピンジャックなので、
アナログ用のアダプタで代用しました。
SPDIFの周波数ってどのくらいなんでしょう?
モジュールをロードすると、即SPDIF出力を始めているので
ディジタルアンプのインジケータが点灯しますね。
LinuxでAC97(snd-via8233.o)を使うと再生直前に出力するので、
アンプのミュート解除までの2-3秒間は音が出なかった点も一歩前進です。
早速、mpeg(1-layer)3やAIFFなどを再生してみました。
残念ながらプチプチと雑音が混ざりますね。特にCPU負荷が重いときに。