2023年03月02日

LaVoixski@Arpeggiatorのバグを解消する

Arpeggiatorの Up/Down Mode に潜んでいたバグを修正した。

IMG_20230302_043642150.jpg

UP/DOWNの演奏パターンの不具合を解消しつつ、表示系の不一致点を洗い出して対策を行っている。

まず、Arpeggiator にリセット機能を追加し、、、

Screen Shot 2023-03-02 at 12.08.36.png

TopSwitch の DoubleClick に発動条件を組み込んだ。

Screen Shot 2023-03-02 at 12.08.21.png

Up/Down Mode 選択時に発音するノートの両端が重複してしまうバグを発見、該当する箇所に修正を行った。

ノートが重複して発音されるバグの原因は、昇降時のリミッターの設定値にあった。  設定値の修正により、Up/Down Mode 選択時の Step 数の合計は (Step x 2) - 2 となった。

Screen Shot 2023-03-02 at 12.09.35.png

Step 数の変更に合わせて、Step 数を表示系にハンドリングするコードの修正を行っている。

Screen Shot 2023-03-02 at 12.09.55.png

Arpeggiator が選択したフレーズの概要を確認する表示系のコードにも修正を施した。

Screen Shot 2023-03-02 at 12.49.52.png

表示が不正確だったカーソルの位置を修正するために、Up/Down Mode の選択を条件分岐で判定する機構を追加した。

Screen Shot 2023-03-02 at 12.09.01.png

今回は、修正・追加したファイルが 6枚に至る、最近では中規模な改装となった。

posted by Yasuski at 13:11| LaVoixski

2023年02月27日

LaVoixski@PWMの発振周波数が音声に与える影響について

LPFにModulationを掛けた時にノイズが発生することが判明した。 PWMを駆動するために発動されたインターラプトの頻度が音声に影響を与えているようだ。

制御波形 (LFO) のエッジの部分で出音にノイズが出現するパターンは、グリッチと似ている。

原因として考えられるのはPWMに行った可聴帯域外への発振周波数の変更しか思い付けず、周波数をより低い値に再設定して様子をみることになった。

まず、オリジナルの設定から周波数設定値の逆算を行った結果、16bitフルスケールの65535に設定した場合の発振周波数は約2289kHz、また、発振周波数を20kHzに設定する場合の数値は7499となった。

ちなみに、トラブル発生時に設定していた数値 4000 に対応する周波数は約37.5kHzで、これは流石にオーヴァースペックが過ぎた。

数値を変更しながら試験を行った結果、20KHz ≒ 7500 では完全にノイズが解消されず、倍の設定値 8000 から漸増した結果、最終的には設定値 10000 ≒ 15kHz で折衷することになった。

Screen Shot 2023-02-27 at 14.12.41.png

PWMから放射されるノイズに関しては、DACを物理的に分離することで逃げられるのだが、ID-292のようにギリギリの実装を行っている場合は別のアプローチを探さなければならなかった。

ソフトウエア側でハードウエアの処理能力と折衷できるポイントを探す一方、折衷を要求される原因は「パラメータを突っ込み過ぎた」結果なところもある。 最終的には何処かの(ハードウエアを含めた)機能を削ることになるのだろう。

何れにしても、動作が不安定になるポイントが発生してしまうので、ユーザー側はそれを回避する方向で、音色の設定を行うことになる。

追記:

LFOの波形を読み出すWavetableのアドレスを uint16_t でキャストした結果、グリッチ・ノイズをほぼ消滅させることが出来た。

Screen Shot 2023-02-28 at 17.40.25.png

追記2:

暫定で、PWMの周波数を20kHzまで上げている。

Screen Shot 2023-02-28 at 21.08.49.png
posted by Yasuski at 15:11| LaVoixski

2023年02月19日

LaVoixski@反転出力選択時のレベル設定について

オーヴァーレベル設定のwaveMixアドレスの選択時に、Rchの出力を反転させると発生していた「過剰な歪」を防止する機構を追加した。

Screen Shot 2023-02-19 at 20.10.13.png

これは前触れなしに来る「パッツン系の歪」で、音楽的に美しくないタイプの音色。

Screen Shot 2023-02-19 at 21.46.24.png

追加したコードは neg_Out 作動時の出力に -0.5 が掛け算される仕掛けで、出力が過渡的な変化無しでいきなりクリップすることを防止している。
posted by Yasuski at 21:51| LaVoixski

2023年02月14日

LaVoixski@PWMの発振周波数の初期設定を変更する

pwm.c の書き換えを行って、PWM の発振周波数を可聴帯域外に変更した。

