2023年01月24日

LaVoixski@ChromaticModeの改装を行う

遣い勝手を悪く感じていた Chromatic Mode の初期設定を"HOLD"に変更した。

Screen Shot 2023-01-24 at 12.42.50.png

ノブを回すと最小値に設定される。

Screen Shot 2023-01-24 at 12.44.02.png

多項目にパラメータが分散していたので、設定の変更に予想外の手間が掛かってしまった。

Screen Shot 2023-01-24 at 12.39.01.png

Chromatic スケール変換時に変換誤差によって生じるノイズを軽減する手段として、pitchNoteにEMAを掛ける項目を追加しているが、、、

Screen Shot 2023-01-24 at 12.42.21.png

完全なノイズの抑制には至っていない。

追記:

その後、ChromaticModeにスケールの切替機構を導入した。

Screen Shot 2023-01-24 at 18.55.18.png

パラメータは、TRES mode で MUTE を選択したときにUpperEncoderにアサインされる。

Screen Shot 2023-01-24 at 19.09.58.png

単純にSwitchで設定したスケールを切り替える方式がメモリの破綻で頓挫したので、変則技としてクロマチックスケールの特定の音列配分にオフセットを付加する形で音程の関係にヴァリエーションを持たせることにした。
ただし、配列にはチューニングの必要があり、今後は効率的な切替機構の検討を行っていくことになる。

1nn を±シフトした場合は Cmaj スケールに、2nn の場合は音階が上下する妙な効果が得られる。 

RAMの使用量を抑えつつ、それなりの処理速度が担保される手法として、16bitのバイナリに音階操作のデータを仕込んで、bitReadで音階をシフトするパターンを切り替える仕掛けを思い付いたのだが、実用になるかは判らない。 

実際にコンパイルが通るコードを組めてはいるが、残念ながらRAM1のマネージメントが破綻して、実行は不可能だった。

Screen Shot 2023-01-25 at 0.06.56.png

RAM1の破綻はGUIの項目量との関連が強く、経験上GUI側にダイエットを行えばなんとかRAM1の使用量を抑えることが出来るのだが、オマケ的な立ち位置の ChromaticMode にそこまでの優先順位は無いのが微妙なところではある。

追記2:

クロマチック音階を付与する際に発生していた変換ノイズの問題を解決することができた。

Screen Shot 2023-01-25 at 7.03.02.png

ノイズが発生していた原因は、通常モードに於いて「データの不連続面」を補完する機構とクロマチックモードとのミスマッチにあったので、スケール化された出力を補完機構には入力せず、出力側とリプレイスすることで問題は回避された。



追記3:

オフセットを追加する関数を減算から加算に変更することで、スケールにヴァリエーションを持たせることが出来た。

Screen Shot 2023-01-25 at 16.53.20.png

なんとなく、ホールズワースっぽいフレーズ生成器になってしまった。



今回行った改変では、速いパッセージの演奏に対応するためにフィルタの設定を軽めにチューンしている。

Screen Shot 2023-01-25 at 22.53.35.png

撮影の過程で感じた遣い辛さから、結局 4Voiceと THRES 選択時に HoldTime にアクセスするようにパラメータの配分を変更し、他のケースには従来通り ScaleSelector の機能を持たせることにした。

Screen Shot 2023-01-25 at 22.55.01.png

画面中右位置の ChromaticMode 系の表示は、機能に準じてパラメータが切り替わるようにコードを書き換えている。

Screen Shot 2023-01-25 at 22.53.58.png

IMG_9288.JPG

IMG_9294.JPG

現状では新たに表示系を追加した途端に即RAMが破綻するのだが、今回は起動時に行っていたモデルのヴァージョンと製作者の表示を削除することでなんとか辻褄を合わせることが出来た

追記4:

ChromaticModeの起動時間をHoldにすると、THRESで設定した作動条件が無効になるバグをフィックスした。

Screen Shot 2023-01-26 at 9.27.41.png

追記5:

VolumeTune の頁に、パラメータ "ChromOn" を配分した。

Screen Shot 2023-01-26 at 11.26.35.png

IMG_9296.JPG

これで、"ChromOn" の操作が可能な頁を、4 Voice を含めて2つに増やすことが出来た。

Screen Shot 2023-01-26 at 11.27.18.png

VolumeTune は実質 2 Voice mode の領域なので、

IMG_9295.JPG

操作に混乱は生じなさそうだが、念の為にLEDの発色を機能の変更と連動させておいた。

Screen Shot 2023-01-26 at 12.23.23.png
posted by Yasuski at 12:51| LaVoixski

2023年01月22日

LaVoixski@OverDrivenWaveformによる歪み系GuitarSoundのシミュレート

ギターアンプによるフィードバック奏法っぽい音色をシミュレートした。



基音に5度や12度を足すことで、フィードバックのニュアンスを変えている。

ソフトウエア上では、予めレベル超過が発生するようにMixLevelを調整しつつ、、、

Screen Shot 2023-01-22 at 22.54.24.png

非線形処理を行うリミッターによって、マイルドなクリップが発生するように工夫を行っている。

Screen Shot 2023-01-23 at 7.40.13.png

