2012年3月17日土曜日

Android用・独自PSG音源(VGS)の仕様

概ね、Android用・独自PSG音源の仕様が固まったので、纏めておきます。
  • 基本情報: 22050Hz + 16bit + モノラル(秒間約43キロバイト程度)
  • 同時発声: 6ch (6声)
  • 分解精度: 1/22050 (1Hz毎にキーオン等のイベント指令が可能)
  • 波形数: 4種類(三角波、ノコギリ波、短形波、 短形ノイズ)のプリセットのみ
  • エンベロープ:  各ch毎(6系統) & キーオン・キーオフ毎(2系統) に設定可能
  • ピッチシフト: 各ch毎に周波数精度の自動ピッチアップ・ピッチダウンに対応
  • ボリューム: マスターボリューム+チャネル別ボリューム
  • 処理性能: 500MHz程度のマシンで、CPUを最大2~3%占有する
  • 発音例:  http://www.k2.dion.ne.jp/~ysuzuki/sample2.mp3 (※ノイズとピッチシフトは未使用)
シンプル過ぎるぐらいシンプルですが、ゲーム音楽用の音源としてはこれぐらいが丁度良いです。

Android搭載用ということで、消費電力を気をつけなければいけないから、性能には拘りました。
普通、波形計算には浮動小数点数が使われるのですが、全て整数で計算したりとか。
なお、AndroidのAPIが全般的に浮動小数点数を多様するものが多いので、Android端末のCPU(ARM)は、FPUが特化しているのかな?・・・と思ったのですが、それ程でもなかったので、計算は全て整数で行うのが正解です。(単にAndroidIを作った人が性能に関して疎かっただけ)


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...