Introduction to Sound Programming with ALSA その1

malibu-bulldog2007-04-17

下記URLの記事を自分に必要な所だけ訳しているので、メモ書きを。
http://www.linuxjournal.com/article/6735

History of ALSA

ALSALinux kernelの一部であったOSSに不満をもつ技術者がALSAProjectとして開始しました。Linux kernel2.5でマージをし、Linux kernel2.6から組み込まれました。

Digital Audio Basics

空気の振動である音はマイクロフォン等を使って電子信号に変換できます。
ADコンバータは、連続的な電気信号(アナログと呼びます)からデジタル信号に変換する機器であり、時間軸に沿って連続している電圧の値を一定時間毎の不連続な値に変換する機器です。
この不連続な値というのはsample(サンプル)と呼ばれ、一定間隔の時間毎に値を取ります。サンプリングレートとして知られているものです。
このサンプル全てをデジタルからアナログに変換すれば最初に記録した音が再現できます。

サンプルはビットで表され、サンプルのサイズは変換を行なう電圧値の幅と、サンプリングレートに依存します。

ALSA Basics

ALSAは様々なサウンドカードのドライバから構成され、プログラマサウンドAPIを提供します。(これはlibasoundという名前のlibファイルです)
OSSのようなLinux kernelのI/Oを直に呼び出すようなものではなく、ALSAから提供されたAPIを使ってプログラムをする事を奨励されています。
またALSAOSSをエミュレーションする機能(libaossの事)もあります。

Device Naming

ALSAが提供するAPIはデバイスを指定して使います。
バイス名は2種類あり、論理デバイス名と実際のデバイス名(ファイルシステムとして表示されるもの)があります。
プログラム時は論理デバイス名を使いましょう。