PWM の設定を行うファイルの場所はここで、、、

Screen Shot 2023-02-14 at 19.24.40.png

p->SM[i].VAL1 で、カウンタに設定されている初期値を以下のように書換える。

Screen Shot 2023-02-14 at 16.13.26.png

数値の変更によってカウンタがリセットされる間隔が短縮された結果、PWMの周波数が上昇する。 デフォルトの設定では analogWriteResolution によりカウンタのデータ幅が8bitに丸められているが、実際のカウンタ(ハードウエア)は16bitで動作している。

Screen Shot 2023-02-15 at 21.51.43.png

本家に掲載されている表によると、 Teensy4.1 にデフォルトで設定された PWM の発振周波数は 4.5kHz 程で、対応する数値は 33464 に設定されている。 これをほぼ 1/8 の 4095 に変更したところ、オーディオ・ラインに乗っていた可聴帯域のノイズは消滅した。

追記:

30kHzで高速点灯した結果、色味が落ち着いた感がある。 

IMG_20230215_072135864.jpg

特にノイズの発生が気になっていた中間色の発色が良好で、カメラ(撮影)との相性も良いようだ。

IMG_20230215_072203189.jpg
posted by Yasuski at 18:43| LaVoixski

2023年02月11日

LaVoixski@ID-292版の電源回路のリファインを行う(続き)

電源ラインを増設する過程で、より細かな隙間にグランドラインが潜り込むように設定を変更した。

Screen Shot 2023-02-11 at 18.30.38.png

ついでに、LCDの所為で倒置することになったVRTとSMDが干渉していた問題を、SMDの配置を表側に変更して解決。

Screen Shot 2023-02-11 at 13.39.28.png

オシレータ周りのグランドの面を分散させる小細工を弄していところを、単純なベタアースに変更してアースラインの分断を解消した。

Screen Shot 2023-02-11 at 2.21.37.png

GNDの面積を少しでも増やすために、配線の間隔を調整してベタアースを通す。

Screen Shot 2023-02-12 at 11.03.25.png

裏面はこんな感じになった。 IC18の横のベタアースを貫通する孔で接続を行っていた「島」の発生を、配線を工夫することで解消している。

Screen Shot 2023-02-12 at 11.03.34.png

adat出力系の基板にも同様の手当を行っているが、、、

Screen Shot 2023-02-13 at 9.25.46.png

アナログ出力回路が存在しないために、プリント・パターンの構成はかなりシンプルになっている。

Screen Shot 2023-02-13 at 9.25.57.png

Screen Shot 2023-02-13 at 9.26.06.png

追記:

出力バッファに至るアナログ音声の信号ラインとPWM出力の近接具合は、出来るだけグランドを挟むように修正したのだが、、、

Screen Shot 2023-02-12 at 22.48.25.png

これでもノイズを喰らってしまうかもしれない。

アナログ信号のラインだけを表示するとこんな感じになる。 

Screen Shot 2023-02-12 at 16.08.40.png

出力までの配線を含めるとPWMで駆動するLEDの領域と重複する度合いが深まってしまうのだが、、、問題は電源のダイナミックレンジで、±12Vの世界とは違い「単電源+5V」では、PWMから放射されるスパイクノイズに対するマージンが心許なくなってくる。

追記:

旧い基板に行う手当としては、5V化した電源ラインからDACに至る配線を事前にカットしておく必要がある。

Screen Shot 2023-03-13 at 22.53.02.png



posted by Yasuski at 18:36| LaVoixski

2023年02月09日

LaVoixski@基盤の配線を始める

AN/PRC-6のバッテリーケースに配線を行いながら基板を組み込んでいく。

IMG_9319.JPG

新しく導入したロープロファイルなMCUのソケットは丸ピンに比べて合わせ込みがクリティカルで、ほぼ換えが効かないことが判明している。 Audio基盤に光通信素子とのクリアランスの問題が発生した結果、データラインの配線は基盤と直付けになった。

IMG_9321.JPG

一見するとスカスカに見えるのだが、平面ではないために部品の配置が難しい。 今のところ空いているVRの辺りには、リモコン素子を配置する可能性が高い。

IMG_9323.JPG

ボディー中央に配置したフロントパネルの支持ステイとの干渉を避けるため、オーディオ基盤の配置が難しくなった。 フロントパネルが正確な寸法でカットされている場合には、支持ステイが不要となるのだが、、、。

IMG_9324.JPG

フロントパネルとの干渉を避けるように、フラットケーブルを引き回す。 プッシュスイッチが未実装なので、そちらのクリアランスチェックを忘れずに行わなければならない。

IMG_9325.JPG

