2017年10月05日

Open.Theremin@最初に製作したモデルのリファインを開始する

記念すべき初代Open.ThereminをTeensy搭載ヴァージョンにリフレッシュする作業を開始した。

IMG_7649.JPG

この製作は、オプションを搭載しない「素」の状態のモデルを検証する意味合いを持つ。

外装は黒いシャシーのモデルと同じHammond製だが、こちらは射出成形ではなくオーソドックなキャスト系。 エフェクターによく使われて有名な1590シリーズをベースにしている。

IMG_7647.JPG

白基板はオリジナルのUNOと比較してサイズが大きいので、実装時のクリアランスはギリギリになる。その結果、ピッチ・アンテナ端子の取り付け位置や側板固定用のネジ長を調整する必要が生じてしまった。

ちなみに、極初期には件のUNOを搭載していたが、クリアランスがギリギリで、なにかと断線等の問題が発生していた。 それを反省して超小型ArduinoのExtraCoreに換装した結果、内部はスカスカになった。

IMG_7648.JPG

基板は裏板に固定される。

側板の取り付けネジが白基板と干渉することが判り、ネジの先端を4mmほど切り落として長さを調整している。 Teensyは白基板に直付するが、サービス用にUSB端子を引き出したほうが後々何かと便利である。

IMG_7645.JPG

木製(シタン)の土台を接着し、そこにネジ止めする方法でスイッチを固定している。 万が一スイッチに故障が発生してもアセンブリー交換が可能となった。 白基板上面とスイッチのクリアランスがギリなので、基板には予めガラステープで絶縁を行っておく。 ロータリーエンコーダーはサービス性を考えてコネクタ接続にしたほうが良いかもしれない。

IMG_7646.JPG

目玉スイッチは、完全に作り直すことになった。 元は4方向+1にクリックが可能なタクタイルスイッチを選択していたが、同じ機能を2個のロータリーエンコーダが引き受けるため、今回は単純なスイッチに変更することにした。 スイッチのシャフト長が変わったために、取り付け位置には新たにオフセットを掛ける必要が生じている。

出力は、TeensyのDAC0/1及びOpen.Therein/V1基板のMCP4921の合計3chで、分解能/サンプリングレートはオリジナルと同じ12bit/31.25kHzで音声が出力される予定。

コントロールは通常通りRGBロータリーエンコーダーで行う。 背面のUSB端子はmini-Bに変更する予定。
posted by Yasuski at 08:48| open.Theremin

2017年10月02日

Open.ThereminOnTeensy@オリジナルV1/V2基板への対応

第三世代ボードの拡張機能に関しては、そこそこ需要があるようで、特に大した数ではないものの海外からのアクセスが伸びている。 ただし、この結果は遠回りにV1/V2基板の扱い辛さを反映している可能性もあり、実際V2基板の改装トピックとは閲覧数が伸びるスピードが全く違う。 V1/V2ユーザーは死滅してしまった可能性を考慮すべきだろう。

とはいうものの、作ってしまったV1/V2基板準拠の白基板を無駄にしないためにプリントパターンの修正を考えているのだが、R53/R46をテント型の立体実装にして、そこにカップリングコンデンサーを挿入するのが一番簡単で確実な方法だろう。

replacementPartsForWhitePCB.png

これはV1/V2基盤ユーザーの救済措置でもあるわけだが、ある程度の電気的な知識を持たないと配線やセッティングの過程で戸惑うことになる。 

従って、販売時には電子工作スキルの必要性を徹底して周知することになるが、これはV3基板でも同様で、特にアンテナ長の影響によって、オシレーターのチューニングレンジが外れる現象を解説しなければならない。 自分の場合は現物合わせでV3基板の10pFを取外しているが、周波数レンジの判定には測定器が必要だ。 

別の観点から考えると、チューニングレンジの不適合問題をある程度回避する方法としてロッドアンテナ形式の採用が有効で、多少見てくれが悪くはなるが極小なコンデンサーチップを引き剥がして基板を破壊するリスクを犯す必要がなくなる。 

測定器の代わりに簡易な周波数カウンターを自作するキットを開発する方法もあるが、スペクトルの観測に慣れてしまうと、数値のみの判定はまどろっこしく感じてしまう。 最近は安いSDRが大量に出回っているので、そちらを紹介してもよいだろう。

次のヴァージョンは緑基板になるが、こちらは全入力ポートにレベルシフト用の抵抗を配しているので、D4/D5/D6/D9の配線が異なるV1/V2基板への適合は比較的容易に行えるはずだが、そのためにはSMDの配線を行うスキルが必要だ。 現実的には事前に対応するボードを確認して出荷することになるが、エクストラ・コストは請求出来そうにない。 

