これは周波数検知 Sound (KYMAではオブジェクトのことを Sound と表現します)を使った 入力信号の音程を検知してトリガーを発生させるシステムの一部です。fvUnit L とは周波数検知を行う Frequency-to-Value Sound のことをさします。Sound はそれ自体を Copy & Paste することによって式の中に配列することが出来ます。その場合の表記は fvUnit L のような形式で表現されます。 末尾の"L"は Sound の種類によって異なる意味を持ちますが、この場合の "L" は周波数のアウトプット、 "R" は音量データのアウトプットを意味します。 fvUnit L の出力はサンプリングレートの半分のナイキスト周波数、22.05kHz がフルスケールになり、その最大値は 1 となります。したがって、fvUnit L 22050 を掛け、ユニットとして hz を追加することで Sound の出力される値を周波数値に変換しています。さらに nn を使って周波数を Midi Note Number に変換後、removeUnits でユニットを除去し、結果を音階数 12 で割って、その余りを出すことで12種類ある音階そのものを検出しています。ただし、このままだと端数が生じるので truncated でまるめた後、eq: で比較判定しています。この場合の参照値は 0 なので、Sound は "C" の場合のみを検知してトリガーを発生します。最後の * ( fvUnit R gt: 0.01) は誤動作防止用の音量検知部で 、gt: 0.01 (greater than:) で音量のスレッショルドを設定・結果を判定しています。

ハードウエアのサンプリングレートを変更する可能性がある場合は、ナイキスト周波数の設定を SignalProcessorSampleRate とすればよいでしょう。


Conditionals

neg:zero:pos: 負、 ゼロ、 正 の判定をして結果を返します。(初期値はゼロ )
neg:zero:pos:initially: 上に同じですが初期値を設定できます。
true:false: or false:true: 正 の入力に対して true:
負、 及び ゼロ の入力に対して false:の値を返します。

expamples answers
neg:zero:pos: -1 neg: 4 zero: 3 pos: 2 4
neg:zero:pos:initially: 1 neg: 4 zero: 3 pos: 2 initially: 8 2
true:false: 0 true: 3 false: 2
0.5 true: 5 false: 6
2
5
false:true -2 false: 0 true: 100
10 false: 40 true: 60
0
60

Conversions

以下の Function メッセージ はデータを変換する機能があります。

asLogicValue 入力されたデータは全て0か1の論理値に変換されます。
db 入力された数値を db に変換します。
inSOSPitch Hz または nn を SpectrumInRAM, SyntheticSpectrumFromArray
などで使う特別なフォーマットに変換します 。

asLogicValue -2 asLogicValue
0 asLogicValue
3 asLogicValue
0
0
1
db 0 db, 6 db
-6 db, -12 db
1.0, 1.99
0.5, 0.25
inSOSPitch 22050.0 hz inSOSPitch
1378.12 hz inSOSPitch
1.0d
0.73

論理演算は asLogicValue に置き換えが可能です。

a AND b a asLogicValue * b asLogicValue
a OR b (a asLogicValue + b asLogicValue) asLogicValue
NOT a 1 - a asLogicValue
a XOR b a asLogicValue ne: b asLogicValue
a EQV b a asLogicValue eq: b asLogicValue

Unit Conversions

カスケードに Unit メッセージをタイプすることによって、seconds と samples
または、hertz と note number を変換することが出来ます。

Example Result
1 s samp 44100 samp
4410 samp s 0.1 s
4 c hz 261.6256 hz
269.2918152432d hz nn 60.5 nn
4 a removeUnits 69


Tools

前述したように KYMA は Sound 編集を行い、発音する Virtual Synthesizer だけではなく、統合的な Digital Audio Workstation の側面を持っています。24ビット・デジタル・オーディオレコーダの他に、波形編集やスペクトル分析、12音以外のオリジナルなピッチテーブルの製作、スペクトルファイルのシンクロ再生(モーフィング)等の機能を、Tools というメニューバーから選択することが出来ます。モーフィングなどスペクトラムファイルやその他の特殊な波形分析ファイルを用いる Sound を製作する場合、ユーザーは予め Tools の Analysis 機能を使って手持ちのノーマルな音声ファイルを分析・変換する必要があります。

Tape (Audio) Recorder
まず初めにレコーダーとしての機能紹介です。Tools からTape Rcorderを選択するとレコーダーのウインドウが現れます。録音ソースの音量をチェックし、Filename スイッチをクリック。データのフォーマット、ファイル名、ストア先を選択して録音が開始されます。

Spectral Analysis
これはモーフィングやスペクトラル・マニュピレーションを行う場合に予め、通常の音声ファイルを KYMA 独自のファイル形式に変換する機能です。最初に分析する音声ファイルを選択し、分析する精度を決定します。この行程でフーリエ変換を行って、バンド別の音声情報を分析するようなものと思ってください。その後、spectral file はすぐに生成されますが、Quasi-Harmonic Spectrum file は不安定なピッチの排除やファンダメンタルの (基音?)設定を経て生成することが出来ます。

Syncronizing Spectra
これは、モーフィング機能です。2つの異なる人物が喋った言葉を例に取り上げましょう。まず、サンプリングされたこれら2つのサウンドファイルをSpectral Analysis にて分析変換。後これら分析済みのファイルをSyncronizing Spectra に読み込みます。この二つのファイルの出力波形はグラフィック表示され、言葉の切れ目にアンカーポイントを打ち、正確な同期を可能にします。

RE Analysis
RE とは Resonator/Excitation の略で特性が経時変化するフィルターと (a time-varying filter (the resonator))その入力ゲイン (an input to the filter (the excitation)) をコントロールするデータです。ボコーダーのようなものと考えても良いかも知れませんが、コントロールデータはリアルタイム処理されるものではありません。このツールではRE Resonator sound で使用する RE file を作成します。

GA Analysis From Spectrum
GA とは group additive の略で通常のサイン波加算タイプの音響合成とは違い、圧縮された数種類の波形を使って音を合成します。このため、計算に要するパワーが通常のサイン波加算合成方式に比べて格段に低いのが特徴です。このツールではあらかじめ Spectral Analysis によって分析・作成されたファイルが必要です。スペクトル分析されたファイルを更に分析・圧縮し、より効率的なGA fileに変換します。

Design Alternate Tuning
これは独自の音階を自由に作ることの出来るツールです。音階を設定したあと実際の波形を再生して、聴感上のイメージを確かめることが出来ます。

以上が KYMA に標準装備されたツールの概略です。



2004年から、KYMAのヴァージョンはXに移行しています。2005年7月現在のヴァージョンは6.195となっています。アプリケーションの更新スパンは1〜2ヶ月とこの手の製品の中ではずば抜けて速いのが特徴でしょう。

http://www.symbolicsound.com/cgi-bin/bin/view/Products/WebHome