新刊
同人誌・272ページ・80部頒布・紙/電子・1,500円【初心者向けの、XAPOサウンドエフェクト信号処理入門書!】
★☆新刊です☆★
WindowsやXboxシリーズの標準サウンドAPIであるXAudio2の解説本、その2冊目です。
「入門XAudio2」https://tsuchidasama.booth.pm/items/1247140
読了を前提とし、入門編では紹介しきれなかったXAPOFXと自作XAPOという、サウンドエフェクト信号処理にフォーカスした本です。
音声信号処理と言っても難しくはありません。わけのわからない理論とか数式とかが大嫌いな著者が作ったゆる~い本ですから、なるだけ簡易な表現に努めています。
ですが、ただゆるいだけではありません。やさしい表現の中でも核心は押さえ、実際の開発現場のノウハウなども毒舌と一緒にいたる所に散りばめられています。
想定読者層はC言語習得済み・Visual Studioでのビルドが自力で出来るプログラマです。C++は初心者でも構いません。中高生~専門生、大学生などの学生あるいはプロでも非サウンドプログラマをメインの対象として執筆されています。
===========================
【目次】
第零章 はじめに(一冊目からの続き)
本書のターゲット層
これは一冊目の続きです。
初級編で扱う範囲
動作環境
XAudio2のバージョン
XAudio2のマニュアル
使用するサンプル
第四章 XAPOFXを使いこなそう
この章では
その1 XAPOFXとは
その2 エコー
その3 イコライザー
その4 マスタリングリミッター
その5 簡易リバーブ
この章のまとめ
【Tips】Win8以降の、ビルドの罠
【Tips】エコーの良くわからない改悪
【Topics】ハイレゾは無意味です
【Topics】イコライザーの特性を解析する為に
【Topics】音圧戦争はやめようね
【Topics】現場ではどこまで理詰めで行くの?
第五章 サウンドエフェクトを自作しよう
この章では
その1 XAPOシステムの階層を知る
その2 パラメータ無しのXAPOを作ってみる
その3 コンストラクタと初期定義の解説
その4 LockForProcess(事前処理)
その5 Process(実際の演算処理)
その6 パラメータ有りのXAPOを作ってみる
その7 パラメータを受け取る
その8 演算用にパラメータを取り出す
その9 送信型のXAPOを作る
その10 送受信型の器用なXAPOを作ろう
この章のまとめ
【Tips】クラスとは、継承(派生)とは、オーバーライドとは
【Topics】GitHubにソースを上げない理由
【Tips】重い処理は全部ここで済ませてしまおう
【Tips】SILENTで特殊処理をするケース
【Tips】OnSetParametersって何?
【Tips】渡すデータを間違えたらどうなる?
【Tips】パラメータの送受信配列[3]の動作
第六章 様々なエフェクト処理を書こう
この章では
その1 全区間のピークメーターを作る
その2 サンプル単位のフェードを作る
その3 ローパスフィルタを作る
その4 ハイパスフィルタを作る
その5 ステレオダウンミックスを作る
その6 チャンネル数変換型XAPOの挿し方
この章のまとめ
【Tips】浮動小数点の符号反転の仕方
【Tips】浮動小数点の誤差をどう扱うか
【Tips】BeginProcessでは駄目だった理由
【Topics】フィルタの実現方法は他にも一杯
【Topics】バイクワッドフィルタも似たようなもの
【Tips】その他のチャンネル数の配置
あとがき
【世界初の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】どのくらいの周期で集計している?
あとがき