@section サウンド機能

サウンドデバイスを操作する機能です。
この機能を使用するには(use sound)が必要です。

@defun make-audio-format encoding sample-rate sample-size-in-bits channels frame-size frame-rate endianness
戻り値: オーディオフォーマットオブジェクト@*
オーディオフォーマットオブジェクトを取得します。引数の意味は以下の通りです。
@multitable @columnfractions .25 .7
@item encoding
@tab エンコードの種類をシンボル指定します。指定できるシンボルは以下の通りです。
@itemize @bullet
@item alaw: a-law
@item pcm-signed: 符号付きリニアPCM
@item pcm-unsigned: 符号なしリニアPCM
@item ulaw: u-law
@end itemize
@item sample-rate
@tab サンプリング周波数を実数で指定します。
@item sample-size-in-bits
@tab 各サンプルのビット数を指定します。
@item channels
@tab チャネル数を指定します。モノラルならば1、ステレオならば2となります。
@item frame-size
@tab 各フレームのバイト数を指定します。
@item frame-rate
@tab 1秒あたりのフレーム数を指定します。
@item endianness
@tab エンディアンを指定します。@*
ビッグエンディアンならばシンボルbig-endian、
リトルエンディアンならばシンボルlittle-endianを指定します。
@end multitable
@end defun

@defun make-target-data-line audio-format
戻り値: ターゲットデータラインオブジェクト@*
ターゲットデータライン(入力)を生成します。
@end defun

@defun make-source-data-line audio-format
戻り値: ソースデータラインオブジェクト@*
ソースデータライン(出力)を生成します。
@end defun

@defun open-data-line data-line
戻り値: 未定義@*
データラインをオープンします。
@end defun

@defun start-data-line data-line
戻り値: 未定義@*
データラインを開始します。このことによりデータがデバイスより入出力されます。
@end defun

@defun stop-data-line data-line
戻り値: 未定義@*
データラインを停止します。
@end defun

@defun flush-data-line data-line
戻り値: 未定義@*
データラインにあるデータをクリアします。
@end defun

@defun close-data-line data-line
戻り値: 未定義@*
データラインをクローズします。
@end defun

@defun read-data-line-relative target-data-line sample-num
戻り値: 取得したデータのf32一様ベクトル@*
ターゲットデータラインからデータを読み込みます。
強度は最大ビット数で規格化され、
0〜1.0(符号なし)または-1.0〜1.0(符号付き)になります。@*
結果はf32一様ベクトル(SRFI-4参照)として返ります。@*
データは入力チャネル数だけの多値として得られます。
(モノラルならば1値、ステレオならば2値)
@end defun

@defun write-data-line-relative source-data-line data-to-write [@dots{}]
戻り値: 書き込まれたデータ数@*
ソースデータラインにデータを書き込みます。
強度は最大ビット数で規格化され、
0〜1.0(符号なし)または-1.0〜1.0(符号付き)になります。@*
データはf32一様ベクトル(SRFI-4参照)として与えます。@*
データは入力チャネル数だけ与えます。
(モノラルならば1つ、ステレオならば2つ)
@end defun

@defun make-playable sound-file-name repeat
戻り値: 演奏オブジェクト@*
サウンドファイルを演奏するオブジェクトを取得します。
サウンドファイルのフォーマットは使用しているJavaの環境に依存します。
Java標準ではWAVファイルが使用できます。
MP3プラグインを使用することでMP3にも対応できます。
repeatは繰り返して演奏する回数を指定します。
#fのときは無限に繰り返します。
@end defun

@defun play-sound playable
戻り値: 演奏が開始されれば#t@*
指定した演奏オブジェクトの演奏を開始します。
@end defun

@defun stop-play-sound playable
戻り値: 演奏が終了されれば#t@*
指定した演奏オブジェクトの演奏を終了します。
@end defun

@defun pause-play-sound playable
戻り値: 演奏が一時停止されれば#t@*
指定した演奏オブジェクトの演奏を一時停止します。
再開するにはplay-soundを再び呼び出します。 
@end defun

