Z80GalCompactの制作(その5)AMラジオで音楽演奏 [Z80]
twitter の タイムラインでマイコンから発生する電波を利用してラジオから音楽を流す動画を見かけました。
学生時代に Z80 マイコンを作り同様なことをやってみたことがありますが、直ぐに1ビットのデジタル出力を使って演奏する方式に移行して二重奏等をやって遊んでいました。
余りにも懐かし過ぎるので最近開発した Z80 マイコン(Z80GalCompact)を使ってラジオ演奏をやってみました。
基本はループ処理の周期によってシングルトーンの音を生成するのですが、最初は綺麗な音が中々出ませんでした。色々やってみると AMラジオ側の受信周波数によって聞こえ方が結構違うことに気が付き、良く聞こえる受信周波数にするとそれなりの音が出るようになりました。
また、演奏音をなるべく綺麗にするために
トーンジェネレータ処理のループ部が合計で 108 ステートとなり、クロック 20MHz の情報と合わせて音程パラメータを計算した結果が下表になります。
Loop times のカラムがシングルトーンを生成するためのループ回数(=音程パラメータ)で上記のように 1 バイト処理なので Hex カラムが 2 桁以下のデータ部分が使用できる音階になります。
楽曲としては著作権が消滅しているドイツ民謡で広くなじみのある「かえるの合唱」のデータを使用しました。ネット上にあるこのページ等を参照させて頂きました。
更に今回は無謀にもラジオを用いた自動演奏による二重奏にチャレンジしてみました。アセンブラで組んだソースが下記になります。
流石に完全な二重奏とまではいきませんが「かえるの合唱」の輪唱がそれなりに聞こえるようになりました^^
★追記 2022/7/28
twitter に投稿した動画付きのメッセージを貼っておきます。
★追記 2022/08/15
twitterにアップした動画はラジオのパネルに天井の照明が写り込んで見辛かったので動画を取り直して説明コメントも付けてYoutubeにアップしました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
学生時代に Z80 マイコンを作り同様なことをやってみたことがありますが、直ぐに1ビットのデジタル出力を使って演奏する方式に移行して二重奏等をやって遊んでいました。
余りにも懐かし過ぎるので最近開発した Z80 マイコン(Z80GalCompact)を使ってラジオ演奏をやってみました。
基本はループ処理の周期によってシングルトーンの音を生成するのですが、最初は綺麗な音が中々出ませんでした。色々やってみると AMラジオ側の受信周波数によって聞こえ方が結構違うことに気が付き、良く聞こえる受信周波数にするとそれなりの音が出るようになりました。
また、演奏音をなるべく綺麗にするために
- 雑音低減のために演奏中はタイマ割込みを禁止する
- 頻繁に通る分岐処理部分では両方の処理のステート数を合わせる
- 音程と長さは1バイト処理にしてトーンジェネレータ以外の処理時間を短くする
トーンジェネレータ処理のループ部が合計で 108 ステートとなり、クロック 20MHz の情報と合わせて音程パラメータを計算した結果が下表になります。
Loop times のカラムがシングルトーンを生成するためのループ回数(=音程パラメータ)で上記のように 1 バイト処理なので Hex カラムが 2 桁以下のデータ部分が使用できる音階になります。
音階パラメータ表 |
楽曲としては著作権が消滅しているドイツ民謡で広くなじみのある「かえるの合唱」のデータを使用しました。ネット上にあるこのページ等を参照させて頂きました。
更に今回は無謀にもラジオを用いた自動演奏による二重奏にチャレンジしてみました。アセンブラで組んだソースが下記になります。
ラジオ演奏 カエルの合唱(Z80 アセンブラ) |
|
流石に完全な二重奏とまではいきませんが「かえるの合唱」の輪唱がそれなりに聞こえるようになりました^^
★追記 2022/7/28
twitter に投稿した動画付きのメッセージを貼っておきます。
TLで見かけたマイコンから放出される電波を使ったAMラジオでの自動演奏
— skyriver (@wcinp) July 28, 2022
あまりにも懐かしいので自作マイコンでやってみました^^https://t.co/8o6ULhEON7#Z80GalCompact #RetoroComputing https://t.co/OVoB5bILt4 pic.twitter.com/eKjVIggJJ1
★追記 2022/08/15
twitterにアップした動画はラジオのパネルに天井の照明が写り込んで見辛かったので動画を取り直して説明コメントも付けてYoutubeにアップしました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]