2019年12月01日

サブループの再生音声から音源をドライヴする仕掛けを造る

Granular Syntheのドライヴをサブループの再生音から行う機能を追加した。バックトラックのシーケンスをリアルタイムで作成することが目的。

Screen Shot 2019-11-30 at 18.39.04.png

録音したソースの再生方向を逆転出来るところがミソで、この機能によって演奏パターンにランダム性を付加できる。

FVC周りの改装を行うついでに、ReversePiano音源のドライヴをサブループから行えるようにした。

Screen Shot 2019-11-30 at 18.39.34.png

バスに打ち上げられた音程情報を36でmodulo後にtruncateし、36nn分のサンプル再生オブジェクトを駆動するトリガーを生成している。

再生ソースは生ピアノ(単音をサンプリングしたもの)の逆回転サウンドで、サブトラックに記録した演奏にピッチが追従する。

追記:

RevPianoのトリガーが発動する設定値に難があったので、これを従来型と同様に調整が可能な形に変更した。

Screen Shot 2019-12-01 at 12.55.10.png

ソースによって切り替わるトリガーの扱いを明確にするために、"removeUnits"で括るピッチデータをソース別に分割している。

以下、演奏によって機能の実例を示す。

posted by Yasuski at 07:05| Symbolic Sound Kyma

2019年11月30日

FVC=FrequencyToValueConverterの構造を整理する

FVC = Pitch Detectorに接続するデータストリーム上でフォーマットが異なる情報が交錯している状況を整理した。

FVCは音声データの周波数から音源のPitchを操作するためのオブジェクト群で、マスターループのオブジェクト内にその機能を内包させて、再生されるループの音声から周波数を参照している。 

Screen Shot 2019-11-30 at 1.25.24.png

ここに、他の参照先としてサブループの音声を引っ張ってくる為に使用したのがFeedbackオブジェクトだが、これの結線がどうやっても上手く結べない。

で、思い付いたのは、ハンドリングが不可能な音声データに拘らず、サブループのオブジェクトにFVCを埋込み、検知したPitchデータを新たに増設したデータバスに送信するという至極真っ当な解決法だった。

Screen Shot 2019-11-30 at 1.48.11.png

実験の結果、データソースの乗換えは問題無く行うことが出来たのだが、音声データそのものをハンドリングすることに拘っていた理由が解らず、自らの思い込みの深さに困惑している。

Timelineの動作を検証する過程で、配置した音源をドライヴするためにFakeKeyboardというヴァーチャル鍵盤を起動すると

Screen Shot 2019-11-30 at 12.19.23.png

GranularSyntheのFVC(ピッチディテクターからの入力)が何故か操作不能になるバグを発見した。

Screen Shot 2019-11-30 at 12.59.41.png

対応策は「現物の鍵盤」で、これを接続するだけで問題は解決する。

Screen Shot 2019-11-30 at 13.04.24.png

画像はタイムラインのおまじないと、

Screen Shot 2019-11-29 at 15.54.52.png

現在展開中のVCS。

Screen Shot 2019-11-30 at 15.16.54.png

サイズを手持ちで唯一稼働が可能なMBP15吋の画面に作りなおしている。

エラーは完全には解消されず。Feedback系のオブジェクトは取扱いが難しい。

Screen Shot 2019-11-30 at 10.57.35.png
posted by Yasuski at 13:14| Symbolic Sound Kyma

2019年11月29日

Timelineのテスト運用

posted by Yasuski at 17:59| Symbolic Sound Kyma

Timeline使用時に信号のラインが「ソフト的に」断線してしまう現象に対応する

KYMAのTimelineの整理を行う過程で、タスクの重い環境に於いてGrainularDelayのFeedbackラインが何故か「ソフト的に」断線してしまう現象を確認した。

Screen Shot 2019-11-28 at 21.19.10.png

重タスクな環境下でエフェクトの音質が変化してしまう現象は以前から承知していたが、確かに特徴的な「共振」が起きない状態が続いていた。 音声信号のラインを復活するためには回路の変更が不可避なようで、Feedback信号の経路を引き直ししつつ、帰還信号レベルの調整を行った。

数時間行った試行錯誤の末、なんとか望みの結果を得ることが出来たが、コンパイル時に発生する謎現象は斯様な感じで、限りなくバグに近い反応といえる。 

他にはGranularSyntheのPitch入力が受け付けられない問題が発生しているのだが、こちらはDSPのイニシャライズを行う他に、別のタスクの軽いTimelineを走らせた後、再びタスクが重い方を稼働し直すと何故かデータラインが復旧するという、これまた謎な現象を確認している。
posted by Yasuski at 11:19| Symbolic Sound Kyma

2019年11月27日

Timelineの整理を行う

先日行ったレクチャーの下準備の過程で

IMG_9672.JPG

修正を行ったオブジェクトをよりハードなタスクが走るTimelineに移植した。

IMG_9679.JPG

基本的な構成は変わっていないが、KISS2019対策で外部入力にシステムをダイエットする際に行った諸々の修正を「タスクの重い方」にも追加で行う必要がある。