LCDとの配線距離を最短にするにはLCDを倒置すればよいのだが、この状態でしばらくの間様子を見ることにした。 リモコンの接続は、ブレッドボード用の配線材を使用してもよいだろう。

追記:

DACに搭載されているチャージポンプ回路に繋ぐ電源ラインの配線を忘れていたので、これを追加した。

IMG_20230211_210129149.jpg

MCUにヒートシンクを取付けているが、基板を垂直に実装するために生じるズレが心配。

追記2:

オプションのオプティカル・デバイス、HFBRの接続pinに関する備忘録。

Screen Shot 2023-02-11 at 14.39.46.png

Screen Shot 2023-02-11 at 14.40.20.png

HFBRによるadat接続は一般的ではなく、オリジナルのDACユニットの構築が必須となる。 HFBR系はケーブルが安価で、通信距離が段違いに長いところが魅力ではある。 
posted by Yasuski at 15:16| LaVoixski

2023年02月07日

LaVoixski@オシレータの電源電圧について

ここ数回行ったライヴでは、全ての会場に於いてピッチを検出するディテクターの出力が不安定になる現象が発生している。 緊急措置でボディーアースを行った結果、なんとかトラブルを乗り切ったのだが、、、これはステージをとりまくノイズ環境の悪化を示唆している。

オシレータの電源電圧にはトラディショナルな発振回路の仕様としては低めの3.3Vを供給しているが、この電圧では環境に拡散されているノイズに対してマージンを稼げていないフシがある。

そこで、とりあえずの対抗処置として電源電圧を5Vまで昇圧しようと考えている。 その際に問題となってくるのがDACのアナログ電源とオシレータの電源を共有している点で、現在展開している3.3Vの電源ラインをそのまま5Vに乗り換えることは出来ない。

簡易にリプレイスを行う方法として、オシレータの電源に展開しているLCフィルタのLを撤廃して、オシレータにMCU側の5Vを直接供給する案がある。

Screen Shot 2023-02-07 at 23.23.07.png

その際、分離された従来の3.3Vの電源ラインは、引き続きDACのVA専用として使用することが出来る。

Screen Shot 2023-02-07 at 23.25.52.png

ただし、MCUは3.3V入力なので、デモジュレータ・アウトの信号ラインには分圧抵抗を追加することが必須となる。

Screen Shot 2023-02-07 at 23.34.00.png
posted by Yasuski at 23:39| LaVoixski

2023年02月04日

LaVoixski@AN/PRC-6に部品の実装を開始する

まずは、オシレータを組み込んで、調整を行っていく。

IMG_9312.JPG

フロントパネルから飛び出しているヒゲっぽい配線は、リファレンスオシレータのアウトプットをオシロスコープでチェックするための工夫だが、

IMG_9303.JPG

ダミーの接続フィードは温度変化に対するオフセット調整器を兼ねている。 オシレータの発振周波数を調整した後も接続を外さず筐体内にケーブルを這わせることになるだろう。

今回扱う素材は、AN/PRC-6のバックパネル。

EpdD9GeUcAAZ42d.jpeg

オーディオ(緑)とMCU(赤)基板。 未実装な部品を残しているが、とりあえず「赤基板」はオシレータの周波数チェックを行う目的で筐体に仮実装している。

IMG_9306.JPG

今回の改装では、レベル調整回路とバイアス変更スイッチを全て時定数をもたせたFETによるディスクリート回路に転換する一方、余ったMaximのアナログスイッチICはレベル変換用のデバイスとして使用する。

スイッチの駆動パターンは、単純な組み合わせに設定する予定。

IMG_9311.JPG

ポップノイズを防止するために導入を行うディスクリート版FETスイッチをピッチ変換基盤に組んでいる。

IMG_9304.JPG

PchなJ-FETは正電圧入力でオフになる仕様だ。

IMG_20230131_120830030.jpg

基盤の配線を進めているが、、、

IMG_9313.JPG

結線に工夫が必要。

IMG_9315.JPG

FETスイッチのアドオンパーツを基板の裏面に貼り付ける。 配線の取り回しの影響を可能な限り避けるために、バイアスラインに太い線を使っている。 茶色の線はFETのゲートに接続する。

IMG_9316.JPG

追記:

オシレータのチューニングを行っていたが、周波数の合わせ込みが難しく、殊の外手間取ってしまった。

Screen Shot 2023-02-04 at 22.34.03.png

高hfeなMPQ6100Aは、発振周波数が400kHz台でも減衰が発生せず、余裕でゲインを稼げている。

Screen Shot 2023-02-04 at 22.47.59.png

