サウンドドライバ作成思案

MMLを送って音楽が鳴らせるサウンドドライバを作りたいと思います。
サンプリング周波数は40k以上で出したいところですが…まずは理論値を試算。
波形ジェネレータとMMLパーサは別コアで、ジェネレータのステート領域を
パーサがリアルタイムに書き換える、というアプローチにします。

今回はジェネレータの中身について考察してみます。

80MHz動作時、1サンプルに掛けられる計算コストは2000サイクルです。
これを同時発音数で割ります。4音の場合で500サイクル。
実用するならばもう少し多い方が良いですが、まずはここからです。

WaveTable 方式であればサンプリングアドレスの計算が主ですし、
500サイクルはアセンブラで100行以上あるので、
あまり究極的なチューニングをしなくても到達できそうな感じですね。

次回は実際に1音を発生するプログラムを作ってみます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。