今回の改修では、FeedbackLoop系のオブジェクト周りに手を入れた影響でDSPの消費パターンが破綻してしまいコンパイルを行う時系列を大改装する羽目に陥った。

最終的には各DSPの消費を最高で8割前半に抑えられたが、今のところ音源の使用時に動作が破綻することもなく、コンパイル終了時にアラートが表示されるもののシステムは正常に稼働している模様。
posted by Yasuski at 11:55| Symbolic Sound Kyma

2019年11月22日

ESP32のセットアップについて

昨日はフットコントローラーに内装したESP32側に設定した「ホスト側から出力設定のコールを受けるまでmidiストリームが出力されない仕様」を失念していたために、ソフトウエアの検証に延々と嵌ってしまう愚を犯して5時間ほど無為に過ごしていたのだが、検証の過程でADCの入力域の調整が必要になったため、以下のコードを参考に対策を行った。

typedef enum {
ADC_0db,
ADC_2_5db,
ADC_6db,
ADC_11db
} adc_attenuation_t;

/*
* Set the attenuation for all channels
* Default is 11db
* */

void analogSetAttenuation(adc_attenuation_t attenuation);

/*
* Set the attenuation for particular pin
* Default is 11db
* */

void analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation);

要はピン毎にアッテネータの値を設定できるということで、この機能を使えば無駄にオペアンプを増設する必要がなくなるかもしれない。

WS002051.JPG

また、コールなしでは出力が沈黙してしまう仕様が使い辛かったので、立上り時に出力値の選択が行えるようにデフォルト値を設定しておいた。

WS002049.JPG
posted by Yasuski at 08:47| AudioElectronics

2019年11月21日

Teensy4.0にmicroSDスロットを取付る

在庫しているジャンクパーツの中から発掘した1mm規格のフラットケーブル用コネクターをTeensy4.0に取り付けた。

IMG_9662.JPG

コネクターの左右の突起が邪魔だったのでこれを削ったが、まだピンとのクリアランスが確保できず、仕方なくピンを抱合しているプラスティック製のフレームを外して干渉を取り除いた。

IMG_9665.JPG

midroSDの結線がよく判っていないので、これを解明するまで作業はペンディングに。

15583-Teensy_4.0-03.jpg

ボードの裏面に印刷された端子のネームとカードの規格を確認すると、、、

Screen Shot 2019-11-20 at 20.28.56.png

ピッチ変換基盤に実装したmicroSDカードホルダーとケーブルコネクタの2階建てが正解だった。

MMC-SD-miniSD-microSD-Color-Numbers-Names.gif
posted by Yasuski at 06:35| LaVoixski

2019年11月18日

attatchInterruptのトリガーを"CHANGE"に変更する

AudioClockのクロックエッジのタイミングでオーディオデータをDACに転送するためにattatchInterruptのトリガーを"CHANGE"に変更した。

Screen Shot 2019-11-18 at 12.04.39.png

トリガーを切っ掛けに発動したタスクが終了した後、処理はLoopに回帰する。 

Screen Shot 2019-11-18 at 10.39.42.png

Screen Shot 2019-11-18 at 10.39.23.png

この仕掛けはadat出力への対応を見据えた変更だが、ひとまずは正常な動作を確認できた。

で、乗り換えを画策しているTeensy4.0だが、コンパイル後に発生する症状は相変わらずで、停止していたattatchInterruptを復活させると何故かUSBの通信機能が死んでしまう謎の現象から逃れられない。

Screen Shot 2019-11-18 at 11.12.35.png
posted by Yasuski at 12:16| LaVoixski

2019年11月17日

TransitionControlのセクションに重大な記述ミスを発見する

TransitionControlのWavetable読み出しのためのアドレス設定にとんでもない記述ミスを発見(Osc03~05のアドレスデータのまるめ値を間違えてOsc01のものと記述)したので、これを修正した。

Screen Shot 2019-11-17 at 7.43.35.png

修正後に音量が変移する時のの段付きがほぼ無くなったが、気になるグリッチは解消されていない。

出音のテイストが変化した結果プリセットを全改装する羽目に陥ったが、好みのセッティングを完了するには時間がかかりそうだ。 いまのところ違和感を払拭できていないが、体で覚えた用法(間違えに順応した)を現状に合わせてリセットしなければならない。

Transitionの所謂「離散モード」が理屈通りに働くようになった結果、実効性の高いヴァリエーションが増えた。

posted by Yasuski at 09:50| LaVoixski

2019年11月15日

FPGA用IDEのライセンシング

毎年忘れてしまうので、メモ。

まずはサイトにアクセスして指示を仰ぐと、「Licence Key発行のための必要なPhysical Address情報をコマンドプロンプトを開いて獲得しろ」と書かれているので、例示されたコマンドを打ち込んでそれを実行する。 

コマンドプロンプトに表示された12桁のアドレスを送信すると、折り返し認証ファイルが添付されたメイルが到着する。

ローカルフォルダに添付ファイルを保存した後、Help MenuからLicense Debugを選択してファイルの位置を確認、旧ファイルを新しくダウンロードしたファイルで上書き&再スキャンで、更新が完了する。

WS002045.JPG
posted by Yasuski at 03:40| AudioElectronics