TK80/BSの

シンセシステムを復活/拡張したい〜

その64

XFM2シンセの作製
MC80用バススイッチの作製

2021年
9月1日
アパート作業です。XFM2のGUIの続きです。XFM2_EditorYouTobe動画5分位からwaveset波形選択の説明が始まり、動かないと説明されています。現状では機能しなくて正解です。


9月2日
アパートの作業です。 DX7のROMの音色はXFM2_Editorを使ってシリアルフラッシュへ書き込みできますが、1個づつ書き込むため、全て書き込むのには128回行う必要があり、面倒です。Factory_Bank.bankの代わりに一体になったDX7ROMbankファイルを作成してみます。dx72xfm2でDX7のROM音色をXFM2用のSysexデータに変換すると、”音色名.syx”というファイルが32個生成されます。同時に音色名各パラメータの設定値が標準出力にログ表示されます。


先頭に00を書いて、syxファイルの先頭を5バイト飛ばしてから、その後2バイトになっているSysexデータを1バイトに結合して順次511パラメータ分を書くとbankファイルの元ができます。1つの音色パラメータの長さは512バイトです。


32個のファイル全てを
bankファイル形式に変換して、1つにまとめるスクリプトを作成して実行します。ファイルの大きさは32音色で16Kバイトです。


4つの
ROM1AROM1BROM2AROM2Bを結合する32音色が4つで128音色の64Kバイトになります。赤枠の05が付属のエクセルシートの先頭の1番のオペレータ1のアルゴリズムのパラメータです。


Factory_Bank.bankの代わりに作成したDX7_1_2.bankファイルをXFM2へ書き込みます。無事DX7のROMの128音色が書き込みできました。


変換時に出力されるログ表示から、音色名のリストファイルも作成しました。XMLにすれば音源定義ファイルも作れます。



9月4日
アパートでDX7_1_2.bankファイルを作成しましたが、続きでのROM3とROM4からDX7_3_4.bankファイルを作成しました。


DX7_3_4.bankファイルをXFM2にロードして動作を確認します。良好です。音色リストファイルも同様に作成しておきました


現在のシ ンセシステムはシーケンサがTK80BS互換機の2種類、MC80バスを受けるシンセが旧シンセのDCO(含むMC80)FPGAトーンジェネレー タFPGAシンセ、作製中のRep_Dmaウェーブテーブルシンセ、予備の4種類です。これらを相互に接続するMC80バススイッチを作製します。現在はTK80BSと互換機はケー ブルで切り替え、シンセ側はパラレル接続しているので、これをやめて、機器の電源の投入順序を気にしなくても良いようにします。回路はスリーステートバッファクイックスイッチで構成しましす。ブ ロック図を作って、ケースのリアパネルに取り付けるコネクタ基板を作製しました。30ピンのコネクタを8個取り付けました。


コネクタ基板はアングルコネクタボード接続します。8255の3ポートが30ピンに接続してありますが、そのうち、バススイッチに配線するのはポートAのデータ8ビットポートC4ビットの合計12ビットです。


9月5日
リアパネルの加工図QCADで作成します。ケースUSB−パラレル変換機やベロシティパッチと同じサイズの物を使います。2.54mmピッチで図面を作成します。


XFM2用にUSB−パラレル変換機のプログラムを変更します。USBから11チャンネルを受信した時にMIDIへ出力するようにします。1〜8チャンネルがMC80バスのシンセに使用し10(リズム)と追加の11チャンネルMIDIに出力します。これで11チャンネルXFM2で使えます。


XFM2の受信チャンネルを11チャンネルに設定して、動作確認を行いました。動作良好です。



9月9日
アパートの作業です。先週末にUSB−パラレル変換機を11チャンネルに対応させたのですが、XFM2のMIDIチャンネルを1と2以外にすると、ノートオン/オフ、プログラムチェンジ以外のSysexデータ受け取らなくなってしまうようです。ユニット1のMIDIチャンネルが1チャンネルの時は、GUIのXFM2_EDITORのPAN操作でパンポットは正しく動作します。


この時にRealTermで受信したSysexデータを表示さると、XFM2_EDITORPANの情報を正しく送信していることが分かります。


XFM2_EDITORでユニット1の送信MIDIチャンネル9チャンネルに設定します。


