2005,07,05, Tuesday
仮想波形メモリ音源を妄想する(第2回)
第2回目にして、タイトルが変わってしまいましたが……
方形波だけではつまらないので、波形メモリ方式にしてみました。
(俗に言うナムコPSGや、コナミのSCC音源の方式です)
1音色に対する波形メモリサイズは8、16、32、64バイトから任意に選択が可能。
プリセット音は方形波のみで、波形データは全て外部定義とします。
方形波だけではつまらないので、波形メモリ方式にしてみました。
(俗に言うナムコPSGや、コナミのSCC音源の方式です)
1音色に対する波形メモリサイズは8、16、32、64バイトから任意に選択が可能。
プリセット音は方形波のみで、波形データは全て外部定義とします。
さてここで、そもそも何故このプログラムを書くことを思い立ったのか?
というのを少々……
それは、秋月のウェブサイトでYMZ294(PSG音源IC)が売られているのを見て、
これを使ってMIDI音源機器を作ってやろうと思ったことに端を発します。
当初、それについて色々と実験をしていたのですが、DX-200を買ってしまったことにより
わざわざ作る意義を失ってしまいました。
(趣味なんだからイイじゃんというツッコミはナシの方向でお願いします)
それから約3年が経過するものの、PSGに対する想いが消える事はありませんでした。
自分は、やっぱりソフト屋。出来ることなら、ソフトウェアに応用したい。
音楽を作るにしても、どうせ最終的にはPCMデータで編集するんだから、
最初からディジタルデータになっている方がイイ。
……と、色々考えた末、ソフトウェアで実現する事にしました。
さて、話はズレてしまいましたが、取り敢えず現在までに実装した機能:
そして、相変わらず面白みの無いサンプル……
三角波は、いわゆるファミコンのベースの音、
ステレオミキシングのサンプルは「ドミソの和音」×2です。
出力サンプルは、44.1KHz/16ビットのステレオPCMデータをMP3化したものですが、
サンプリングレートは可変です(現在は定数による固定値ですが)
今のところは、周波数と各パラメタをセットすれば、その音が即座に鳴り続ける
(正確には、実行関数を叩くことにより、波形データを出力し続ける)
というコアの部分を作成していますが、今後は、これを制御するシーケンサ
(ドライバ部分)を作る予定です。
……と、公言しておけば、中途半端に放置されることは無いでしょう
Windowsなら、波形データの出力先をDirectSoundのバッファにでもしておけば
ゲーム等にも応用が利きそうです
第3回に続く
というのを少々……
それは、秋月のウェブサイトでYMZ294(PSG音源IC)が売られているのを見て、
これを使ってMIDI音源機器を作ってやろうと思ったことに端を発します。
当初、それについて色々と実験をしていたのですが、DX-200を買ってしまったことにより
わざわざ作る意義を失ってしまいました。
(趣味なんだからイイじゃんというツッコミはナシの方向でお願いします)
それから約3年が経過するものの、PSGに対する想いが消える事はありませんでした。
自分は、やっぱりソフト屋。出来ることなら、ソフトウェアに応用したい。
音楽を作るにしても、どうせ最終的にはPCMデータで編集するんだから、
最初からディジタルデータになっている方がイイ。
……と、色々考えた末、ソフトウェアで実現する事にしました。
さて、話はズレてしまいましたが、取り敢えず現在までに実装した機能:
・波形メモリ再生方式に変更
・パン(左右各63段階)
・各チャンネルに対するボリウム
・マスターボリウム(左右独立)
そして、相変わらず面白みの無いサンプル……
三角波サンプル[saw_110.mp3] (三角波110Hzの単音発生/1秒)
ステレオミキシングサンプル[sqsaw_6.mp3] (方形波・三角波の6音同時発声/1秒)
三角波は、いわゆるファミコンのベースの音、
ステレオミキシングのサンプルは「ドミソの和音」×2です。
出力サンプルは、44.1KHz/16ビットのステレオPCMデータをMP3化したものですが、
サンプリングレートは可変です(現在は定数による固定値ですが)
今のところは、周波数と各パラメタをセットすれば、その音が即座に鳴り続ける
(正確には、実行関数を叩くことにより、波形データを出力し続ける)
というコアの部分を作成していますが、今後は、これを制御するシーケンサ
(ドライバ部分)を作る予定です。
……と、公言しておけば、中途半端に放置されることは無いでしょう
Windowsなら、波形データの出力先をDirectSoundのバッファにでもしておけば
ゲーム等にも応用が利きそうです
第3回に続く
| 実験::ソフトウェア | 08:56 PM | comments (0) | trackback (x) |