一方、アナログ的な手当として、通常1/2VCCに設定されているOpAmpのBIAS電圧をGND電位に落とすことで

Screen Shot 2023-01-22 at 23.00.05.png

出力波形に半波整流のような効果を与えている。 

Screen Shot 2023-01-22 at 23.20.18.png

実際の回路では回路図に示したダイオードを抵抗に置き換えているが、最新の回路では急激な電位の変化によってポップノイズが発生する欠点をカヴァーするために、スイッチ動作に時定数を持たせたFETで構成したアナログスイッチを導入することになった。

Screen Shot 2023-01-23 at 7.52.51.png
posted by Yasuski at 22:03| LaVoixski

2023年01月21日

LaVoixski@Op3Selector/EXCITERの操作法

Exciterのページは、異なる機能の寄せ集め的なところがあり、構造を理解することが難しい。

まず、最も使用頻度が高そうなのが、Op3 (OutputThree) の切替スイッチで、その機能は LowerEncoder に集約されている。



セレクタは、5オシレータの単独出力を、Transition、Normal、Exciter の3モードに切り替える。

単独出力のうち、ExciterMode では、Chebyshv Transfer を使った倍音構成を変更する形式の波形変換を行う。

倍音の構成は Fundamental から 5th までの5つで、UpperEncoder によって配分をプリセットする。



変換に使用する関数は、任意(3アドレス)の Wavetable に保存される。 ExciterMode を選択したときの UpperEncoder はデフォルトの状態でこの Wavetable のセレクタにアサインされている。

Wavetable Selector の次の項目からは、LPF 関連のパラメータが配分されている。



LPF には Cut Off Frequency が固定状態の FIx Mode とモジュレータが稼働する Mdulated Mode が設定されている。 この Modulator の LFO は Wavetable 方式で、変調を行う波形を準備された8種類の中から選択することが出来る。

追記:

使い勝手を改善するために並列化された LPF1/2 の UI。



追記2:

モードの切替に伴って GUI を LED の表示を連携させる改良を行った。



Screen Shot 2023-01-22 at 17.23.31.png
posted by Yasuski at 15:56| LaVoixski

2023年01月20日

LaVoixski@waveMixModeの操作法



波形表示の詳細を解説していないので、イマイチ解り難いかもしれない。Waveformについては別撮りで整理すべきか。

白く見えているのは左右の合成出力の波形で、モノラルの場合は白に、左右で差分が出る場合はCYANとMAGENTAに分かれる。

Screen Shot 2023-01-20 at 20.49.28.png

赤と青は、Transitionを掛けない状態の合成波形を左右別に表示している。オシレータの分配を左右に振っている場合には異なる波形が表示される。

Screen Shot 2023-01-20 at 20.52.16.png

緑はOP3(3番目の出力)で、選択されたオシレータ出力が表示される。出力モードはNormalとTransitionに加えて、ChebyshevTransferを選択できる。

目玉スイッチをダブルクリックで、右チャンネルを逆位相に設定=表示が反転したりと結構ややこしい。
posted by Yasuski at 18:07| LaVoixski

2023年01月19日

LaVoixski@ChromaticModeの操作法



動作ポイントを設定するスレッショルドにヒステリシスを持たせることで、低レベル領域に不感帯を設けた方が遣い勝手が良いかもしれない。

IMG_9216.JPG

何れにしてもオマケ要素の高い機能だが、いまのところ気になる「音荒れ」の原因は究明出来ていない。

追記:

稼働時間(この場合は4.75秒、6秒以上はHOLDとなる)を決定するタイマーの制限時間を超えてChromaticModeがINACTIVEになった状態を表示できるようにした。

IMG_9287.JPG
posted by Yasuski at 10:47| LaVoixski

2023年01月18日

LaVoixski@PitchBend/LPFの操作法

VolumeLevelをトリガーとして作動するエフェクト群のうち、PitchBendとLFOの操作法を解説した映像をアップロードした。



各エフェクトのトリガーは、UpperEncoderで mode2/case 9: を選択して、LowerEncoder の mode4/case x: に該当するエフェクトのトリガーが作動するスレッショルド・ポイントを UpperEncoder で設定する。

Screen Shot 2023-01-19 at 8.12.48.png

NORMAL MODEでは、Pitch/Volumeに掛けるEMA(フィルター)パターンの選択を行う。 
現時点では、MUTE MODE にパラメータはアサインされていない。

PITCHBEND MODE 選択時のUIはこのような表示になり、UpperEncoder で波形表示部左下の AtkEnv: の数値を設定する。 画像はゼロ・ポイントよりも左側に回した状態で、BencUp が選択されている。

Screen Shot 2023-01-19 at 2.01.13.png

BendUp/Downの切替は、AtkEnv: のゼロ・ポイントを境目に行うが、値が”ゼロ”の時には PHASER MODE が発動する。

Screen Shot 2023-01-19 at 2.01.47.png

LFOのSpeedRateの切替も、同様に LfoDep のゼロポイントで行うが、

Screen Shot 2023-01-19 at 2.02.51.png

Speed は PHASER MODE と同じく、Arpeggiator の設定に依存する。