で、これを機会に改めてV1/V2基板のD4/D5/D6に割り振られた機能を確認したのだが、

WS001145.JPG

端子の内実はBUT/LED/PWMなので、とりたててV1/V2基板から本体に接続する必然が無いことを確認した。 

対応が必要と感じる場合も、D4/D5回路に挿入されている抵抗を実装せずに回路をフローティングさせるだけで作業は完了する。 PWMを扱うD6はオペアンプ入力なので、緑基板側でグランドに接続した抵抗を残したほうが良いかもしれない。 V1基板の場合、D33への接続をカットして、DAC1/0の何れかを接続すれば、CVアウトも可能となるが、この場合はV1基板のオペアンプをリプレイスしなければならないので、あまり意味は無いだろう。どちらかというと、音声端子の拡張と考えるべきか。

ちなみにV2基板ではPWM受けの機能がカットされているので、考慮する必要が全く無くなる。

技術革新が著しいSDRを検索したところ、比較的安価で高性能そうな製品を見つけた。

http://www.sdrplay.com/

より安価なRTL-SDRとアップコンバーターを組み合わせる方法もあるが、差額が5k程なので、あまり考慮には値しないと判断している。 資金に余裕ができたらRSP-2の購入を検討しよう。

追記:

Teensyを基板直付にしつつ、基板を倒置せずにロータリーエンコーダをコネクタとリボンケーブルで接続する方法が一番合理的と結論した。 MCUの直付を選択した理由は、変換基板やリボンケーブルで配線を引き回す方法では無駄に厚みが出てしまう点で、特にキャストケースへの実装が厳しくなることを考慮したため。 通信ラインが5Vトレランスになるので、3.6は使用できない。

このデバイスを販売する場合にTeensyの事前実装を行うか迷うところではあるが、郵送費を考えた場合、入手はユーザーに任せた方がトータルでコストを抑えられると思う。 出荷前の試験には、足の長いピンで基板をサンドイッチする等の構造を持った接続クリップを用意しつつ、実装方向を倒置した評価専用のTeensyを導入する必要がある。
posted by Yasuski at 10:50| open.Theremin

2017年10月01日

Open.Theremin@3rdDACの追加を行う

Teensy3.5のDAC出力ラインを増設していた白基板が不調になり音声出力の調査を行ったところ、V3基板に載っているMCP系列のDACとの通信が途絶しているようだ。

考えられる原因は直近に配線したDACの信号ラインが怪しいということで図面を見直したところ、DACの端子が1つズレて配線されている失敗を発見、コレを修正して無事MCPとの通信が再開された。

IMG_7582.JPG

そもそも、DACへのラインはコンフリクトを恐れて予めソケットから排除されていたので、白基板上でなにをやっても音が出ないのは当たり前。 改めて直接に配線を行ったものの、今度は参考にした図面でSMDのレイヤーを勘違いした結果、間違った場所のコンデンサーに接続を行うという更なる失敗を連発してしまった。

物理面の不具合をフィックスした結果DACに接続は出来たのだが、予想した通りMCU側の処理能力がカツカツでアンテナのセンシングが不能となった。 TeensyのDAC出力2つを同時に活用するのは無理ということで、やはり本格的に音声をいじりたい場合はTeensy3.6の採用が必須と言える。

以上の実験によって、Teensy3.5の限界が見えてきた感じだが、V3基板を含めた3chの出力を達成することが出来たのは地味に目出度い。



先日アップした「ハードウエア上にポリフォニック音源を実用化した映像」に早速反応があり、「コード見せて欲しい」との要請があったが、ハードの仕様が固まるまではオープンにしない予定だ。

ハードウエア製作の面から見た障壁を考えた場合、異なるアーキテクチャのMCUにコードを移植するのが一番ハードルの高い作業だが、その次に立ち現れて来たのがDACの選定だった。

Teensyにおける音楽用DACとのシリアル通信では、なぜか周波数のセンシングを行うポートが占有されるためにこれを使うことができない。 故に単純な3線通信を行えるDACを選ぶことになるのだが、最近のものはインテリジェント化されたカーステへの採用を意識しているのか、ヘッダーに妙なコードを書き込む必要がある仕様のものが殆どで、シンプルな用法の、特に16bit以上の分解能を持った製品を探すのは大変だ。
posted by Yasuski at 18:46| open.Theremin

2017年09月30日

Open.Theremin@2ndDACを駆動する

音声出力系のリファインを検討する過程で、リミッターの導入を行った。

WS001144.JPG

