2017年04月30日

HobbyTronics製UBB-MidiHostデバイスのファームウエアを書換える

USB-MidiHostのファームウエアの書換えを完了した。

Writeコマンドを送りつつ、5pin端子の右端をグランドに落としてBootloaderにリセットを掛けないと、チップが認識されないので、別途ジャンパー線を用意すること。 

IMG_6881.JPG

グランドラインはUSBシリアルの黒いグランド電位の端子に触れるのが一番簡単で安全な方法。 端子を離した時点でオレンジのLEDが点灯してリセットを確認できる。

WS001024.JPG
posted by Yasuski at 19:37| H8/Midi

2017年04月28日

Open.Theremin@VolumeAnt周りのプログラムを変更する

Open.ThereminOnTeensyのプログラムをアップデートした。

操作系が混乱するのを避けるために、プッシュスイッチでVolume調整の1項目をスイッチングする仕組みを仮設している。まずは専用の関数を追加して、、、

WS001015.JPG

後半を無音化した読出し波形を4096段階に拡張する。

WS001016.JPG

6波あったウエーブテーブルを1波にダイエット。

WS001017.JPG

D5端子を、機能切り替えスイッチとして登録する。

WS001018.JPG

スイッチ押しでPullUpされたD5がグランドに落ちると、新たに追加したpot20への数値の加算が可能となる仕組み。 

WS001019.JPG

WS001020.JPG

ウエーブテーブルの読み出しアドレスにオフセットを与えるために、新たなロータリーエンコーダー用の関数を追加。

WS001021.JPG

switch周りのコードを失敗している可能性があるので、ひとまず簡易な形で動作確認を行ったほうが良さそう。

WS001022.JPG

pot20の値に基本オフセット256を足した値がデフォルトとなる。 

WS001023.JPG

先の実証試験で明らかになったが、Teensy3.2に実装されたプログラムはオシレーター出力のレベル管理に問題があった。 今回の改変でアドレス値が変更となっているので、問題の再現性は微妙なところだが、ロータリーエンコーダーが負の値を生成しないように、リミッターの追加が必要となるかもしれない。
posted by Yasuski at 19:08| open.Theremin

Open.Theremin@VolueAnt側に新しい機能を実装する

現在、新型Open.Thereminの製作を行っているところだが、

IMG_6855.JPG

IMG_6857.JPG

IMG_6858.JPG

廃物利用したタクトスイッチに故障が発生、リプレイス品の到着まで実装の作業がストップしている。

以下に、新たに思いついた機能追加に関する備忘録を記す。

左手のポジションでオシレーターの切り替えを行う機能にPitch側の読み出しシステムを応用し、アドレス方向のステップを可変しつつ、読み出しポイントのオフセットを制御して、オシレーター群の音量が変移する過渡特性を調整することを考えている。 

ヴォリュームをコントロールする波形には、負の最大値をゼロポイントの起点とした1サイクルのサインカーヴの後端に無音領域を加えた制御波形を使用する。 この波形を読出すアドレスを一定量スキップさせてピークのQを、読み出し開始アドレスにオフセットを掛けてオシレーター間のトランジションを設定する。

読み出しのピークを離散させると、アルペジエーター的な用法を行えるかもしれない。

波形データの仕様は暫定の理想値で12bit✕4096stepとするが、現実的には処理の重さによって、これを調整していくことになるだろう。

ここからは、現時点で最新版のコードを俯瞰していく。 オシレーター個別の音量をコントールしているのは一枚目の画像例だが、

WS001012.JPG

現状で位相をズラした波形を6波用意しているところを1波+順番にオフセット値を増大させた5波といった形に改変することを考えている。

同時に、VolAnt側の観測値をそのままコントロール波形のアドレス読み出しポイントに充てているところを、二枚目の画像例に示すPitchAnt側の処理と同様にオフセット値を加算することで、音量コントロール波形の”Q"のコントロールを目論む。

WS001013.JPG

何処まで処理が重くなるか実測してみないと判らないが、現状で処理がカツカツな状態のTeensy3.2上では実効が厳しいだろう。

あとは、これらの機能を調整するコントローラーの物理的な配分が問題となるが、ロータリーエンコーダのアドレスを2面化することで実装が可能になる。 具体案として、カウンターの二巡目を表示するインジケーターを追加する方法が有効だが、インジケーターの設置場所を考えなければならない。
posted by Yasuski at 11:15| open.Theremin