IMG_9242 2.JPG
posted by Yasuski at 19:53| LaVoixski

LaVoixski@モジュレータの構造を変更したPhaserのインターフェイスを整理する

PhaserModeのインターフェイスは、LPF3/4のモジュレータとArpeggiatorのSpeedとパラメータを共有していて、、、

Screen Shot 2023-01-18 at 11.23.46.png

リアルタイムな運用は想定されていない。 

PhaserのモジュレータのRATE設定は、ArpeggiatorのSpeedにより行われるが、Phaserを構成する構造からSpeedの設定値が極端に短い場合にPitchShiftが発生する。

一方、LPF3/4のモジュレータを設定するパラメータは2つあって、、、 

Screen Shot 2023-01-18 at 8.44.44.png

pot00k は波形読み出しポイントのリセットを行う頻度を決定する。 

Phaserを選択した場合には、この項目を最小の値に設定して使用することが推奨される。

pot00m はモジュレータのRATEに設定する倍率を決定する。



基本的に、モジュレータを共用するLPF3/4とPhaserの同時使用は想定されておらず、使用者はどちらか一方の効果を選択することになる。 (設定次第で共用は可能ではある)

このシステムに於けるPhaserはフィルターで構成された一般的なものではなく、リードポイントをシフトすることでオシレータの位相そのものを操作する構造なので、「効き」のニュアンスが微妙に異なるかもしれない。
posted by Yasuski at 13:21| LaVoixski

2023年01月17日

LaVoixski@Effect (Output) Modeの実演

システムの立ち上げ後、LowerKnob にデフォルト状態で表示されるEffect(Output)Modeのアウトラインを映像化した。



インターフェイスの配分は、mode4 の case: 4 に該当する。 初期設定は、YELLOW = NORMALで、PHSER/PITCHBEND → MUTE→LFO→CHROMATIC→NORMAL と円環する。

EncoderDescription.drawio.png

元々ここは MUTE = BLACK を割振っていたパートで、其処にエフェクトを選択する機能を組み込んでいった経過がある。

Screen Shot 2023-01-17 at 19.49.47.png

NORMAL と MUTE 以外を選択した場合、UpperKnob は各エフェクトのパラメータ設定に割振られる。

Screen Shot 2023-01-17 at 19.53.17.png
posted by Yasuski at 19:39| LaVoixski

2023年01月14日

LaVoixski@オシレータ周りの改良を行う

オシレータのバッファー出力とグランドを繋ぐ抵抗 R3 を4.7kから

Screen Shot 2023-01-14 at 21.37.29.png

10kに変更することで、出力レベルを若干上げることを試みた。

Screen Shot 2023-01-14 at 19.26.06.png

結果、シャックリの発生頻度を減らすことが出来ているが、完全にゼロにはならないところが残念。

追記:

オシレータの動作確認を行う過程でMUTE機能の不具合が発生する原因を特定し、問題の箇所を修正した。

Screen Shot 2023-01-15 at 16.26.37.png

要は、ミュートを行っていたつもりが別のサブルーチンで立てられたフラグによってミュートが無効化していたのだが、プログラムの構造を単純化することで問題を解決出来た。

追記2:

オシレータに纏るシャックリ問題は、トランジスタ・アレイの交換で解決した。

IMG_9285.JPG

やはり、hfeが異常に低いハズレの個体を掴んでしまったことが原因だったようだ。

トラブルが発生した根本的な原因は、S/Nを重視してTHATS340という低hfeなデバイスを実験的に選択したことにあるのだが、出来ればPitch側だけでもよいから基板の配線をいじってhfeの高い(2倍程)MPQ6100にリプレイスすべきだろう。

IMG_8937.JPG

追記3:

極低音域(殆どDC)の再生能力を実証した。



リップル成分を除去するためにフィルターを”4”に設定した影響で、Pitchの揺れは殆ど感じられない。

反面、レスポンスが犠牲になっているので、このケースは特殊な用法といえる。
posted by Yasuski at 19:33| LaVoixski

LaVoixski@Arpeggiatorの和声モードを拡張する

単音構成だった、アドレス#9から13のアルペジエータを和声モードに変更した。

Screen Shot 2023-01-14 at 13.15.29.png

VoiceModeの選択に合わせて、1 〜 4 voiceの出力を自動的に設定する。

なお、SequenceMode発動時の和声は、、、

Screen Shot 2023-01-14 at 13.20.43.png

2声に限定される。

追記:

3声だった 3VoiceMode の Arpeggiator を2声に減数した。 

Screen Shot 2023-01-15 at 14.19.26.png

3声に設定した当初はゴージャスな和声の効果が欲しかったのだろうが、VoiceMode間の差異が無くなってしまうのでは意味が無いと考えて、敢えて減数処理を行うことになった。

Transitionの分配パターンを考慮した結果、Arpeggiatorが1周する間ピッチがロックされる機能を使って、アタック感のあるエンベロープで主旋律を演奏することが可能となった。

同時に、dacOutFourをOSC_dに変更して、ドローン出力をモノラル・アウト出来るようにした。
posted by Yasuski at 13:23| LaVoixski