いらないモノ、ひつようなモノ

書籍、音楽、そして若干のテクノロジー

csoundスコアファイル、オーケストラファイルの動き

←csoundメモ 目次に戻る

csoundのサンプルなどを読んで、自分が最初一番理解できなかったことは何かというと、k-rate,a-rateのことだ。この辺を整理する。
スコアファイルは駆動タイミングが何らかの形で決められていて、読みこまれて適切にソートされた後に、「ある時間にその行が読みこまれて実行されるんだな」と想像がつく。例えば、X番の楽器をこれこれのパラメータで呼び出すんだなと。
実はこれはi-rateの話でcsoundの動きを理解するためには1/3にもなっていない。

エンベロップを例にとって考えてみる。このエンベロップがアンプリチュード(振幅)のエンベロップだとすると、それまでに生成された音声信号に対して掛け算をしてゆくことが必要になる。しかしcsoundの楽器のコードの中には普通のプログラムで書けば発音時間の間掛け算を行うという書き方は見当たらない。単に掛け算が書いてあるだけなのだが、この意味は、「スコアで起動されたp2の時間から、p3で指定された継続時間の間、ずーっと掛け算をしなさい」という意味になる。しかしポイントはこの『ずーっと』の意味。その間ずっとという連続時間を扱えないので、コントロールレート(k-rate)の考え方が必要になる。すなわち、1秒間をkr個に等分し各区間ごとで掛け算を行うのが『ずーっと』の意味になる。a-rateは発音されるシグナル(signal)のサンプルレートで、srとして定義される。だから、

sr=44100
kr=4410
ksmps=10
nchnls = 2

の用なCSDファイルだと、サンプルレートすなわちa-rateが44.1kHz(CDと同じ)、コントロールレートすなわちk-rateは4.41kHzということを表している。