続いて、XFM2のユニット1の受信MIDIチャンネル9チャンネルにした後、FM2_EDITORでPANを変更すると、以前と同様にSysexデータを受信しますが、パンポットは変化しませんノートオン/オフ、プログラムチェンジはそれぞれ、9x、8x、Cxでメッセージ中のxにMIDIチャンネルが入りますが、SysexデータにMIDIチャンネルは無いので、GUIの問題ではなく、XFM2のロジックの不具合と思われます。



9月11日
バススイッチの部品をマルツの通販で購入しました。74LV245ピッチ変換基板、30ピンの圧接コネクタとタカチのアルミケースです。


左はクイックスイッチで別の基板に実装されていた74CBT3245で、ピッチは0.635mmです。この変換基板は幅広なので、中央を切り取り、幅を狭くしました。右は購入した新品のスリーステートバッファ74LV245でピッチは0.65mmです。


スリーステートバッファの74LV2454個、クイックスイッチ74CBT32458個ユニバーサル基板に実装します。


9月12日
クイックスイッチ中古デバイスのため、アナログディスカバリのパターンジェネレータでクロックを入力し、出力をオシロでレベル確認し、ロジックが正しく通過するか確認しました。動作良好です。


コネクタ基板と接続する、裏側の配線を少し進めました。


9月13日
お昼休み作業です。
バススイッチのリアパネルの加工をCNCフライスで行うために図面を修正します。CNCフライスで加工するためにはお作法があり、すっかり忘れていました。ガレージと同じ環境のFreeBSDが動く、WIN10のVMware上で変換結果を確認します。修正したDXFをCNC用のデータに変換後、CNCフライスの制御プログラムに読み込んで、切削動作をさせます。当然、機械は繋がっていないので、デバイスは/dev/nullです。ほんの1秒位で終了します。gnuplotでプレビューや、切削経過が確認できます。正しく変換できているようです。


バススイッチブロック図を作成しました。スリーステートバッファの選択は排他的、クイックスイッチは対象のシンセの電源が入っていたらイネーブルにします。



9月16日
アパートの作業です。今年の2月ごろのNexys Videoボードを使ったDMAウェーブテーブルシンセの続きです。Digilent社のDDR3を使ったI2Sの録音/再生デモのロジックから、DMA、I2SとI2Cを削除して、緑枠myip1MC80バスのデータのラッチDDS赤枠Rep_DmaFIFOデルタシグマADCを1チャンネル分追加しました。DDR3の温度キャリブレーションを定数に変更していますが、ベロシティ制御用のXADCはまだ追加していません。


必要なFMCPMODコネクタの信号線を制約ファイルに追加して、合成、インプリしてデバイス図使用量レポートを確認します。スライスの使用量は約12%です。上手く行けばNexys Videoボードで1チャンネルのウェーブテーブルが動作するはずです。その後はFIFOとデルタシグマADCの間にHLSで作成した、DCFDCAEGLFO1LFO2のFPGAシンセユニットを入れると1チャンネルのウェーブテーブルシンセができる予定です。先は長いです。


秋月でNexys Videoボード期間限定の9月末まで46400円で安売りしています。1万円以上安くなってます。



9月18日
今週末から1週間遅い夏休みです。
バススイッチ配線を進めます。


9月20日
バスの入出力のイネーブルを制御する74HC00のICソケットを3個追加し、フロントパネルコネクタも追加します。


リアパネルの穴開け加工をCNCフライスで行います。生アルミなので、柔らかくバリが出ます。


基板固定用の穴とフラットケーブルのコネクタの加工が完了しました。全て2.54mmピッチなので、ネジの位置もぴったりです。圧接コネクタも干渉しないことを確認します。


9月21日
フロントパネルレタリングの原稿をQCADに入力します。ドリルセンタ文字ラインレイヤに分けて作成しました。


HeeksCNCでDXFをGコードに変換し、その後、レーザ加工用に変換しNCVC確認します。


問題なさそうなのでレーザ加工機でレタリング刻印を行います。パネルは黒のアルマイト処理です。穴加工用のドリルセンタもマーキングします。



9月22日
接続機器から電源ステータスを出力するように改造します。初めにUSB−パラレル変換機です。切り子が中に入らないように厚紙で保護して、電動ドリルで3.5mmジャックの穴開けを行います。電源ステータスの追加完了しました。