これにより、VolumeAntから生成されるValueの帯域を制限している。 最終的なデータ幅は12bit×12bit=24bitとなるが、同様な機構をWavetableをミックスして音声データをDACに送る手前の段階に設置することで、データのオーバーフローに拠る急激なクリップの発生を阻止している。

画像は、ダイナミックレンジのテストを行っているところ。



処理に余裕が出てきたので、遊んでいるOpen.ThereminV3基板のDACをドライヴしてみた。



2ndDACで扱う音声はOsc1の単音で、今のところ左手に拠るトランジションコントロールには対応していない。これはアンプ側の音量設定次第だが、2ndDACからの出力を基音として扱うことで音の濁りを緩和できる。 

実際の運用では、基音のみにリヴァーブを掛ける等、エフェクトやパンニングの設定で独自の音場を構成出来るので、これから用法を探っていきたいと思う。
posted by Yasuski at 10:46| open.Theremin

2017年09月29日

Open.ThereminOnTeensy@PreliminarySpec


The Teensy Interface board for Open.ThereminV3

Basic:
@ Logic Level converters: Up to 5V torrent signals transmit to Open.ThereminV3 board.
@ Logic Level attenuaters: Down to 3.3 V torrent signals receive from Open.ThereminV3 board.
@ 2 RGB Rotary Encoders with drivers: RGB illuminations with switches.
@ DC input with regulators: +8 to 15V DC input range. Separeted Digigal/Analog VCC lines.
@ The board has no audio chips. The audio signal is out from Open.ThereminV3 board.
# The price will be $70.00.

Option01:
@ Stereo audio ouputs from Teensy 12bit DAC0/1.
@ The board has 2 LPF and opamps with mini stereo jack.
# The additional price will be $30.00.

Option02:
@ 16bit audio output from Max5541 with Teensy DAC. (stereo outputs)
# The additional price will be $30.00.

Option03:
@ Extra 16bit audio output from Max5541. (real 16bit stereo outputs)
# The additional price will be $30.00.

Option04:
@ Audio Clock option with 27MHz X'tal and dividers (include FPGA).
@ The clock drives the open.Theremin by 32/44.1/48/96kHz WCK.
# The additional price will be $50.00.
posted by Yasuski at 06:50| open.Theremin

Open.ThereminOnTeensy@取説ヴィデオの製作

シンプルなインターフェイス故に発生する「レイヤーが深く直感的に理解し辛いUI」の解説を試みた。



UIの難解さは楽器の筐体サイズを変更すればある程度解消が可能だが、自由になる端子が限界に近いので、専用の基盤を起こさない限り対応は難しい。 OLEDパネルを追加してGUI化するのが一番賢そうな選択肢だが、画像処理分のタスクを割かれて発音に影響が出るようでは本末転倒になってしまう。 

IMG_7581.JPG

解決策として思いついているのは、アンテナのセンシング機能を省いた音声編集専用機の製作。midiによる駆動を可能にすれば、簡易音源としても使用できる。センシングに割かれていたタスクをGUIに割り振れるので、限定されたUIを使った煩雑な作業から開放されるのも良い。

問題は楽器と編集機の通信方法で、現在はEEPROMに書き込んだデータをシリアルモニターに書出し、それを書き込み用のプログラムにコピペするという原始的な方法しか思い付けていない。 MicroSDにデータをストアするのがスマートな方法なので、データのやり取りを行えるように機構を研究しなければならない。
posted by Yasuski at 04:32| open.Theremin

2017年09月27日

Open.ThereminOnTeensy@

Thereminの左手で音色をコントロールする機能のリファインを完了した。

IMG_7568.JPG

データのオーバーフローを予防するために、荒っぽいが単純な非線形処理を行っている。

今までは、データのオーバーフローを検知してビットシフトを行うという乱暴な仕掛けの所為で盛大にノイズが発生していたが、これで破綻に至るまでの過程がソフトになった。



FPGAはオーディオ・クロックの分周機能のみ使用しているが、デバイスのフットプリントを考えると微妙なところ。 改良を行った次のヴァージョンの基盤上で3.6を運用して結論を出す予定だが、単価は0.2kも違わない。

IMG_7565.JPG

アンテナの干渉を考慮して、もう少し横長のケースを試してみても良いだろう。

IMG_7567.JPG

ラフな内容の演奏だが、Thereminでバウンシングが出来ることを発見した。  

誰かが既に演ってそうではあるが、、、自分は見たことがない。



リチウム系二次電池を電源に噛ませたアンプをACと併用する場合、偶に発生する電圧降下の影響でテルミンにリセットが掛かってしまうことが判明。 ライヴでは2次電池のみで演奏しないとマズイ感じがする。

