サウンドVI
- 更新日2025-08-27
- 10分で読める
サウンドファイルおよび関数をユーザのVIに総合するには、サウンドVIを使用します。このVIを使用すると、以下のタスクを実行できます。
- ユーザが特定の動作を実行したときに、録音された警告などのサウンドファイルを実行するVIを作成する。
- VIが実行を開始または完了したとき、またはVI内のある点に達したときにサウンドファイルを実行するVIを作成する。
- サウンドデータを集録するためのサウンド入力デバイスを構成する。サウンド入力VIを使用して、サウンドデータを集録します。デバイスから入力されるサウンド情報を読み取る。
- 他のサウンドVIからサウンドデータを受け入れるためのサウンド出力デバイスを構成する。デバイスから入力されるサウンドの音量の制御、再生または一時停止、システムからの消去を行う。
(Windows) サウンドVIを使用するにはDirectX 8.0以降が必要です。(Linux) このVIを使用するには、Open Sound System (OSS) ドライバが必要です。
サウンド出力タスク
サウンド出力VIを使用して、スピーカーやヘッドフォンなどのサウンド出力デバイスで、サウンドを生成および制御します。「波形を再生」Express VIを使用すると、簡単にサウンド出力デバイスでサウンドデータを再生できます。
複雑な操作には、「サウンド出力構成」VIを使用して、新規サウンド出力タスクIDを作成して構成します。タスクIDを作成したら、「サウンド出力スタート」VIを使用してサウンドの再生が開始されたら制御、「サウンド出力ストップ」VIを使用してサウンドを停止、「サウンド出力音量設定」VIを使用してサウンドの音量を制御、「サウンド出力書き込み」VIを使用してサウンドデバイスにサウンドを送信、「サウンド出力情報」VIを使用してタスクIDに関する情報をサウンドデバイスにクエリします。「サウンド出力をクリア」VIを使用して、タスクIDによって使用されたリソースを解放します。
サウンド入力タスク
サウンド入力VIを使用して、マイクロフォンなどのサウンド入力デバイスからサウンドデータをLabVIEWに集録します。サウンド入力デバイスからの簡単なサウンド集録操作には、「サウンドを集録」Express VIを使用します。複雑な操作には、「サウンド入力構成」VIを使用して、新規サウンド入力タスクIDを作成して構成します。
タスクIDを作成したら、「サウンド入力スタート」VIおよび「サウンド入力ストップ」VIを使用して、サウンドの状態を実行またはアイドルにそれぞれ変更します。「サウンド入力読み取り」VIを使用して、サウンド入力デバイスから読み取ります。「サウンド入力をクリア」VIを使用して、タスクIDによって使用されたリソースを解放します。
サウンドデータ
LabVIEWは、サウンドデータを波形の配列として格納します。配列内の各波形は、信号チャンネルを示します。たとえば、2つの波形要素を持つ配列には、ステレオまたは2チャンネルデータが含まれています。各チャンネルは同時に再生されるので、dtおよびt0値、そしてY配列の要素数が、各波形で一致していることを確認してください。
波形のY配列は、PCM (Pulse Code Modulated) データを含みます。PCMデータでは、Y配列の各要素が信号の振幅に比例しています。Y配列のデータタイプが16ビット符号付き整数または32ビット符号付き整数の場合、値の範囲はデータタイプの最小値から最大値でゼロを中心とします。ゼロの値を持つ各要素のバッファはサイレンスを表します。Y配列データタイプが8ビットの符号なし整数の場合、値の範囲は0~255で、127を中心とします。127の値を持つ各要素のバッファは、ゼロの値を持つ各要素のバッファよりもサイレンスを表します。これは、8ビット符号なし整数付きサウンドを初期状態にクリックする原因となる可能性があります。浮動小数点データでは、値は-1.0~1.0まで包括的に変動します。データはその範囲に強制されます。スケールされることはありません。
タスクID
「サウンド出力構成」、「サウンド入力構成」、および「サウンドファイル再生」VIは、VIがサウンドタスクを参照するために生成する数値のタスクIDを返します。ブロックダイアグラム上の後続のサウンドVIは、タスクIDを使用して、特定のサウンド操作のデータを操作します。作成したVIを再実行するには、メモリからタスクIDを削除する必要があります。「サウンド出力をクリア」VIを使用して、サウンド出力操作のタスクIDをクリアにします。「サウンド入力をクリア」VIを使用して、サウンド入力操作のタスクIDをクリアにします。
サウンドデバイス
サウンドデバイスとは、サウンドカードまたはコンピュータに接続されているその他のハードウェアです。「サウンド出力構成」、「サウンド入力構成」、「サウンドファイル再生」VIのデバイスID入力の値は使用するサウンドデバイスを指定します。コンピュータのデフォルトのサウンドデバイスには、デバイスIDに0を入力します。他のデバイスの場合は、1、2、3などを入力します。
サウンドバッファ
サウンド入力およびサウンド出力操作では、サウンドデータのスムーズな転送を確立するためにLabVIEWとサウンドデバイス間でバッファが使用されます。サウンドバッファを操作するには、サウンドデータの読み取り、書き込み、構成を行うサウンドVIを使用します。これらのVIが作成するタスクによって、サウンドデータがバッファとサウンドデバイスの間で転送されます。タスクは、タスクを停止するかエラーが発生するまで実行されます。
入力操作は、サウンドデータを入力デバイスから、バッファ、そしてブロックダイアグラムに転送します。「サウンド入力読み取り」VIを使用して、デバイスからデータを集録します。バッファ中に要求されたすべてのサンプルを読み取るのに十分なデータがある場合は、LabVIEWはサンプルを即座に読み取ります。要求されたサンプル数が使用可能なサンプル数よりも多い場合、VIは要求が完了するまで実行を一時停止します。
出力操作は、サウンドデータをブロックダイアグラムから、バッファ、そして出力デバイスに転送します。「サウンド出力書き込み」VIを使用して、サウンド出力操作でデータをバッファに転送します。バッファに十分なスペースがある場合は、LabVIEWはデータをバッファにコピーします。バッファのスペースが不足していて、バッファが連続モードに構成されている場合、VIはすべてのデータがバッファにコピーし終わるまで実行を一時停止します。
サウンドデータを構成すると、バッファデータのフォーマットが設定されます。LabVIEWは、バッファデータフォーマットと一致するように、LabVIEWデータのフォーマットを自動的に変換します。たとえば、ステレオデータを使用するように出力タスクを構成しても、データを1つのチャンネルのみに書き込む場合、LabVIEWは書き込まれるデータを両方のステレオチャンネルに送信します。
サウンドファイルを再生する
以下のブロックダイアグラムのように、「サウンドファイル再生」VIおよびWhileループを使用して、サウンドファイルを連続再生します。「サウンド再生ファイル」VIは、サウンドファイルパス入力で指定されたファイルを読み取り、デバイスID入力で指定するサウンドデバイスを介してサウンドの再生を開始します。VIはタスクIDを返し、Whileループは、再生が終了するか、エラーが発生するか、ユーザがフロントパネルで停止ボタンを押すまで、継続的にタスクIDを渡します。「サウンド出力をクリア」VIを使用して、コンピュータメモリからタスクIDをクリアします。
サウンドVIを使用して、ファイルのビットレートおよびサウンドが再生されるチャンネル (モノ、ステレオなど) など、サウンドファイルの再生方法を構成します。実行時に、ファイルを一時停止、停止、再生することができます。
サウンドデータを生成するサンプルについては、labview\examples\Graphics and Sound\SoundディレクトリのSound File to Sound Output VIを参照してください。
サウンドデータを生成および再生する
波形生成VIおよび「信号シミュレーション」Express VIを使用して、以下のブロックダイアグラムに示されるように、サウンドデータを生成します。「信号シミュレーション」Express VIは正弦波を生成し、「波形を生成」Express VIは生成されたサウンドデータを、デバイス入力が指定するサウンドデバイスを介して作成します。
生成するサウンドデータをより正確に制御するには、サウンド出力VIを使用します。たとえば、「サウンド出力構成」VIを使用してサウンドのビットレート、サンプルレート、およびチャンネル数を制御し、「サウンド出力音量設定」VIを使用してサウンドの音量を以下のブロックダイアグラムで示されるように制御します。
サウンドデータを生成するサンプルについては、labview\examples\Graphics and Sound\SoundディレクトリのGenerate Sound VIを参照してください。
サウンドファイルにデータを書き込む
「サウンドファイル簡易書き込み」および「サウンドファイル書き込み」VIを使用して、集録および生成するデータをサウンドファイルに書き込みます。以下のブロックダイアグラムは、「サウンドファイル簡易書き込み」VIを使用して、パス入力が指定するファイルにそれぞれ50,000サンプルの正弦波音および三角波音から構成されるステレオサウンドを保存します。
サウンドファイルの作成をより正確に制御するには、「サウンドファイル書き込み」VIを使用します。「サウンドファイル書き込み」VIを使用するには、既存のサウンドファイルのリファレンスを開くか、「サウンドファイルを開く」VIを使用して新規サウンドファイルを作成して、「サウンドファイルを閉じる」VIを使用してサウンドファイルのリファレンスを閉じる必要があります。サウンドファイルを閉じないと、サウンドファイルがメモリ内に残っているため、他のアプリケーションまたは他のユーザはそのファイルにアクセスできません。
サウンドを集録して、サウンドファイルに保存するサンプルについては、labview\examples\Graphics and Sound\SoundディレクトリのSound Input to File VIを参照してください。