spAudio APIリファレンス

音声ファイル入出力

音声ファイルを読み込むための関数です.WavファイルとAIFFファイルがサポートされています. ただし,プラグインを用いたファイル入出力の関数もあり, それを用いればプラグインファイルの追加のみで,多くのファイル形式に対応が可能となるため, 様々なファイルに対応する必要がある場合は,そちらを使用して下さい.
spWaveInfo
目的
ファイル形式の情報を保持する型です.
データ型
#include <sp/spWave.h>

typedef struct _spWaveInfo {
    char file_type[SP_WAVE_FILE_TYPE_SIZE];     /* format unique ID, e.g. "wav" */
    char file_desc[SP_WAVE_FILE_DESC_SIZE];     /* format description, e.g. "Microsoft PCM" */
    char file_filter[SP_WAVE_FILE_FILTER_SIZE]; /* filter mask, e.g. "*.wav" */
    int buffer_size;            /* buffer size for output buffer */
    spLong header_size;         /* you can skip header by fseek using this size. If you can't, zero will be returned. */
    int samp_bit;               /* bits/sample */
    int num_channel;            /* number of channels */
    double samp_rate;           /* sampling rate [Hz] */
    long bit_rate;              /* bit rate [bits/sec] */
    spLong length;              /* total length of sound [point] */
} spWaveInfo;
メンバ
file_type
内部で使用するファイル形式のIDです.ファイル形式の種類によって決まります. プログラマーが直接指定することはほとんどありません.
file_desc
ファイル形式の少し詳しい説明です.PCMのWAVEファイルであれば, "Microsoft PCM"などになります.
file_filter
ファイルを開くダイアログなどで用いられるファイル形式のフィルターです. WAVEファイルであれば,"*.wav"になります. 読み込み時にセットされます.通常,書き込み時には使用されません.
buffer_size
バッファーサイズです.一部の出力デバイスで使用されることがあります.
header_size
ヘッダーサイズです. この値がセットされている場合, fseekなどを使用することでデータの最初にジャンプすることができるようになります. 読み込み時にセットされます.通常,書き込み時には使用されません.
samp_bit
量子化ビット数です.
num_channel
チャネル数です.
samp_rate
サンプリング周波数[Hz]です.
bit_rate
ビットレート[bits/sec]です.一部のファイル形式で使用されます.
length
信号の継続時間で,それをポイント単位にしたものです.
関連項目
spSongInfo
spSongInfo, spSongInfoV2
目的
楽曲情報を保持する型です.
データ型
#include <sp/spWave.h>

typedef struct _spSongInfo {
    unsigned long info_mask;
    spLong32 track;
    char title[SP_SONG_INFO_SIZE];
    char artist[SP_SONG_INFO_SIZE];
    char album[SP_SONG_INFO_SIZE];
    char genre[SP_SONG_INFO_SIZE];
    char release[SP_SONG_INFO_SIZE];
    char copyright[SP_SONG_INFO_SIZE];
    char engineer[SP_SONG_INFO_SIZE];
    char source[SP_SONG_INFO_SIZE];
    char software[SP_SONG_INFO_SIZE];
    char subject[SP_SONG_INFO_SIZE];
    char comment[SP_SONG_INFO_SIZE];
} spSongInfo;
    
/* 0.7.12+ */
typedef struct _spSongInfoV2 {
    unsigned long info_mask;
    spLong32 track;
    char title[SP_SONG_INFO_SIZE];
    char artist[SP_SONG_INFO_SIZE];
    char album[SP_SONG_INFO_SIZE];
    char genre[SP_SONG_INFO_GENRE_SIZE];
    char album_artist[SP_SONG_INFO_ALBUM_ARTIST_SIZE]; /* V2 */
    char release[SP_SONG_INFO_RELEASE_SIZE];
    char producer[SP_SONG_INFO_PRODUCER_SIZE]; /* V2 */
    spLong32 track_total;       /* V2 */
    spLong32 disk;              /* V2 */
    spLong32 disk_total;        /* V2 */
    spLong32 tempo;             /* BPM; V2 */
    char copyright[SP_SONG_INFO_SIZE];
    char engineer[SP_SONG_INFO_SIZE];
    char source[SP_SONG_INFO_SOURCE_SIZE];
    char composer[SP_SONG_INFO_COMPOSER_SIZE]; /* V2 */
    char software[SP_SONG_INFO_SOFTWARE_SIZE];
    char lyricist[SP_SONG_INFO_LYRICIST_SIZE]; /* V2 */
    char subject[SP_SONG_INFO_SUBJECT_SIZE];
    char isrc[SP_SONG_INFO_ISRC_SIZE]; /* V2 */
    char comment[SP_SONG_INFO_SIZE];
} spSongInfoV2;
メンバ
mask
どの情報が保持されているかを示すマスクです. 例えば,
SP_SONG_TRACK_MASK | SP_SONG_TITLE_MASK | SP_SONG_ARTIST_MASK
のようになっています. それぞれのメンバと対応するマスクは,メンバ名を大文字にし,SP_SONG_を最初に付け,最後に_MASKを付けたものです. それ以外に,ID3タグの場合に使用される SP_SONG_ID3V1_MASK, SP_SONG_ID3V2_2_MASK, SP_SONG_ID3V2_3_MASK, SP_SONG_ID3V2_4_MASKなどがあります.
track
トラックです.
title
曲名です.
artist
アーティスト名です.
album
アルバム名です.
genre
ジャンル名です.
release
リリース日情報です.
copyright
コピーライト情報です.
engineer
エンジニア名です.
source
ソースです.WAVEファイル等で使われることがあります.
software
ソフトウェア名です.
subject
目的です.
comment
コメントです.
album_artist
アルバムにおけるアーティスト名です.spSongInfoV2で使用できます.
producer
プロデューサー名です.spSongInfoV2で使用できます.
track_total
総トラック数です.spSongInfoV2で使用できます.
disk
ディスクの番号です.複数枚組のディスクのときに使用されます.spSongInfoV2で使用できます.
disk_total
総ディスクの数です.spSongInfoV2で使用できます.
tempo
テンポ[bpm]です.spSongInfoV2で使用できます.
composer
作曲家名です.spSongInfoV2で使用できます.
lyricist
作詞家名です.spSongInfoV2で使用できます.
isrc
ISRC情報です.spSongInfoV2で使用できます.
説明
spSongInfoV2はspAudio 0.7.12以上で使用できます. spSongInfospSongInfoV2は互換性がありますが, 文字列メンバのサイズが異なるので注意して下さい(影響が少ないメンバのサイズを変更するように考慮はしてあります).
関連項目
spWaveInfo

Last modified: "2013-06-23 14:58:19 hideki"