IMG_7580.JPG

Ver.2からの改良点をまとめると、、、

1) O.T. V3基盤の仕様変更に伴うpin配置の修正
2) 5V tolerance前提の設計を変更し、O.T基盤からの信号ラインに抵抗分圧回路を追加、Teensy3.5/3.6の共用を可能にする
3) SampleClockラインにジャンパーランドを設けることで、AudioClockオプション選定時に必要だったO.T基盤との接続ピンの取り外しが不要に
4) アンプ側からの電源供給に伴うドロップダウンによる発熱対策として、熱容量の大きなレギュレーターICを採用
5) V3基盤から増設されたCS02対策であぶれたLDACラインに1GateLogicを追加
6) 基盤の色はコートの薄い緑に変更

OtDuino405g.png

オーディオ系のラインアップに関して、素のヴァージョンはV3基盤を活かす方向で考えているが、16bitDACは1個ずつ増設するオプション扱いとする。

暫定的な仕様をまとめると、

1) V3基盤からクロックソースを得て、V3基盤のDACから出力する素のヴァージョン。 単価7k?

2) TeensyのDACから出力するヴァージョン。 オペアンプを噛ませたステレオ出力。 +3k

3) 16bitDAC、MAX5541を追加。 モノラル出力+Teensy12bitDACが1chのステレオ出力が可能。 +3k

4) MAX5541を追加。 16bitステレオ出力が可能。 +3k

5) オーディオクロックの追加。 4種類のサンプリングクロックを選択できる。 +4k

フル装備で20kは妥当???


IMG_7571.JPG

キャリブレーションにFTM3を使用する可能性があるので、今一度詳細を復習しなければ。
posted by Yasuski at 00:33| open.Theremin

2017年09月24日

Open.ThereminOnTeensy@

ひとまず、楽器としての体裁は整えた。



諸々の配線を失敗しまくっていたが、

IMG_7562.JPG

IMG_7564.JPG

IMG_7553.JPG

IMG_7554.JPG

IMG_7555.JPG

ハードウエア由来であろうピッチレンジの狭さを解決できていない。

あと、キャリブレーションモードでVariCapを調整し、通常は値をソフト的に操作してチューニングを行う方法を試したいのだが、いまのところswitch/case内で、DACにデータを送信するサブルーチンに入れない問題を解決出来ていない。

音質的には、敢えて楽器単体の出力が苦手な新型アンプに接続して評価を行ってみた。 

IMG_7546.JPG

前段にエフェクトを掛けることでアラを隠してはいるが、ワイドレンジな再生環境でも、高音の乱れはあまり認められず、Teensy3.2/12bitDACとは明らかに違ったクオリティーで音声を出力できた。

FPGAの実装を失敗しているため、残念ながらAudioDACの使用は不可だった。 

IMG_7454.JPG

ID-292のテストではFPGAの出力を確認しているので、チップのプログラム自体の問題ではなさそうだ。

ともあれ、Teensy3.5では処理時間が間に合わないので、次のヴァージョンではMaximのDACを追加して、ステレオ運用を目指すことに計画を変更した。

otduino405.png
posted by Yasuski at 09:06| open.Theremin

2017年09月19日

Open.ThereminOnTeensy@回路の評価

プログラムミスを確認しつつ、ハードウエアの検証を行っているところだが、ID-292の方のTeensy3.6がご逝去されたため、これを手持ちのTeensy3.5に換装して実験を継続することになった。

V3の方は、RadioTestSetでOpenTheremin搭載のオシレーターの発振を確認している。 問題はマイコン側のオーディオクロックで、RadioTestSetでは表面実装発信器からの27MHzを確認できず。 オンボードのクロック源がダメな場合は、OpenTheremin基板からクロックを引っ張ってくることになる。

オシレーターのEnable設定を間違っている可能性もあるので、まずは端子の状態から調査していく。

その後、測定方式を変えて確認した結果、オーディオクロックの原発振と分周は問題なく行えていた。 TestSetのオシロスコープは性能が悪く、27MHzのクロックはスペアナで確認することになるが、これは問題なかった。

次に怪しげなポイントは、実装が難しいFPGAの信号系だが、こちらはリセット端子の設定が疑わしい。 結局不具合の原因はソフトウエア側の記述間違いで、立ち上げ時に"L"から"H"にレベルをを固定することで問題は解決した。 ソフトウエアの修正後は、綺麗なオーディオクロックを吐いている。

なんとID-292版に新たに投入した3.5もご逝去される最悪のパターンにハマるも、死んだ筈の3.6が一瞬復活する。

