SuperSimpleController(その22)PSG(AY-3-8910A)の動作確認 その2 [OriginalCPU]
前回の記事でオリジナルCPU(Simple8Z)基板用に作成したサブボード(Simple8VDPSG)に実装したPSG(AY-3-8910)機能のハードディバッグ状況について書いたようにPSGが動くようになったので、今回はPSGを使って遊んでみた内容について書いてみます。
PSG内のレジスタ構成は下表(マイクロチップ社のデータシートからの抜粋)のようになっています。レジスタ番号は8進数の表記でなので10進表記だとR0~R15の16個のレジスタがあります。
PSGのClock端子にはMSXと同様にVDPのCPUCLK出力(3.579545MHz)を2分周したもの(1.7897725MHz)を入れています。ロジアナで確認したクロック波形が下図になります。
PSG内で更に16分周した信号を各チャンネルの音程分周比レジスタ(R0~R5)に設定された値で分周した信号がトーン信号として出力されます。
従って各音階を出力する場合のPSGの音程分周比は下表のようになります。
表中の青色部分が4オクターブのラの音(440Hz)で、この値から指数演算(半音分が1/12乗)して下表の値を算出しています。ある行の次の行が1オクターブ高い(2倍の周波数)行になりますが、右シフト(x0.5)した値が下の行の値と一致しない場合があるのは小数点部分を四捨五入している為です。
Web上でPSGをエミュレートしているPSG Padというサイトがあり、PSGが動作するハードウェアが無くても気軽に動作を確認することができます。
音階データの一覧表ができたので簡単な自動演奏をしてみたいと思います。
ネット上には著作権の関係で楽譜のデータはあまりないのですが簡単移調楽譜屋というサイトでありがたいことに著作権が消滅した民謡・童謡・クラシック等の楽曲の楽譜を入手できます。その中にサイモンとガーファンクルで有名なスカボロフェアがあったので楽譜を入手しました。この曲は意外なことにイングランド民謡だったんですね。
PSGで自動演奏しようとする際にエンベロープパターンを使ってピアノ音のようにしようと思ったのですが、エンベロープパターンは各チャンネル独立ではなく、1パターンを3チェンネルで共有しているので上手くいきません・・
例えば、主旋律が無音時に対旋律を鳴らすと主旋律も鳴ってしまうのです^^;。
そこで各トーンの音量をソフトで制御することにして、各チャンネルを独立したエンベロープで鳴らせるようにしました。
今回の自作CPUにはタイマー割込み等は無いので音符長の処理内でエンベロープも処理するようにしています。
各チャンネルで独立したエンベロープ処理ができれば、あとは音階データをPSGに流すだけで簡単に自動演奏ができます。
スカボロフェアの演奏例を貼っておきます。今回作成したエンベロープ処理では初期音量も変更でき、この演奏例では主旋律と対旋律をそれぞれ二通りの音量(合計4種類)で制御しています。
再生できない場合、ダウンロードは🎵こちら
★追記 2021/08/25
動画付きでtwitterに投稿したメッセージを貼っておきます。
手持ちの小型LCDモニタでは色ずれしないのにNTSC信号をキャプチャしてパソコン画面に表示すると結構色ずれしてますね・・
中華製の超安かったキャプチャだからかなぁ~
★追記 2021/08/26
動画を少し編集してYoutubeにアップしました。
https://www.youtube.com/watch?v=QoaBjz2VHSE
★追記 2021/08/27
Youtubeで見つけた本物の「スカボローフェア」を貼っておきます。
ボーカルに勝る楽器は無いということを思い知らされる気がします。すばらしぃ・・・
(中学の頃、姉が買ったサイモン&ガーファンクルのLPをよく聞いてたなぁ)
Simon and Garfunkel - Scarborough Fair Remastered study (HQ audio)
[TOP] [ 前へ ] 連載記事 [ 次へ ]
PSG内のレジスタ構成は下表(マイクロチップ社のデータシートからの抜粋)のようになっています。レジスタ番号は8進数の表記でなので10進表記だとR0~R15の16個のレジスタがあります。
PSG register |
|
PSGのClock端子にはMSXと同様にVDPのCPUCLK出力(3.579545MHz)を2分周したもの(1.7897725MHz)を入れています。ロジアナで確認したクロック波形が下図になります。
PSGのクロック波形 サンプリング:100MHz |
|
PSG内で更に16分周した信号を各チャンネルの音程分周比レジスタ(R0~R5)に設定された値で分周した信号がトーン信号として出力されます。
従って各音階を出力する場合のPSGの音程分周比は下表のようになります。
表中の青色部分が4オクターブのラの音(440Hz)で、この値から指数演算(半音分が1/12乗)して下表の値を算出しています。ある行の次の行が1オクターブ高い(2倍の周波数)行になりますが、右シフト(x0.5)した値が下の行の値と一致しない場合があるのは小数点部分を四捨五入している為です。
oct | ド | ド# | レ | レ# | ミ | ファ | ファ# | ソ | ソ# | ラ | ラ# | シ |
---|---|---|---|---|---|---|---|---|---|---|---|---|
C | C# | D | D# | E | F | F# | G | G# | A | A# | B | |
1 | 0D5C | 0C9D | 0BE7 | 0B3C | 0A9B | 0A02 | 0973 | 08EB | 086B | 07F2 | 0780 | 0714 |
2 | 06AE | 064E | 05F4 | 059E | 054D | 0501 | 04B9 | 0475 | 0435 | 03F9 | 03C0 | 038A |
3 | 0357 | 0327 | 02FA | 02CF | 02A7 | 0281 | 025D | 023B | 021B | 01FC | 01E0 | 01C5 |
4 | 01AC | 0194 | 017D | 0168 | 0153 | 0140 | 012E | 011D | 010D | 00FE | 00F0 | 00E2 |
5 | 00D6 | 00CA | 00BE | 00B4 | 00AA | 00A0 | 0097 | 008F | 0087 | 007F | 0078 | 0071 |
6 | 006B | 0065 | 005F | 005A | 0055 | 0050 | 004C | 0047 | 0043 | 0040 | 003C | 0039 |
Web上でPSGをエミュレートしているPSG Padというサイトがあり、PSGが動作するハードウェアが無くても気軽に動作を確認することができます。
音階データの一覧表ができたので簡単な自動演奏をしてみたいと思います。
ネット上には著作権の関係で楽譜のデータはあまりないのですが簡単移調楽譜屋というサイトでありがたいことに著作権が消滅した民謡・童謡・クラシック等の楽曲の楽譜を入手できます。その中にサイモンとガーファンクルで有名なスカボロフェアがあったので楽譜を入手しました。この曲は意外なことにイングランド民謡だったんですね。
PSGで自動演奏しようとする際にエンベロープパターンを使ってピアノ音のようにしようと思ったのですが、エンベロープパターンは各チャンネル独立ではなく、1パターンを3チェンネルで共有しているので上手くいきません・・
例えば、主旋律が無音時に対旋律を鳴らすと主旋律も鳴ってしまうのです^^;。
そこで各トーンの音量をソフトで制御することにして、各チャンネルを独立したエンベロープで鳴らせるようにしました。
今回の自作CPUにはタイマー割込み等は無いので音符長の処理内でエンベロープも処理するようにしています。
各チャンネルで独立したエンベロープ処理ができれば、あとは音階データをPSGに流すだけで簡単に自動演奏ができます。
スカボロフェアの演奏例を貼っておきます。今回作成したエンベロープ処理では初期音量も変更でき、この演奏例では主旋律と対旋律をそれぞれ二通りの音量(合計4種類)で制御しています。
再生できない場合、ダウンロードは🎵こちら
★追記 2021/08/25
動画付きでtwitterに投稿したメッセージを貼っておきます。
手持ちの小型LCDモニタでは色ずれしないのにNTSC信号をキャプチャしてパソコン画面に表示すると結構色ずれしてますね・・
中華製の超安かったキャプチャだからかなぁ~
13個のDIP ICを使ったオリジナル8bit CPUを検討中
— skyriver (@wcinp) August 25, 2021
サブ基板に実装したPSGが動いたので自動演奏して遊んでみた
著作権が消滅したイングランド民謡であるスカボロフェア(なんと意外ですね)を演奏してみたよhttps://t.co/8kJ08CzbO9#Simple8Z #VDPSG #AY38910 #OriginalCPU #自作CPU pic.twitter.com/Vu1ehlyuBt
★追記 2021/08/26
動画を少し編集してYoutubeにアップしました。
https://www.youtube.com/watch?v=QoaBjz2VHSE
★追記 2021/08/27
Youtubeで見つけた本物の「スカボローフェア」を貼っておきます。
ボーカルに勝る楽器は無いということを思い知らされる気がします。すばらしぃ・・・
(中学の頃、姉が買ったサイモン&ガーファンクルのLPをよく聞いてたなぁ)
Simon and Garfunkel - Scarborough Fair Remastered study (HQ audio)
[TOP] [ 前へ ] 連載記事 [ 次へ ]