2016年01月27日

ランダム再生パート(Rec E)の改良

ランダム録音再生回路、"Rec E"のパラメーター、再生開始ポイントを8から16に、再生時間を16から32種類に選択項目を増やした。録音限界のフルスケール120秒に対して、倍率1/128から1/4までを対応させている。

システムをフリーランさせて実験を行った結果、フレーズサンプリングでオブリガードが帰ってくるコール・アンド・レスポンス雰囲気を狙った用法上の観点からすると、短いループが頻繁に現れる今の傾向はあまり効果的ではなく、さらなるチューニングが必要だ。

トリガー入力のタイミングでnextRandomに数値を吐かせた結果をサンプル読み出しのルールに反映させているのだが、公平に機会が分配されている32種類のループデュレーション設定に、長めの再生時間を選択し易いように「重み」を付けるべきかもしれない。
posted by Yasuski at 08:30| Symbolic Sound Kyma

2016年01月16日

サンプルループ同期用タイミングジェネレーターの改装

AudioHologramのサンプリング・プレイバック用の同期パルス源には、デューティーサイクルの可変が可能なパルスジェネレーター、pulseTrain を使用している。 

Screen Shot 2016-01-16 at 4.23.41 PM.png

これまでは、デューティーサイクルを極限まで切り詰めて同期用のスパイク波を発生させていたが、この方式はパルスの間隔が大きくなると、それに影響されてスパイクのパルス幅が変化してしまうという欠点があった。
 
実際、ループのデュレーションが20秒ほどの場合に問題は発生しなかったが、ループが40秒を超える辺りから小節頭のリセット時にシャックリのようなビートの空白がリズムトラック上に生じ始めた。 

この現象を回避するため、GraphicEnvelopeを使ったパルスジェネレーターでリセット信号をドライヴする方式にオブジェクトを改変することにした。

Screen Shot 2016-01-16 at 4.24.19 PM.png

スパイクのデュレーションは任意の長さに設定出来るので、パルスジェネレーター側はそれよりも長いタイミングのGATE信号を発生させれば良い。 極端な比率のデューティーサイクルは誤動作の原因になっていたが、安定したスパイク信号を発生出来るこの方式によってリズムトラックの精度が向上した。

その他の改良点:

Bass音源をRunさせた時、偶に超高音が再生される誤動作を防止するため、FVC の前段に4Eまで音階の帯域を制限するLPFを追加した。 

Screen Shot 2016-01-16 at 4.25.33 PM.png

また、数値へ変換した後の過大な値はエラーであることが確定しているので、こちらにも min:0.05 を使ったリミッター (Fs 22kHz x 0.05 = 1.1kHzとなる。適正値は0.0453514739229025) を設定しておいた。

Screen Shot 2016-01-16 at 4.25.50 PM.png

視認性の向上のために、同期確認の表示を0.5秒間固定するオブジェクトを追加で実装した。

タイミングコントロール回路を改変した後、Percussion再生オブジェクトの重畳再生プロテクトが短いループ間隔に設定した場合に効き過ぎて、サンプルの再生を受け付けなくなった。 Gate入力フィールドにsetReset:を追加する対症療法で、小節頭でトリガーを受け入れられる状態にリセットを行うようにして問題は解決した。

あと、ハード面の不具合が発生していて、部屋の電灯をオフると何故かシステムが停止してしまう。 Firewireでチェインされている機材の電源周りに寿命が来ているのだろうか?

追記:

ダイエットを行う為に、pulseTrainのDutyCycle可変のチェック・ボックスを外してシステムを組み直してみたが、タイミングコントロールが上手く行かず試みは失敗に終わった。

動作試験のためにTimeline上のSound(オブジェクト)を個別に展開したところ、旧い構成のものは最適化を進言されることがあった。 いまのところ、オプティマイズを進めた結果に違いは見られないが、消費が抑えられる可能性があるので、ダメ元で個別にラインを再構成した方が良いかもしれない。

電源の不具合に関しては、メインとは別系統でACを引っ張っているContinuumFingerBoardが怪しい。

追記2:

ランダムに再生ポイントを選択するサンプラーオブジェクトのトリガー発生頻度を改良して、短いパッセージのフレーズをまんべんなく再生できるようにした。

これは、マスターループの尺が長くなるに連れてランダム再生サンプラーが沈黙しがちになってしまう現象に対応したもの。 マスターループに関連付けていたランダム再生のトリガーを、別のトリガー発生ユニットと付け替えることで、ランダム再生の頻度を個別のパラメーターでコントロールできるようになった。

旧式のオブジェクトは、一度コンパイルしただけでは修正されないようで、展開後にアイコンの位置をいじる等、何らかの形でオブジェクトの内容を変更したものを上書きする必要があった。 いまのところはメイン・ループの改装を行った程度のレベルではあるが、修正によって最適化が行われた結果、全体のDSP消費量を5%程度抑えることに成功している。
posted by Yasuski at 08:29| Symbolic Sound Kyma

2016年01月12日

nextRandomを使ったフィルイン機能の実装

kymaのリズムトラックシーケンサーにフィルイン機能を追加した。

Screen Shot 2016-01-13 at 11.29.50 AM.png

スネア・トラックの小節末3step分の設定にBeatアタマのタイミングで値を更新するnextRandomを加える事で、演奏がランダムに変化するようになった。

当初はabsで負の値を排除していたが、これを外して下限値を設定した方がより自然なダイナミクスを得ることが出来た。

{(!a01 * (!step00 nextRandom)) max: 0}

!a01は32分割されたステップのスイッチ。!step00のタイミングで、ランダムな数値が生成される。max:0で、負の値を排除している。

AudioHologram関連のシステムを構築して今年で15年になることに驚く。 Kurtのアドバイスでシステム構築をTimeline上に移行したのは2002年頃だっただろうか。 アプリのメジャーヴァージョンアップデートを迎える度に根本的な改装を何回か行っているが、直近のそれは2014年の2月だった。 依然として、アナログ的な「緩い動作精度」は解決できておらず、今後解消すべき大きな課題だ。
posted by Yasuski at 14:22| Symbolic Sound Kyma