復活時にクロック系を調べてみたが、無事WCKの出力を確認した。 DAC及びFPGAへのデータ転送は、内容は不明だがひとまず形だけは送信されている模様。

が、今回もまた作業中に電源がご逝去というケースに陥ってしまい、電源周りに何か変な影響が発生していることが判明した。 

何れの故障も電源ICの短絡破壊に拠るものだが、死んだ部品を取り払って積み替えると、マイコン自体は復活することが判明しているので、壊れたICの表面実装部品を引剥して、より修理が簡単なSOT23クラスの部品をピギーバックさせて復活を目論む。

結局、ケース収納時に遊んでいる端子が悪さをしている可能性が高いので、端子群を纏める方向で改良を行う予定。

で、マイコンが死滅した現在、結局はアナログ面を詰めていくことになるのだが、故障前から発覚していたのがVolumeAnt側のリファレンス・オシレーターの発振不良だった。 原因を究明したところ、シングルケートのLogicICのダブル短絡に拠るものだったので、フラックスを塗布した後、端子を加熱して短絡を排除したところ部品の損壊はなく、無事発振を開始した。

ここで、オシレーター群のデフォルト値を測定してみた。

まず、バラクタ側は電圧を印加しない状態で、460~480kHzの大凡設定通りのポイントで発信している。

次に固定発信機の周波数を測定したところ、バラクタ側の+100kHz辺りに居て、これは直列100pFによる影響と思われる。 ここは、新たに50pF強のバランサーを追加して、今よりも周波数を下げなければならない。

V3対応基板の方は相変わらずで、どうやってもキャリブレーションモードに突入できない。 そして、入力に設定しているはずの端子には謎の発振が、、、。
posted by Yasuski at 14:21| open.Theremin

Open.ThereminOnTeensy@初動は失敗に終わる

ようやく試作テルミンに通電を行ったものの、ID-292系列は5V系のICに配線ミスが発覚して、電源が飛ぶ寸前となった一方、Arduino互換ピン配置の方はオーディオ再生が行われず、キャリブレーションモードにも入れない。 また、VolumeAnt側の発振が認められず、なんらかの問題が発生している模様だ。 故障への対応策として、まずID-292系列では短絡破壊が発生している半導体を発見し、これらを撤去しなければならない。

IMG_7528.JPG

で、調査の結果、このエリアの1GateLogicICがなんとライブラリの端子配列のミスで全滅していた。 配線ミスを無くすためのライブラリそのものの設定が間違われてた失敗は、基板設計の段階では懸賞のしようがなく救い難い。

IMG_7522.JPG

早くもバラック状態となったID-292ケース。 今回から、基盤の配線をピン接続にしたのは正解だった。

IMG_7530.JPG

その後、短絡破壊を起こしたLigicICを取り除き、新たに手配線による部品の再実装を行った。

IMG_7531.JPG

土台となるSOICに耐熱両面テープを使って、SOTをピギーバックさせ、極細テフロン電線で配線を行っている。 
ライブラリでは電源ピンに相当する赤と黄色の配線が逆になっていた。

IMG_7532.JPG

これは、本来SOTが実装されていた面。 極細テフロン電線の手配線で信号ラインを引き出している。 adatのパワーオンリセット用のSOTはこちらの面に実装している。

IMG_7533.JPG

まさか、14pinSOICの上にさらなる部品をピギーバックさせる情況は予想していなかった。 耐熱両面テープは色んな場面で便利に使っている。

IMG_7534.JPG

こちらの面では、adatに至る信号ラインのレベル変換を行っている。 テフロン電線の芯線は脆いのでハンダ付け終了後の折損に注意しなければならない。

IMG_7529.JPG

一方のArduinoUno互換ボードの方は、LEDの点灯回路自体に問題はなさそうだが、クリック・エンコーダーの位置が想定とは逆になっていた。 LEDのカラーの順番もオリジナルから逸脱しているが、これはプログラムにより変更が可能。 

ただし、RGB配列のうち、モード切り替え側の青と赤が入れ替わる間違いが発覚している。

プリセット選択側は、

黒→白→黒→白→緑→青→青緑→赤→黄→紫 

の順番が、

白→黒→白→黒→紫→青緑→青→黄→赤→緑

となっていて、修正が必要。

ロータリーエンコーダーの機能が正常に動作しているかどうかは現時点では確かめようがないが、まずはクロック系の確認から行っていく。

問題は、キャリブレーションモードに入れない状態と、VolumeAnt側の発信器が動作しない現象で、これはソフト・ハード両面を切り分けて対策を行わなければならない。
posted by Yasuski at 09:45| open.Theremin