アットウィキロゴ

PCM

PCM(パルス符号変調)は、アナログ信号をデジタルデータに変換する最も基本的かつ「生の」形式です。
Playdate開発において、PCMは音質の基準点となり、他の圧縮形式(ADPCMなど)と比較する際のベースラインとなります。


概要

1. PCMの概要
PCMは、連続的なアナログ波形を「時間」と「振幅」の2軸で切り出す(サンプリングする)ことでデジタル化します。
主要な3要素として「サンプリング周波数」「量子化ビット数」「チャンネル数」があります。
1. サンプリング周波数(Sampling Rate)
  • 1秒間に何回音を切り出すか(Hz)
  • ナイキストの定理により、再現したい最高周波数の2倍以上のサンプリングレートが必要です(例:20kHzまで再現するには44.1kHz以上)
2. 量子化ビット数(Bit Depth)
  • 各サンプルの音量をどれだけ細かく表現するか
  • 16-bit(65,536段階)が一般的ですが、Playdateではメモリ節約のために8-bitが使われることもあります
3. チャンネル数(Channels)
  • モノラル(1ch)またはステレオ(2ch)

2. PlaydateにおけるPCMの扱い
Playdateのオーディオエンジンは、最終的なミキシングを16-bit / 44.1kHz / Mono(内蔵スピーカー時)で行いますが、内部的には柔軟な処理が可能です。

コンパイルプロセス (pdc)として、ソースディレクトリに.wavファイルを置いた際、Playdateコンパイラ(pdc)は以下のような挙動を示します。
自動最適化
デフォルトでは、pdcはWAVファイルをPlaydateが再生しやすい形式に変換します。
非圧縮の維持
明示的に指定しない限り、短いSEなどはPCM(非圧縮)として保持され、再生時のCPU負荷を最小限に抑えます。

また、メモリとリソースの特性を理解する必要があります。
PlaydateはRAMが16MBと限られているため、PCMの扱いには戦略が必要です。
項目 特徴
音質 圧縮ノイズ(ADPCM特有のサーノイズなど)がなく、最もクリーン
CPU負荷 展開(デコード)の必要がないため、最も低い
メモリ(RAM) データ量が大きく、長い音ファイルをPCMで持つとメモリを圧迫する

3. 実装における技術的ポイント
短い効果音(数秒以内)は、PCMのままメモリにロードするのが理想的です。(→SamplePlayer)
利点
遅延(レイテンシ)がほぼゼロ。
ヒント
メモリを節約したい場合、あえてサンプリングレートを22.05kHzに落として書き出すことで、音質劣化を最小限にしつつサイズを半分にできます。

BGMなどの長いファイルをPCMで再生する場合、ディスクからバッファに読み込みながら再生します。(→FilePlayer)
注意点
PCMのBGMはファイルサイズが非常に大きくなるため、Playdateのストレージ容量(データ制限)を圧迫します。
BGMにはADPCMや、シンセサイザーによるシーケンス再生が推奨されます。

Playdateのレトロな雰囲気を演出する場合、あえて8-bit PCMを使用する選択肢もあります。
量子化ノイズ
8-bit特有の粗さが、Lo-Fiなゲームデザインにマッチすることがあります。
メモリ半減
16-bitと比較して、単純計算でメモリ消費を半分に抑えられます。

まとめ:PCM vs ADPCM の使い分け

エンジニアとしてPlaydateの最適化を行う際の判断基準は以下の通りです。
1. PCMを選択すべきケース
  • 音質が最優先される非常に短いSE
  • CPU負荷を極限まで削削り、描画や物理演算に回したい場合
2. ADPCMを選択すべきケース
  • 1秒を超えるような音声
  • メモリ使用量を抑えつつ、複数の音を同時に鳴らしたい場合

Playdate SDKでは、playdate.sound.sample.new('path') で読み込むだけで、コンパイル後の形式(PCM/ADPCM)を意識せずに同一のコードで扱えるのが強みです。
現在取り組まれているプロジェクトでは、同時に鳴らす音の数や、BGMの長さに合わせてこれらの形式を使い分けるのがパフォーマンス向上の鍵となります。

関連ページ

最終更新:2026年04月26日 03:09