フロントパネルのドリルセンタポンチを打ってボール盤で穴開け加工を行いLEDを取り付けましたが、緑LEDが漏電してます。LEDは3mmで樹脂が薄く、アルミパネルのエッジ電極に接触しています。エポキシ接着剤で固定した後に見つかったため、一度接着剤を剥がして漏電しているLED3個を交換しました。


FPGAシンセに電源ステータスを追加しました。


続いてFPGAトーンジェネレータです。こちらも電源ステータスの追加完了です。


9月24日
続いて、MC80+です。リモコンから電源ステータスが取れないか、分解してみましたが、5Vでは無く、C−MOSの4000シリーズを使った6V電源でした。基板が追加されて、アナログスイッチが実装されていました。記憶が無いです。


リモコンからの電源ステータスはあきらめて、リアのヒートシンクに付いている5Vの3端子レギュレータから150オーム抵抗を介して分岐しました。L字金具を作って絶縁ジャックを取り付けました。



MC80+のリモコンですが、標準フォーマットではありませんでした。前に購入したマルチファンクションテスタはリモコンのデータ表示機能があるので、確認してみましたが、認識されませんでした。普通のテレビ用のリモコンなら右のように波形コードが表示されます。このリモコンは80年代に秋月で売っていたものです。MC80+のスタートストップがリモコン制御できます。


TK80BS本家から電源ステータスを取り出します。筐体を分解するのが面倒なので、拡張インターフェースバスの電源から取り出す専用のコネクタケーブルを作製しました。抵抗はジャック内に実装しました。


秋月で購入した部品が届きました。安売りしてたNexys Vedeoボードユニバーサル基板74HC00、2.5mmプラグジャックです。
プラグとジャックは個数を間違えました。9個必要なところ、8個しか買ってなかったです。


ついでに購入したFT232Hモジュールです。USBからGPIOSPIを制御できます。FreeBSDから制御する予定です。


2.5mmプラグとジャックの数を間違えて足らないので、仕様変更して、TK80BSと互換機の電源ステータスはフラットケーブルで送ることにします。バスの30ピンのケーブルは4ピン余っているので、その内2ピンを電源ステータスに使います。初めはTK80BS本家です。シンセ用の8255コネクタに抵抗を追加して5Vへ接続しました。上で作製したコネクタケーブルボツになりました。


続いて、互換機の電源ステータスです。同じく、拡張インターフェースのシンセ用コネクタに抵抗を追加して5Vへ接続しました。


9月25日
フロントパネルの配線を行います。赤枠の入力切替側のジャックは3.5mmに変更しました。この2個のジャックはフラットケーブルから電源ステータスが来るので未使用です。


バススイッチはUSB−パラレル変換機と接続します。30ピンの圧接コネクタフラットケーブルで接続ケーブルを作製します。下の2本がUSB−パラレル変換機の接続用、上がFPGAシンセのケーブルです。


9月26日
バススイッチのリアパネル基板間の配線、フロントパネルの電源の配線を行いました。


バススイッチの上にUSB−パラレル変換機を乗せます。上で作製したケーブル接続してみます。


動作確認を行います。初めに入力側です。TK80BS互換機を接続して確認します。両方の電源がオンの時には互換機優先になることを確認しました。


続いて、出力側です。旧シンセ用のバスはMC80+DCOFPGAトーンジェネレータUSB−パラレル変換機の4つ全ての電源がオンになっていればイネーブルです。2.5mmのプラグにダミーの電源を接続して確認しました。他のバスは対象機器USB−パラレル変換機の電源がオンになっていればイネーブルです。制御回路は動作良好です。


実際に音出しして確認します。USB−パラレル変換機は使用しないで、ケーブルでスキップさせて確認します。動作良好です。


続いて、USB−パラレル変換機を接続して音出し確認しました。正面から見ると赤LED明るすぎですが、動作は問題ありません。


旧シンセのDCOから電源ステータスを取り出します。DCOは1chだけMSP430のDMAを使ったROMエミュレータが接続されています。USBケーブルを通すためにボリューム外したを使っています。この穴を通して電源ステータスも取り出します。MSP430の5V電源に抵抗を介してケーブルを接続しました。







back