TK80/BSの
シンセシステムを復活/拡張したい〜
その38
FPAGシンセの作製
2019年
4月20日
先週、パラメータ設定器からFPGAシンセ本体へチャンネル/ファンクション番号が送信できることを確認しましたが、実際にパラメータを変更しもFPGAシンセ側に反映されませんでした。送信データのポストアンブルが間違えていました。FPGA側はプリアンプル=0xA5、ポストアンブル=0x5Aの時に有効データとしているところを、ポストアンブルも0xA5で送信していました。早速、パラメータ設定器のMSP430のプログラムを修正して動作確認します。
デバッグ用のロジックを追加して、パラメータ値をボード上のLEDに表示するようにします。パラメータを0x40にすると、正しく表示します。
パラメータを0x50にすると、LEDも0x50になり、シンセのパラメータも変更されるようになりました。
4月21日
2chのFPGAシンセのパラメータをパラメータ設定器から設定できるように、ロジックを追加、修正します。また、DCFの前段にDCOの各波形をミックスするミキサーを実装します。修正箇所が多いので少しづつ修正して、動作確認します。
5月6日
連休の前半でミキサーを実装したので、動作確認します。はじめにノコギリ波のみです。
続いて、矩形波のみです。矩形波のデューティはLFOとEGで変調できます。下はデューティ50%です。
続いて、基本波の2倍の矩形波のみです。デューティ比50と25%を選べます。下はデューティ50%です。
続いて、基本波の1/2倍の矩形波のみです。デューティ比50と25%を選べます。下はデューティ50%です。
次に肝心のミックスです。矩形波、2倍の矩形波と1/2倍の矩形波を同じ比率でミックスしてみます。矩形波のデューティ比は50%です。
上記と同じ比率で、デューティ比を25%にしたときです。
続いて、ノコギリ波、矩形波、2倍、1/2倍の矩形波を適当に加算して、ノコギリ+階段状に調整してみます。パラメータのうち、外部入力とDCO2は未実装のため、未検査ですが、その他は動作良好のようです。
DCO1の矩形波のデューティのパラメータを10にしてみます。出力は太い凸パルスです。
上記と同様で矩形波のデューティパラメータをF0にしてみます。出力は細い凸パルスです。このパラメータ値はノコギリ波と比較する閾値なので、パラメータ値とパルス幅は逆になります。
5月12日
以前にLFOを修正して三角波/矩形波と同時にゲート用信号を同時に出力できるようにしました。このIPを現在のロジックに組み込んでみます。細いパルスを作り、EGに入力して、周期的に発音してみます。正常動作しています。
5月15日
2チャンネル分実装しているFPGAシンセを4チャンネルに拡張しました。アパートでの作業なので、4つあるデルタシグマDACの出力をアナログディスカバリで確認しただけで、実際に音出ししていません。波形を見る限り、問題なく動作しているようです。リソースの使用率はLUTスライスが約30%、DSPが約26%(64個)です。これであれば8チャンネルまで組み込めると思われます。余裕があれば1chあたり、DCOとLFOを2個実装します。
4チャンネルをインプリしたデバイス図です。一瞬、半分以上使っているように見えます。
5月18日
アパートで実装した4チャンネルの動作確認を行います。デルタシグマDACの出力に抵抗を繋いで簡易ミックスして音出しします。問題ありません。
5月19日
4チャンネルから8チャンネルに修正します。リソースの使用率はLUTスライスが約67%、DSPが約53%(128個)です。
8チャンネルをインプリしたデバイス図です。空いていた下側も使われています。
8チャンネルのデルタシグマDACを簡易ミックスして、録音してみます。
DCFに入力する波形は矩形波の基本、2倍、1/2倍を40、30、10の比率でミックスします。
フーガの技法の1番(4声)を1〜4チャンネルと5〜8チャンネルに同じパートで出力して確認します。各DCOをデチューンして、少しLFOで周波数変調します。クリックするとMP3をダウンロードできます。録音時のパンポットとエフェクトは無しです。
パラメータ設定器にパラメータリストを表示するヘルプを追加しました。パネルにはP1〜6とSW1〜3のレタリングしかないため、全部のパラメータを覚えられません(笑)。ロータリエンコーダの3を押しながら4を押すとヘルプ表示に入ります。パラメータリストは最大で3ページあり、ファンクションによっては2ページもあります。ページ指定はP7の3つのスイッチで行います。下はDCO1の1ページです。
続いて、2ページです。
3ページはP7のスイッチの説明です。ロータリエンコーダの4を押しながら3を押すとヘルプ表示から抜けます。
ヘルプ表示用のテキストを編集して、パラメータリストを作成しました。緑色は未実装/未検証です。
[DCO1/2]
P1:Tune
P2:EG Mod
P3:LFO Mod
P4:Pw Offset
P5:Pw LFO Mod
P6:Pw EG Mod
P7:SW
1:Mod LFO1/LFO2
2:Pw LFO1/LFO2
3:EG Mod Nom/Inv
[MIX]
P1:Saw Lev
P2:DCO1 Pw Lev
P3:DCO1 Pw*2 Lev
P4:DCO1 Pw/2 Lev
P5:DCO2 Lev
P6:Ext Lev
P7:SW
1:DCO1 Pw 50/25%
2:DCO2 Saw/Pw
3:-
[DCF]
P1:Cutoff
P2:EG Mod
P3:LFO Mod
P4:Resonanse
P5:-
P6:-
P7:SW:
1:Mod LFO1/LFO2
2:-
3:-
[DCA]
P1:Hold
P2:EG Mod
P3:LFO Mod
P4:-
P5:-
P6:-
P7:SW
1:Mod LFO1/LFO2
2:-
3:-
[EG]
P1:Att Time
P2:Dec Time
P3:Sus Level
P4:Rel Time
P5:VELO Lev
P6:-
P7:SW
1:Manul Gate
2:LFO1 Gate
3:LFO2 Gate
[LFO1/2]
P1:Freq
P2:Pw
P3:Dly Att Time
P4:Dly Rel Time
P5:-
P6:-
P7:SW
1:Wave Tri/Pw
2:Mode Nom/Sync
3:Manual Gate
デルタシグマADC基板を接続するために、デバッグ用のSPI−DACをPMODコネクタからCHIPKITに移動しました。PMODコネクタ3つが空き、これでデルタシグマADCを接続できます。