spAudio APIリファレンス

プラグイン

プラグインのための関数です. 様々なファイル形式での読み込み・保存やオーディオデバイスの入出力が可能となります. 高水準APIと低水準APIがあり,通常は,高水準APIのみで事が足りると思います.

プラグインが動作するためには, プラグインファイル(ほとんどが別パッケージのspPluginの中に含まれています)が 以下のディレクトリ(フォルダ)のいずれかに存在している 必要があります.

高水準APIを用いて音声ファイルを読み書きする手順は以下の通りで, C言語でファイルを読み書きする標準的な手順と良く似ています.

  1. spWaveInfo型を初期化
  2. spOpenFilePluginを用い,読み込みの場合は"r"モードで,書き込みの場合は"w"モードでファイルをオープン
  3. 読み込みの場合はspReadPluginを,書き込みの場合はspWritePluginを,必要な回数呼び出す
  4. spCloseFilePluginを呼び出し,ファイルをクローズ

以下は,上記手順による読み込みプログラム例の一部分です.

    long data_length; /* バッファの長さ */
    char *input_file; /* ファイル名 */

    double *data;
    long nread;
    spPlugin *i_plugin;
    spWaveInfo wave_info;

    :

    data = xspMalloc(data_length * sizeof(double));

    i_plugin = spOpenFilePluginArg(NULL, input_file, "r", SP_PLUGIN_DEVICE_FILE,
                                   &wave_info, NULL, 0, NULL, NULL);

    if (i_plugin != NULL) {
        /* wave_info.samp_rate:サンプリング周波数 */
        /* wave_info.samp_bit:量子化ビット数 */
        /* wave_info.num_channel:チャネル数 */

        :

        for (i = 0;; i++) {
            if ((nread = spReadPluginDouble(i_plugin, data, data_length)) <= 0) {
                break;
            }

            :

        }

        spCloseFilePlugin(i_plugin);
    }

Last modified: "2013-06-24 14:12:32 hideki"