MSXやP6のPSGで試した方がいるようですが、パソピア7はまだいないと思うので・・・
SN76489のVolumeと出力値の関係は以下
Volume設定値 | 出力値 | 割合 |
---|---|---|
0 | 32767 | 1.000000 |
1 | 26028 | 0.794328 |
2 | 20675 | 0.630957 |
3 | 16422 | 0.501187 |
4 | 13045 | 0.398107 |
5 | 10362 | 0.316228 |
6 | 8231 | 0.251189 |
7 | 6568 | 0.199526 |
8 | 5193 | 0.158489 |
9 | 4125 | 0.125893 |
10 | 3277 | 0.100000 |
11 | 2603 | 0.079433 |
12 | 2067 | 0.063096 |
13 | 1642 | 0.050119 |
14 | 1304 | 0.039811 |
15 | 0 | 0.000000 |
Volumeの値が上がるほど出力値が小さくなり、Volume=15で無音。
SN76489は1チップ3和音なので、上記Volumeを3つMixしてPCMの256階調(0-255)を作ってみます
6和音テーブルも作成してみましたが、11025Hzのタイミングでは処理が厳しそうなので今回は3和音でいってみます
TONE_0: DB 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Eh, 0Dh, 0Ah, 0Ch, 0Ch, 09h, 0Dh, 0Bh, 0Dh, 0Bh, 0Eh DB 0Ch, 09h, 0Bh, 09h, 0Ah, 0Bh, 0Ah, 0Eh, 08h, 08h, 09h, 0Dh, 08h, 09h, 09h, 08h DB 07h, 07h, 0Bh, 08h, 06h, 08h, 06h, 06h, 0Eh, 07h, 0Dh, 08h, 07h, 05h, 08h, 07h DB 04h, 06h, 05h, 0Dh, 05h, 09h, 05h, 04h, 06h, 03h, 07h, 08h, 05h, 06h, 04h, 07h DB 0Bh, 03h, 0Bh, 05h, 0Eh, 0Bh, 0Ah, 03h, 05h, 05h, 03h, 03h, 03h, 02h, 03h, 02h DB 02h, 06h, 03h, 02h, 03h, 02h, 04h, 02h, 03h, 03h, 01h, 09h, 03h, 04h, 02h, 03h DB 0Dh, 01h, 01h, 01h, 02h, 02h, 04h, 05h, 01h, 04h, 08h, 01h, 01h, 03h, 02h, 09h DB 02h, 00h, 01h, 01h, 00h, 02h, 02h, 00h, 03h, 02h, 00h, 00h, 03h, 0Bh, 01h, 03h DB 01h, 00h, 08h, 0Ch, 00h, 03h, 00h, 02h, 00h, 00h, 00h, 01h, 00h, 00h, 0Ah, 02h DB 0Dh, 05h, 00h, 01h, 01h, 00h, 00h, 01h, 02h, 01h, 03h, 06h, 00h, 01h, 00h, 01h DB 01h, 02h, 00h, 04h, 01h, 00h, 01h, 00h, 04h, 04h, 00h, 01h, 08h, 00h, 02h, 01h DB 00h, 03h, 03h, 01h, 00h, 01h, 00h, 00h, 01h, 01h, 00h, 01h, 00h, 00h, 01h, 00h DB 01h, 01h, 00h, 02h, 02h, 01h, 00h, 01h, 00h, 00h, 01h, 00h, 01h, 00h, 00h, 00h DB 00h, 02h, 00h, 01h, 00h, 00h, 01h, 00h, 00h, 00h, 00h, 01h, 01h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 01h, 00h, 00h, 00h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 04h, 04h, 00h, 00h, 01h, 01h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h TONE_1: DB 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Eh, 0Eh, 0Fh, 0Eh, 0Dh, 0Fh, 0Eh, 0Ch, 0Dh, 0Eh, 0Bh DB 0Ch, 0Ch, 0Ch, 0Bh, 0Ch, 0Bh, 0Bh, 0Ah, 0Dh, 0Ah, 0Ah, 09h, 09h, 09h, 09h, 0Ah DB 0Bh, 0Bh, 08h, 09h, 0Ch, 09h, 0Bh, 0Bh, 06h, 07h, 07h, 08h, 09h, 0Bh, 08h, 09h DB 0Ch, 08h, 0Ah, 04h, 0Ah, 05h, 08h, 09h, 07h, 0Eh, 06h, 07h, 06h, 07h, 09h, 05h DB 04h, 0Ch, 03h, 06h, 04h, 05h, 04h, 0Ah, 07h, 05h, 09h, 07h, 08h, 0Dh, 09h, 0Ch DB 0Ch, 06h, 07h, 0Ah, 07h, 08h, 07h, 09h, 06h, 07h, 0Eh, 04h, 06h, 04h, 08h, 06h DB 01h, 0Dh, 0Ch, 0Bh, 06h, 07h, 03h, 05h, 0Ah, 05h, 03h, 09h, 08h, 03h, 05h, 01h DB 04h, 0Eh, 09h, 08h, 0Ch, 05h, 06h, 0Dh, 04h, 04h, 0Bh, 09h, 05h, 00h, 07h, 03h DB 06h, 0Ah, 02h, 02h, 09h, 04h, 08h, 03h, 07h, 07h, 08h, 05h, 07h, 08h, 01h, 02h DB 02h, 03h, 06h, 03h, 03h, 05h, 05h, 03h, 03h, 04h, 03h, 00h, 05h, 05h, 04h, 04h DB 03h, 02h, 05h, 00h, 02h, 04h, 02h, 05h, 00h, 02h, 03h, 02h, 00h, 05h, 02h, 01h DB 04h, 00h, 01h, 02h, 02h, 01h, 04h, 03h, 01h, 02h, 02h, 03h, 03h, 02h, 01h, 02h DB 02h, 01h, 02h, 02h, 02h, 01h, 02h, 03h, 03h, 03h, 02h, 01h, 00h, 01h, 01h, 01h DB 02h, 02h, 01h, 01h, 01h, 01h, 02h, 02h, 02h, 01h, 01h, 01h, 01h, 01h, 03h, 03h DB 02h, 02h, 00h, 01h, 02h, 00h, 00h, 00h, 01h, 00h, 01h, 01h, 00h, 02h, 02h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 01h, 01h, 01h, 00h, 00h, 02h, 02h, 02h, 01h, 01h TONN_2: DB 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Eh, 0Fh, 0Dh, 0Eh, 0Dh DB 0Dh, 0Fh, 0Dh, 0Fh, 0Dh, 0Ch, 0Dh, 0Ah, 0Eh, 0Fh, 0Eh, 0Ah, 0Fh, 0Eh, 0Dh, 0Dh DB 0Eh, 0Dh, 0Ah, 0Ch, 0Eh, 0Bh, 0Eh, 0Dh, 0Ah, 0Fh, 08h, 0Ah, 0Ah, 0Eh, 09h, 09h DB 0Fh, 0Ch, 0Ch, 0Eh, 0Bh, 0Ch, 0Eh, 0Fh, 0Bh, 0Fh, 0Ah, 07h, 0Fh, 09h, 0Ch, 0Bh DB 09h, 0Dh, 0Eh, 0Ch, 07h, 06h, 08h, 0Ch, 08h, 0Dh, 0Ch, 0Fh, 0Dh, 0Eh, 0Ah, 0Eh DB 0Dh, 06h, 0Ch, 0Eh, 0Bh, 0Fh, 07h, 0Dh, 0Ch, 09h, 0Fh, 05h, 0Ah, 0Ch, 0Bh, 09h DB 0Eh, 0Dh, 0Dh, 0Eh, 0Eh, 0Ah, 0Eh, 05h, 0Ch, 06h, 05h, 0Ch, 0Eh, 0Fh, 0Ch, 0Ah DB 0Fh, 0Fh, 09h, 0Ah, 0Fh, 09h, 07h, 0Eh, 07h, 0Bh, 0Eh, 0Fh, 05h, 0Ch, 08h, 08h DB 09h, 0Bh, 04h, 03h, 0Bh, 05h, 0Ch, 0Ah, 0Eh, 0Dh, 0Ah, 08h, 0Bh, 09h, 04h, 0Eh DB 02h, 03h, 0Bh, 0Eh, 0Dh, 0Eh, 0Dh, 0Bh, 06h, 07h, 04h, 08h, 0Ah, 05h, 0Eh, 06h DB 08h, 07h, 08h, 0Bh, 0Ch, 0Ah, 0Bh, 07h, 09h, 03h, 0Eh, 09h, 04h, 06h, 05h, 0Fh DB 07h, 0Ah, 05h, 07h, 0Fh, 0Dh, 06h, 08h, 0Bh, 06h, 0Dh, 04h, 07h, 0Bh, 09h, 0Ah DB 05h, 08h, 09h, 03h, 03h, 07h, 08h, 03h, 05h, 05h, 04h, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh DB 06h, 02h, 0Ah, 05h, 09h, 09h, 03h, 05h, 05h, 08h, 08h, 04h, 04h, 07h, 03h, 03h DB 04h, 04h, 0Eh, 06h, 02h, 0Ch, 0Bh, 0Bh, 03h, 0Ah, 05h, 05h, 09h, 03h, 03h, 08h DB 08h, 08h, 01h, 01h, 07h, 07h, 02h, 02h, 02h, 06h, 06h, 02h, 02h, 02h, 03h, 03h
11025Hzの場合は0.09ms間隔なので、パソピア7のZ80 4MHzで368clock(0.092ms)くらいの間隔で音階を変化させることでWave再生します
続く
0 件のコメント:
コメントを投稿