その代わり、調整になると変化がピーキーで、10pF台の変更が周波数の設定に大きく作用する。

Screen Shot 2023-02-04 at 22.48.03.png

可変周波数のレンジが狭くなった結果、調整はクリティカルになってくる。

Screen Shot 2023-02-04 at 22.50.03.png

これは、「経時変化が心配になる」ということでもある。

Screen Shot 2023-02-04 at 22.50.08.png

出来れば、発振周波数を300kHz以下に設定したほうが良い感触があるので、実際にプログラムを走らせながら様子を見ることになりそう。
posted by Yasuski at 00:26| LaVoixski

2023年01月29日

LaVoixski@ChromaticModeの音程を微調整した際に発生するバグの解消を行う

ChromaticMode のルート音を微調整した際に不連続面が発生するバグを発見した。

原因は、低音域の音階にファインチューンが行われていない不手際にあったので、これをフィックスしたのだが、、、

Screen Shot 2023-01-29 at 0.31.58.png

必要とされる計算が増えた結果 RAM1 が破綻したので、音階の判定を行う高音側のレンジを1オクターヴ減らして対応することになった。

Screen Shot 2023-01-29 at 0.30.04.png

追記1:

昨日からテルミンのテスト運用を繰り返しているが、ピッチシフトの初期化を行うための発動条件として設定していたトップスイッチの3クリックは、トリガの入力を取りこぼす傾向にあることが判明した。



トリガの判定を確実に行うために、トリガが発動する条件をスイッチの LongPush に変更する一方で、3クリックには新たにスケール選択をクロマティック・スケール=初期状態に戻す機能を持たせた。

Screen Shot 2023-01-29 at 11.32.20.png

追記2:

GUIの改良を行う作業の一環として、ChromaticMode のパラメータの状態を表示するフォントを1サイズ大きくした。

IMG_9302.JPG

デザインのバランスよりも視認性を優先した結果だが、これでもまだ小さく感じる。

「事前の仕込み」を前提に構築していたGUIのデザインに根本的な発想の転換が必要になってきた。

追記3:

ChromaticMode選択時の表示切替を簡素化した結果、

Screen Shot 2023-01-31 at 19.02.20.png

Chromaticの判定領域を従来の7オクターヴに戻すことが出来た。

追記4:

ライヴ直前に機材をいじるのはご法度なので、しばらくソフトウエアを含めた変更は行わないことにしているが、期日前の最後の調整として、スケールのシフトパターンを±5nnに増やすことにした。

Screen Shot 2023-02-04 at 8.46.09.png

結果、11nn分のヴァリエーションが確保されたのだが、この変更によって新たに分散和音っぽい効果が得られるようになった。
posted by Yasuski at 00:11| LaVoixski

2023年01月27日

LaVoixski@ScaleのrootKeyを選択するパラメータの追加を行う

実用上、Scale の Key を変更できないと話にならないことに気付き、rootKey を変更するパラメータを PitchTune の裏側に仕込むことにした。

Screen Shot 2023-01-27 at 1.36.14.png

これで、ダイアトニックやマイナー・スケールを選択した時の辻褄合わせが完了したのだが、

Screen Shot 2023-01-27 at 2.03.06.png

ライヴでキーを切り替えるのは至難の業で、実用性を考えた場合は別に UI を開発する必要があるだろう。

パラメータの追加に合わせて、VolumeTune に Scale セレクタを配分し、スレッショルド設定は 2Voice(赤)で行う。

IMG_9299.JPG

今回はロータリーエンコーダ分の変数の追加で RAM の使用量に限界が出てしまったので、立ち上げ冒頭に表示される白猫イラストの登録を抹消してgfxの消費を抑えた。

幸いにも、黒猫(ジョバやんは黒猫)は問題なく表示出来たので、これを残して今宵の作業は終了。

IMG_9298.JPG

追記:

夢の中でピッチシフトをトップスイッチにアサインする案を思いついたので、目が覚めてから早速実行に移す。

が、相変わらずRAM1が破綻したので、スタートアップで行っていたアイコンパレードを廃止することにした。尚、黒猫ロゴは温存している。

トップスイッチのシングルクリックで+1nn、ダブルで-1nn、

Screen Shot 2023-01-27 at 9.18.04.png

トリプルでゼロに復帰する。

Screen Shot 2023-01-27 at 9.54.21.png

実際に演奏してみた。



自由な演奏を行うためには、フットスイッチによるリモコン機構の導入が急務。

追記2:

ChromaticMode選択時に各パラメータを一度で視認出来るように、GUIを改良した。

IMG_9301.JPG
posted by Yasuski at 02:04| LaVoixski