【世界初のXAudio2解説書&サウンドプログラム入門書!】
WindowsやXboxシリーズの標準サウンドAPIであるXAudio2の解説本です。本書は入門編としての位置付けで、XAudio2初学者でもなるだけ優しく理解出来ること、そしてサウンドプログラマを増やすことを目標に作られました。真面目な堅苦しい教科書大嫌い・小難しい数式が大嫌いな著者が作ったゆる~い本です。
ですが、ただゆるいだけではありません。API内部挙動の解説や癖の列挙、実際の開発現場のノウハウなども毒舌と一緒にいたる所に散りばめられています。
想定読者層はC言語習得済み・Visual Studioでのビルドが自力で出来るプログラマです。C++は初心者でも構いません。中高生~専門生、大学生などの学生あるいはプロでも非サウンドプログラマをメインの対象として執筆されています。
https://booth.pm/ja/items/1247140
=====================================
【目次】
第零章 はじめに(環境セットアップ)
そもそも、なぜXAudio2を使う?
本書の構成を考えるにあたって
動作環境
XAudio2のバージョン
使用するサンプル
はい、お決まりのエラー
XAudio2のマニュアル
本書のターゲット層
入門編で扱う範囲
第一章 XAudio2BasicSoundプロジェクトの解説
この章では
手順1 COMの初期化
手順2 XAudio2本体の初期化
手順3 マスターボイスの作成
手順4 PlayWave関数(音を鳴らす本体)
手順4-1~手順4-2 WAVファイルの読み込みと波形データの取得
手順4-3 ソースボイスの作成
手順4-4 ソースボイスにWAVの音声データをセット
手順4-5 鳴らす!
手順4-6 再生終了を確認する
手順4-7 曲が終わるか、ESCキーが離されると次の処理へ
手順4-8 ソースボイス削除!
手順5 マスターボイスの破棄
手順6 XAudio2の破棄
手順7 COMの破棄
この章のまとめ
【Topics】腐ったデータを渡すんじゃねぇ!
【Tips】ちょっと永久ループさせてみよう
【Tips】二回Startしたらどうなる?
【Tips】このサンプル数はシビアな判定には使えない
【Topics】サウンドの処理はだいたい完了待ち
第二章 音に変化を与えよう!
この章では
その1 音量を変える
その2 フェードイン、フェードアウトを作る
その3 左右に音を振る(パンニング)
その4 音の高さを変える(ピッチ変更)
その5 一時停止と解除
その6 途中から再生
その7 ループ再生とループ解除
その8 部分ループ再生(サスティンループ)
その9 本当の止め方
この章のまとめ
【Tips】ボリュームを半分にしても半分に聞こえない?
【Tips】デシベル(db)で音量を指定したい
【Tips】SetVolumeは遅い?
【Topics】音量を変えられないだとっ!?
【Tips】真正面(ファントムセンター)はどう鳴らす?
【Topics】Pauseは機種による差が激しい
【Tips】サンプル数とは
【Tips】公式マニュアルの嘘
【Tips】ループ指定と途中から再生を同時に命令したらどうなる?
第三章 サウンドにエフェクトを掛けよう!
この章では
その1 音を籠らせる(ローパスフィルタ)
その2 ハイパスフィルタ
その3 バンドパスフィルタ・ノッチフィルタ
その4 単極ローパスフィルタ、単極ハイパスフィルタ
その5 音をまとめてから処理をする(サブミックスボイス)
その6 リバーブを掛ける
その7 リバーブの種類を変える(エフェクトへ指令を出す)
その8 センドリバーブを作る
その9 ボリュームメーター(エフェクトからのデータ受信)
この章のまとめ
【Topics】またマニュアルが嘘を書いている
【Tips】範囲越え数値が吹っ飛ぶと意外と怖い理由
【Topics】このフィルタは現場では使われない?
【Topics】なんだこのフィルタは?
【Topics】Win7は未だ捨てられない
【Tips】サブミックスボイスはピッチを変えられないけれど
【Tips】自動フォーマット変換の罠
【Tips】ここでリバーブがエラーになる場合
【Tips】聞こえないデフォルトリバーブ
【Tips】鳴ってる途中でリバーブの種類を変えたらどうなる?
【Tips】ステレオWAVをリバーブに通すとどうなる?
【Tips】どのくらいの周期で集計している?
あとがき