Multi players piano
前回のPWMに引き続き今回はファミコン音源について紹介したいと思います。
前回:ピアノを共に弾こう!みんなで楽しむ新感覚ピアノ(PWM)🎹 - robotoGAsensei’s diary
- 電気(キースイッチ、マルチプレクサ、ESP32周辺)
- メカ(バネ・ヒンジ構造)
- ソフト(PWM、 ファミコン音源 ) ← 今回
基板構成
マイコン基板
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240526/20240526181854.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240526/20240526165134.jpg)
7種類の波形選択
ファミコン音源として知られているいくつかの波形を含む7種類の波形を選べるようにしました。
各波形情報は浮動小数点1024個の配列に格納しています。
こちらの黒鍵(本来は白鍵だけど目印のため黒にした鍵盤)を押す事で順次切り替わるようにしています。
期待通りの波形になっているでしょうか?
sin波
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221021.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221559.jpg)
三角波
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221155.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221732.jpg)
疑似三角波
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221851.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601221910.jpg)
矩形波
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222026.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222008.jpg)
PWM duty 25%
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222107.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222053.jpg)
PMW duty 12.5%
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222148.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222130.jpg)
ノコギリ波
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222232.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/r/robotoGAsensei/20240601/20240601222219.jpg)
概ね予想通りでした。
LPF出力にリプルが乗って太い線になっています。もっとシャープな線を実現するにはどうすればよいでしょうか? LPFは4.7kと1500pFのシンプルな一次のフィルタで構成しています。 カットオフ周波数(22.6kHz)に対してキャリア波の周波数(78kHz)が低い事がリプルの乗る要因だと考えられます。
- キャリア波の周波数をカットオフの10倍程度(226kHz)にする
- LPFを1次ではなく2次にする
カットオフ周波数を下げるのはどうでしょうか? 波形のエッジが立たなくなるので疑似三角波の階段部分や矩形波の立ち上がり・下がりに悪い影響が出そうです。 極端に下げるのはやめた方が良さそうなので、まずは上の2つを試してみたいと思います。