|
○ はじめに
著者は音 ( 音楽 ) と言えば CD などで聞くばかりで、音を作ったり加工したりすることに対する興味はあまり有りませんでした。それが、数年前に友人とバンドを組んでから少しづつ音を扱うことに興味が湧いて来たのをきっかけに音を扱うプログラミングに手を出し始めました。
本文書では、Linux® をプラットフォームとする Open Sound System ( OSS ) API を使用したサウンドプログラミングについて記述していきます。Open Sound System ( OSS ) とは、Unix 系プラットフォームにおける各種サウンドカード用のデバイスドライバを提供する商用製品です。Linux のサウンドサブシステムはカーネル 2.4.x までは OSS の非商用版である OSS / Free が取り込まれた形から発展したものです。カーネル 2.5.x 以降では ALSA ( Advanced Linux Sound Architecture ) がカーネルに取り込まれた様ですが、ALSA は OSS 互換の API を提供しているので本文書で記述する内容をそのまま使うことができます。
実際の所、OSS が提供する API に従ってプログラムを記述する限り、プラットフォームは Linux である必要はありません。本文書でプラットフォームを Linux に限定するのは、著者が Linux を使っているから、ただそれだけです。
まずは OSS API の使い方について記述していきます。ある程度基本について網羅した後に、単純な音の入出力だけではない音の加工処理、アプリケーションの作成を行いたいと思います。その学習を通じて、自分も DSP ( Digital Signal Processing、デジタル信号処理 ) について少しづつ学習していきたいと思っています。
本文書へのリンクは御自由にどうぞ。本サイト内の文章に関して何かご意見などがありましたら、ページ最下部にあるアドレスまで、あるいはここからお願いします。なお、本文書において使用しているサンプルコードを tar 形式で圧縮したものをsrc.tar.gz として置いてます。展開して得られる各ソースコードは EUC で書かれています。各ファイル名にはそのコードを使用した Lecture の番号が付与されています。このソースコードの使用に関しては、免責事項の記述を了承していただければ自由に使っていただいて構いません。
また、ソースコードを含めた文書全体のアーカイブ( tar 形式 )を oss_doc.tar.gz として置いてます。こちらも EUC で書かれています。
○ 前堤環境
前述した様に、自分が Linux ユーザなので Linux 上で gcc を使ったプログラミングを前提として記述していますが、OSS API を使えれば良いので特にプラットフォームやコンパイラなどの制限は有りません。その場合は、文書中の記述を適宜各々の環境にあわせて読み替えて下さい。
○ 免責事項
本サイトで公開している内容については可能な限り正確を期する様に心掛けていますが、著者の知識不足から技術的な誤りもしくは不適切な表現や誤植を含む可能性があります。これらの内容を使用することによって生じる可能性のあるいかなる被害/損害に対して、著者は一切の責任を負えません。よって、ご利用になられる際はみなさん各自の責任で内容確認/動作確認を行って下さい。
○ 商標
- Linux は Linus Torvalds 氏の日本及びその他の国における登録商標または商標です。
- UNIX は The Open Group の米国及びその他の国における登録商標です。
- その他、本サイトの文書中に記載されている会社名や製品名は、一般に各社の商標または登録商標です。
- なお、本サイトの文書中では TM および R マークを明記していませんが、権利を侵害する意思や目的等は一切ありません。
○ 参考情報(文献、リンク)
-
OSS Programmer's guide v1.11
OPEN SOUND SYSTEM ( OSS ) が発行している、プログラマ / 開発者用の API 解説書です。 OSS ドライバの内部動作についても細かく記述されています。必ずしも現在の Linux® のサウンドサブシステムのドライバ全てには当てはまらないと思いますが、OSS API の基本であることは言うまでもないでしょう。
- LINUX マルチメディアガイド, オライリージャパン, 1997, ISBN4-900900-31-1
Linux でのマルチメディア環境について、プログラマ寄りの情報が記述されています。 ユーザの視点で読むとかなり古い内容ですが、プログラマの視点では結構有用だと思います。
- CREATIVE OPEN SOURCE
Sound Blaster Live! などに使用されている EMU10K1 チップの Linux 用オープンソースドライバプロジェクトへのリンクなどがあります。