2017年04月13日

KYMA7.12 Update

KYMAの新版が出たので、早速インストールしようとしたところ、

mr-fish.png

http://news.symbolicsound.com/2017/04/kyma-7-12-sound-design-software-update/

”ファイルが壊れている”とのアラートが出てアップデートの作業がストップした。

該当ファイルが何故壊れたのか原因は判らないが、他のドライヴで問題が発生しなかったファイル群をコッピってシステムを入れ替えたところ、問題は解決した。

が、肝心のTimelineが作動不能に陥ってしまい、午前中は例のオブジェクト並べ替えの黒魔術を行うことになったが、今回はどうやっても上手くいかない。

仕方なくオブジェクトのラインを1つ減らして現在はアラートなしの状態で稼働しているが、オプティマイズの作法が微妙に変わったために、会得した黒魔術が通用しなくなってしまった。

image.jpg

つまり、オプティマイズの性能が上がった反面、誤魔化しが効かなくなったということで、アラートが出てもなんとか動くというテキトーさが薄れた結果、動作限界の境界線がクリティカルになってしまったという、有り難いのかどうか判断が微妙な今回のアップデートであった。

Screen Shot 2017-04-14 at 1.14.31 PM.png

image.jpg
posted by Yasuski at 14:57| Symbolic Sound Kyma

2017年04月09日

Lattice/XO2へのデータ焼きこみ

5Vの電源を準備して、FPGAの焼きこみを完了した。

IMG_6801.JPG

正常な接続が確認されると、ispDOWNLOAD CableのSTATUSが赤になる。 旧型の中華製コピーモデルだが、動作に問題はなかった。。

IMG_6803.JPG

ブレッドボードを中継点として電源を供給している。 基板側の接続方法の選択を悩んだが、丸ピン型のICソケットを流用している。 接続ケーブルをブレッドボード準拠にすると、いろいろと作業がやり易い。 

IMG_6802.JPG

WS000973.JPG

専用のIDEソフトを立ち上げて書き込みを行う過程で、初回は電源の接続を間違えてエラーが出た。 

WS001004.JPG

凡ミスをリカヴァーした後にSTATUSが赤く変化したことを確認して、再度書き込みを行うと一連の作業は瞬時に完了した。

WS001003.JPG

書き込み完了時のIDE。 失敗すると緑の部分が赤くなりFAILの文字が表示される。

FPGAの動作確認は明日以降に行う予定だが、まずはクロックの分周をチェックすることから始めよう。
posted by Yasuski at 04:21| VHDL

2017年04月06日

Open.Theremin@FPGAのOpenDrain端子の耐圧を読み誤る

ようやくOpen.Theremin系のボードにパーツをほぼ実装し終えたが、FPGAにデータを書き込む前に耐圧の確認を行ったところ、OpenDrainの耐圧が5Vに対応していないことを発見した。 5Vを端子に印加した場合、抵抗を介してもチップが破損する可能性が高い。

仕方がないので、5Vの電源ラインからプルアップ抵抗へ至る配線をカットし、3.3V系に接続し直して様子を見ることにするが、このままではADATデコーダー側のHレベル判定に出力電圧が届かない。

今のところ思いつく解決法は、

1)3.3Vプルアップのまま5V系の電圧を定格ギリギリまで下げて、Hレベル判定の電圧をシフトする。
2)回線にレベルシフターを追加する

の二点だが、とりあえず、3.3Vでプルアップした出力をADATデコーダーに直結して様子を見ることにしよう。

追記:74VHC1GT08 を使ってレベルシフト回路を追加する方法があった。SN74LV1T34DBVR という選択肢もある。

WS001002.JPG
posted by Yasuski at 10:02| open.Theremin

2017年04月04日

ADAT@ステージ用AD/モニタリングシステムの製作

ADAT信号の中継にはDAC基板を転用することになった。 

WS001000.JPG

パソコン側に設置する受信ユニットはMIDI復調を行うので、Encoderの実装が必須。 送信側のように単なる中継器が必要な場合は、HFBRの復調・変調回路を直結するだけでよい。 

なお、受信側のユニットにはDACを搭載しない予定。 モニター回線が必用な送信側にはDACを実装する。

基板に実装する部品をまとめると:

送信側 AD基板 ADC/HFBR・transmitter/ADAT・encoder
      DA基板 DAC/HFBR・receiver/ADAT・decoder

受信側 DA基板 Toslink・RX/HFBR・TX (Data Transmit)
      DA基板 Toslink・TX/HFBR・RX/ADAT・decoder (Data Receive)

となる。
posted by Yasuski at 18:35| ADAT

ADAT@簡易にTOSLINK/HFBRの変換機構をテストする方法

ライヴ用のADAT AD変換ボックスを製作する過程で、モニター回線の必要性を感じて仕組みを考えていたところ、デバイス間の信号にバッファリングを行ってハンドリングするだけで簡易にTOSLINK/HFBRの変換機構をテストできることに気付いた。

WS000431c.JPG

これは、上り下りでワンペアになっているHFBRのケーブルを見れば容易に思い付けることなのだが、送信/中継のみのタスクに囚われていたためか、ヤヤコシイ周辺機構を完成させる手間を掛けてしまった。

WS000999.JPG

もちろん、スピーカーをチェインしていく従来の使用法に於いては、各サテライトに完全な音声再生システムを組み込む必用があるのだが、今回のような用途に於いて、再生システムはローカルに一つあれば十分。 送信側は単なる通信フォーマット変換器を用意するだけでよい。
posted by Yasuski at 13:22| ADAT

2017年04月03日

Open.Theremin@部品の実装について

Open.Theremin基板の裏面に部品を取り付ける過程で、実装を行う順番を間違えて往生する。 

IMG_6766.JPG

本来は、水晶発振子から実装すべきところを直近のSO-8のICを先に取り付けて仕舞ったのがマヌケ。

IMG_6758.JPG

水晶発振子のサイズがランドギリギリなので、予めランドにハンダを盛っておいたのを熱で溶かしこみながら圧着していく。 

IMG_6765.JPG

本来この手の部品は釜でペーストハンダを焼結させるのがセオリーだが、手実装の場合はハンダ鏝を挿入するための遊びが殆どないことを忘れてはいけない。

こちらは16bitDAC用の出力バッファー。

IMG_6774.JPG

後日部品が到着したので、更に難易度の高いSOT353サイズの1Gateチップの実装を行った。 左隣のダイオードはSOT-23-3サイズなので、SN74LVC1G08DCKRの小ささが良く判る。

IMG_6779.JPG

ついでに、レベルシフトICと電源ラインのLCフィルターを実装した。

IMG_6777.JPG 

電源フィルターのLは基板全体で10箇所も設置する念の入れようだが、効果の程は楽器が完成してみないと判らない。

IMG_6780.JPG
posted by Yasuski at 22:29| open.Theremin

ADAT@部品の実装

今日は1年半前に計画したままで長らく放置していたADAT規格のデータ送信基板を製作していたのだが、なんとシステムクロックを生成するPLL-ICの出力端子を間違えて配線していたことが発覚した。

pllFaultyPointEdit.png

配線をミスっている緑の基盤のプリントパターンをジャンパーで修正しつつ、ICの足を持ち上げて辻褄を合わせた。

IMG_6763.JPG

これがADATフォーマットで8chのオーディオを送信するシステム。 光学送信ユニットのランドを間違えていたり、クロックの分周回路の追加を忘れる等、多くの失敗をやらかしている基板。

IMG_6762.JPG

こちらは、ADATの受信部。 この基盤も、オプティカル系の部品のランドパターンを間違って仕舞った。 

IMG_6761.JPG

現物の購入を行った後に、物理的な部品の配置を確認すべき。

posted by Yasuski at 22:26| ADAT

2017年04月01日

Open.Theremin@FPGAを基板に実装する

ダイスチップを手配線した。 流石にこのサイズの作業はハードルが高過ぎてツライ。

IMG_6756.JPG

案の定、製作過程で一個を紛失。 そのうち出てくるだろうけど損失は大凡0.4k。

WS000996.JPG

肉眼での視認には限界があるので、ルーペ+マクロレンズで確認を行う。

IMG_6754.JPG

とはいえ、以前行ったピッチ変換基板への実装と比べれば数段は楽な作業だったので、小ロットの量産であればなんとかなるだろう。 どちらかというと実装よりも検品の手間の方が問題で、Teensyで走らせる断線チェック専用のアプリケーションを開発する必要がありそう。
posted by Yasuski at 13:15| open.Theremin