Ubuntuで音がならなかったのでトラブルシューティングしてたら基礎的なことまで立ち戻りました。
そこで学んだ成果をまとめます。
そもそも音がなるまで
コンピュータで「音が鳴る」までの流れを整理すると、いくつかの階層を経て信号が伝わっていきます。大きく分けると (1) ソフトウェア層 → (2) OS/ドライバ層 → (3) ハードウェア層 → (4) 音響出力 です。
1. ソフトウェア層
- アプリケーション(音楽プレイヤー、ゲーム、ブラウザなど)が「音を出したい」と命令する。
- 音の表現は通常 デジタル音声データ(PCM: Pulse Code Modulation) で、サンプリング周波数(例: 44.1kHz)、ビット深度(16bitなど)、チャンネル数(ステレオ/モノラル)が指定される。
- 圧縮フォーマット(MP3, AAC, Ogg Vorbisなど)の場合は、アプリ内またはOSライブラリでデコードしてPCMに戻す。
2. OS/ドライバ層
-
アプリケーションが生成したPCMデータは オーディオAPI を経由してOSに渡される。
- Windows → WASAPI, DirectSound など
- macOS/iOS → CoreAudio
- Linux → ALSA, PulseAudio, PipeWire
-
OSのミキサーが複数アプリの音声を合成(ミックス)し、共通のサンプルレート/ビット深度に変換する。
-
デバイスドライバがサウンドカード(あるいは内蔵オーディオチップ)に命令を送る。
3. ハードウェア層
- サウンドカード/オーディオチップには DAC (Digital-to-Analog Converter) があり、PCMの数値データをアナログ信号(電圧の波形)に変換する。
- 変換された信号は アンプ回路で増幅される。
- デジタルのまま出力する場合(HDMIやUSB DAC)は、外部機器に渡ったあとでDAC処理が行われる。
4. 音響出力
- 最終的に電気信号が スピーカーやヘッドホンに伝わる。
- スピーカーは電気信号に応じて 振動板を動かし、空気を振動させる → 人間の耳に届いて「音」として認識される。
サウンドカードがでる以前の標準がなかった時代
「コンピューターが音を鳴らした」と言える例はいくつかあります。
1. CSIRAC(オーストラリア)による最初の「音を鳴らした」コンピューター
- **CSIRAC(Commonwealth Scientific and Industrial Research Automatic Computer)**は、1949年に稼働を開始したオーストラリア初の電子式デジタルコンピューターです。これが「世界初で音を鳴らしたデジタルコンピューター」とされています。(ウィキペディア)
- 1951年には “Colonel Bogey March” をはじめとする当時のポピュラー曲を演奏しました。ただし、この演奏は記録されておらず、現存するのは再現されたバージョンのみです。(120 Years of Electronic Music, ウィキペディア)
(※録音は残っていませんが、再現された音源や詳細な解説を見られるサイトもあります)
2. Ferranti Mark 1(イギリス)による最初の「録音された」コンピューター音楽
- Ferranti Mark 1 は、1951年にマンチェスター大学で稼働した、世界初の商用電子汎用コンピューターです。(ウィキペディア, 情報の歴史)
- 同年末、Christopher Strachey によってプログラムされた演奏が、BBC の外部放送ユニットによって録音されました。曲目は「God Save the King」「Baa Baa Black Sheep」「In the Mood」など。これが 現存する最古のコンピューター音楽録音とされます。(ウィキペディア, ガーディアン, New Atlas, 情報の歴史)
- この録音は2016年に英国図書館のチームによって音色を修復され、元の音により近い形で聴けるようになりました。(New Atlas)
3. もっと単純に「ビープ音」を出した例
1940年代の**初期コンピュータ(ENIACやManchester Babyなど)**でも、
計算機の状態確認や警告のために「スピーカーやリレー音を制御」する試みがありました。
ただしこれは「音楽」ではなく、「ノイズやビープ的な信号」でした。
サウンドカードの歴史
今のコンピューターの基礎であるPC/AT互換機
IBMがPC/AT互換機の元祖であるPC/ATを開発した頃、PCの音源といえばBEEP音しかありませんでした。
PC/AT互換機の元祖であるPC/AT
余談になりますが、PC/AT互換機とは現代の大多数のPCのことを言い、以下の特徴があります。
- x86 CPU(Intel/AMD互換)
- BIOSによる標準化
- ISAバスに代表される拡張性
- DOS/Windows対応ソフト資産
- 多メーカーによる互換機市場の形成
オープンな仕様はIBM以外のメーカーを巻き込み、様々な拡張が加えられていくことになります。
サウンドカードもその一つで、最初はAdLib Music Synthesizer Cardが道を切り開きました。
初めてのサウンドカード(1980年代後半 - 1990年代)
1987年にPC/AT互換機用の拡張カードとしてAdLib社がAdLib Music Synthesizer Cardを発売しました。
これは、モノラルのFM音源のサウンドカードでしたが、PC/AT互換機にサウンドという分野を切り開きました。
そこにやってきたのが、Sound Blasterシリーズです。ゲームやマルチメディアコンテンツの普及とともに、この分野のデファクトスタンダードとなりました。
主な機能は、デジタル音声をアナログ信号に変換してスピーカーに出力するDAC (Digital-to-Analog Converter)と、マイクなどのアナログ信号をデジタルに変換するADC (Analog-to-Digital Converter)でした。
オンボード化 (1990年代後半 - 2000年代)
PCの進化とコストダウンが進むにつれ、サウンド機能はマザーボード上に直接組み込まれるようになりました。これをオンボードサウンドと呼びます。
これにより、サウンドカードが必須ではなくなり、多くのユーザーが手軽に音を楽しめるようになりました。
この頃から、単なる音の再生・録音だけでなく、サラウンドサウンド(例:5.1ch、7.1ch)や、ハードウェアによるゲームサウンドの高速処理(例:EAX)といった機能が重視されるようになりました。
現代のサウンドカード
現在でも、より高品質な音を求めるオーディオ愛好家や、プロの音楽クリエイター向けに、高性能な外付けのUSBオーディオインターフェイスや内蔵型のサウンドカードが販売されています。
これらは、ノイズの少ないクリアな音質、低レイテンシ、そして高品質な入出力端子(XLR、TRSなど)を備えています。
サウンドサーバーの歴史
サウンドカードがハードウェアであるのに対し、サウンドサーバーはソフトウェアです。
-
サウンドサーバーの役割
-
複数のアプリケーションからの音声をミックスし、一つのストリームとしてサウンドカードに送る交通整理役。
-
音声のボリューム調整、ルーティング、エフェクト処理などの高度な機能を提供する制御役。
-
サウンドサーバー黎明期
Sound Blasterという現代まで続く強力なサウンドカードが出たあとはソフトウェア側の問題でした。
Linuxはサウンドをサポートし始めた1992年頃、最初に対応したのがSound Blasterでした。
当時は、Sound Blaster のハードウェアを直接叩くことを前提にしており、/dev/dsp
に対して write()
するだけで音が出せました。
Sound Blaster はハードウェア、/dev/dsp はそのハードを抽象化したUNIXのデバイスファイル。
OSS初期の設計がSound Blaster依存だったため、両者は歴史的に強く結びついています。
ただし、この方式には欠点があり、この方式では、複数のアプリが同時に音を出そうとすると競合が発生し、音が出せなくなることがありました。
そこでサウンドサーバーが導入されます。
第一世代:独立型サウンドサーバー (1990年代後半 - 2000年代前半)
この課題を解決するため、複数のアプリケーションからの音声ストリームをミックスし、単一の出力としてハードウェアに送るサウンドサーバーが開発されました。アプリケーションは直接サウンドカードにアクセスするのではなく、一度サウンドサーバーに音声を送るようになり、サウンドサーバーがその音声をまとめて、最終的にサウンドカードに送ることで、競合が解消されました。
-
ESD (Enlightened Sound Daemon, 1997〜): GNOMEデスクトップ環境で広く使われた初期のサウンドサーバーです。シンプルな機能を提供しましたが、遅延(レイテンシ)の問題や安定性の課題がありました。
-
ARTS (analog Real-time Synthesizer, 1998〜): KDEデスクトップ環境で使われました。ESDよりも高度な機能を目指しましたが、設計の複雑さからメンテナンスが困難になり、普及には至りませんでした。
第二世代:高機能サウンドサーバー (2000年代前半 - 2010年代前半)
前の時代の流れを受け、よりサウンドサーバーは高機能に進化しました。
PulseAudioは未だに動いているところも多いと思われます。
-
JACK (Jack Audio Connection Kit, 2002〜): プロ音楽制作向けに登場したサウンドサーバーです。超低レイテンシを実現し、ソフトシンセやDAWで必須ともいえる存在になりました。音楽制作分野では現在でも広く使われる一方で、汎用デスクトップ用途には使われなかった経緯があります。
-
PulseAudio (2004〜): Fedora、Ubuntu など主要ディストリビューションが採用しています。Linuxデスクトップの事実上の標準になっており、後述のPipeWireもPulseAudioとの互換性を残した動きをすることをできます。
- アプリ間の音声ミキシング
- 音量管理(アプリ別音量)
- ネットワーク転送も可能
現代:統一プラットフォーム PipeWire (2010年代後半 - 現在)
PulseAudioとJACKのそれぞれの利点を統合し、さらに動画(ビデオ)も扱えるようにRed HatのWim Taymansらによって設計されたのがPipeWireです。PipeWireは、現在のLinuxデスクトップ環境で次世代の標準として広く採用されています。
-
PipeWireの主な特徴:
-
統合プラットフォーム: PulseAudioが担っていたデスクトップオーディオの役割と、JACKが担っていたプロフェッショナルオーディオの役割を一つのシステムで実現します。
-
低レイテンシ: JACKと同等の低レイテンシを実現し、プロのオーディオ用途にも対応します。
-
映像も扱う: 音声だけでなく、動画ストリームの管理も行えます。これは、スクリーンキャストやリモートデスクトップなど、映像と音声を同時に扱うアプリケーションにとって重要です。
-
セキュリティ: アプリケーションごとに細かくアクセス権を制御できるため、セキュリティが向上しました。
-
PipeWireは、従来のサウンドサーバーが抱えていた断片化や機能のトレードオフといった問題を解決し、Linuxにおける音声・映像システムの未来を形作っています。現在では、多くの主要なLinuxディストリビューションでデフォルトのサウンドサーバーとして採用されています。
まとめ
コンピューターにおけるサウンドシステムは、サウンドカードとサウンドサーバーの二つの側面から成り立っています。サウンドカードはハードウェア、サウンドサーバーはソフトウェアであり、両者は密接に関わって進化してきました。
参考
-
Ferranti Mark 1 の録音について(解説記事)
→ BBC が録音した最古のコンピューター音楽に関するガーディアン紙の記事。(ガーディアン) -
録音の修復と詳細な解説
→ 英国図書館による修復プロジェクトを紹介する記事。(New Atlas) -
歴史的背景と学術的記録
→ Ferranti Mark 1 の演奏歴史や録音内容についてのまとめ。(情報の歴史, マンチェスター大学, CS Project) -
CSIRAC による最初の演奏(録音なし)について
→ 当時の演奏の様子や技術的な背景の説明。(120 Years of Electronic Music, ウィキペディア)