DXPresentation のライティングが Intel のビデオドライバ+Vista でおかしい問題は(ビデオカードではなく)PC実機を用意しないと、解決は難しいようだ。調達ができたら再現と修正ができると思う。
ところで、本業の方があいかわらず忙しいのだが前回の土日は久々に時間があったので新しいソフトを作り始めた。
以前のエントリで Mac のサウンドエフェクトアプリ MetaSynth について触れた。これとコンセプトが近くなってしまうが、簡単で直感的な操作でエフェクトを作るアプリを作っている。ペイントした絵がそのまま音になる(ように見せる)のが目標。
実際に作ってみて思ったのは、縦軸周波数・横軸時間軸の絵を音に変換することの計算量の膨大さだ。楽器のシンセサイザーは複数のソース(サンプリング波でもサイン波でも三角波でもなんでもいい)
?≪対し、それぞれエンベロープを調節したりフィルタを通し音を作っていく。通常の楽器音であればそうやって作った音を主に倍音について加算していけば、ことはすむ。
しかし自分の今作っているソフトでは、同様のやり方で非楽器音を作ろうとしている。オシレータを数百から数万並列に並べるのだが、この処理負荷が思った以上に大きい。こんなときこそ GPGPU が適しているのかもしれないが、MetaSynth はそんな力技を使っているわけがなく、もっとスマートに解決していると思う。どうしているのだろうか。
あと、C# で作りはじめてしまったが、C++の方がこの手のことには適している。既に C# なのにポインタを使う unsafe ブロックが多数できてしまった。
アプリの名前も迷うところだ。Gen*シリーズになるのは決めているが、その後が続かない。Ge
nsoniq か?
それはとにかく、アルゴリズムで悩むのは楽しいということを再確認した。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。