2018年3月3日土曜日

ベースマシン まとめ 2

去年簡単にまとめた「ベースマシン まとめ(弱め)」から、筐体その他いろいろと拡張していて自分でもよくわからなくなりつつあるので、ふたたびまとめてみておきたいと思います。

筐体


基本はMDFでフレームを作り、アガチス材で作ったサイドパネルをつけて見栄えを良くしています。

ベースマシンの筐体づくり
ベースマシン 筐体のサイドパネルをニスで塗装してみた。

シーケンサー部


ブロック図

Nucleo F401RE


シーケンサーのコアとなるボードです。ユーザーインターフェースからの入力(POT/Rotary Encoder/SW)をまとめ、SPI接続のGraphic LCDにフィードバックしつつ、シンセ部(Synth)にSPI通信でシーケンスを送信します。

電源はシンセ部(synth)から+9Vの供給を受けています。

ファームウェア mbed repository:
https://os.mbed.com/users/ryood/code/BaseMachine/ Revision:29

その他は「ベースマシン まとめ(弱め)」から、大きな変更はありません。

シンセ部


ブロック図

+/-9V PSU


DC12VのACアダプタから±9Vを作る電源ユニットです。

LT1054

5V/3.3V/2.5V PSU


±9V PSUから、5V、3.3V、2.5Vを作り出す電源ユニットです。±9V電源もパススルーしています。

5V/3.3V/±2.5V安定化電源

SPI Bus Buffer


シーケンサー部からのSPI信号をバッファリングしています。

SPIバス・バッファ(TC74HC541)基板の製作


PSoC4 DCO


PSoC4 Prototyping Kitを使った矩形波/ノコギリ波のDCOです。同じパラメーターで矩形波のパルス幅、ノコギリ波⇔三角波のモーフィングができるようにしています。

PSoC 4 Prototyping Kit DCOでけた。
PSoC 4 DCO ノコギリ波~三角波を可変して出力するようにしてみた。

ファームウェア
https://github.com/ryood/PSoC4_DCO/tree/master/PSoC/PSoC4_PrototypingKit_DCO_for_NucleoF401RE.cydsn

SVF DCF


最初はVCVS DCFを使っていましたが、仮想GNDの取り扱いに問題があり、新たにSVF DCFを製作しました。←VCVS LPFもいずれ作り直すつもりです。

SVF DCF
SVF DCF 出力のGNDを修正 仮想GNDの扱いには注意するべし

OTA DCA


NJM13700 DCAの基板でけた。


課題


KIK01とベースマシンをMIXして問題が見つかりました。

https://soundcloud.com/od-ryo/sync03

WaveSpecraでFFTしてみると

KIK01とベースマシンのMIX

1kHzとその高調波にピークが出ています。

おそらくF401REのファームウェアでRTOS Timerの1ms周期でシンセ部にSPI送信を行っているためだと思います。

ベースマシンのみ

ベースマシンのみの出音の場合は波形の歪が多く発見が困難。

KIK01のみ

KIK01は32kHz周期でエンベロープ波形を更新しているため32kHzにピーク。

上記が原因という確証はないのですが、ベースマシンの波形更新処理時間を測定するなどしてもう少し調べてみたいと思います。

ただ、mbedのRTOS Timerの割り込み間隔の最小は1msなので、更新周期を速くするにはタイマー割り込み(Tickerクラス)に変更する必要があるのでやっかいそうです。

こういう音(歪、ノイズ)と割り切る手もありそうですが(^q^;