2006-09-01から1ヶ月間の記事一覧

楽器を繋げる

複雑な音をつくりあげるには様々な楽器を繋ぎ合わせなければならない。ではWAVETABLEとAMを繋いでみましょう。 rtsetparams(44100, 2) load("WAVETABLE") load("AM") bus_config("WAVETABLE", "aux 0 out") //WAVETABLEの出力先aux 0 bus_config("AM", "aux …

音声ファイルの書き出し

リアルタイムに音を再生するだけでなく録音してみる。とても簡単で1行追加するだけ。 rtsetparams(44100, 2) rtoutput("filename") //ファイルが書き出される load("WAVETABLE") waveform = maketable("wave", 1000, "sine") WAVETABLE(0, 3, 440, 20000, 0…

maketableで正弦波

makegenは楽器ごとにエンベロープや波形なのか調べないといけなくて大変そうだと感じていたのだが、これを解決すべくmaketableが用意されている。よってmaketableを使ってココの正弦波の例を書きなおしてみる。 rtsetparams(44100, 2) load("WAVETABLE") wav…

makegenの第一引数

正弦波を鳴らす例でmakegenの最初の引数が1の時、2の時の説明をしました。しかし振幅変調の楽器AMINSTの例でmakegenの第一引数が3や4の場合があることを知る。さらに読むと楽器によってmakegenの第一引数はことなる働きをすると。マニュアルのAMINSTには以下…

デバイス名の取得の怪

デバイスIDから入出力デバイスの名前を取得する関数はInputDeviceNameとOutputDeviceNameですが、引数がちょっと変だ。 sndobj.InputDeviceName(0, "hoge") #2つ目の引数に何か文字列が必要だこれによりデバイスIDが0の入力デバイス名が取得できる。が、コメ…

デバイス一覧

PySndObjのマニュアルは無いみたい、よってSndObjのマニュアルを参考にしているのだけれども。そのマニュアルに書いている利用可能なデバイスを一覧表示する関数DeviceListは使えません。PySndObjでは import sndobj sndobj.ListDevices()これで入力と出力の…

コメントアウト

コメントアウトのいくつか。 /*ここコメント /*ここもコメント*/ //もひとつコメント多分こんなもの

正弦波

昨日は文字列を出力しただけなので、音をと。基本はやはり正弦波、サインウェーブをと。 rtsetparams(44100, 2) /*サンプリングレートとチャンネル数*/ load("WAVETABLE") /*楽器を読みこむ*/ makegen(2, 10, 1000, 1) /*サイン波*/ WAVETABLE(0, 10, 8000, …

画面に出力

RTcmixをはじめてみようかと、、、。不定期にちょっとづつ。 print("hello") a = "jun" b = 2006 printf("miu%s%d",a,b)以上をfile.scoとでも保存します。次に以下のように実行すると $CMIX <file.sco -------> RTcmix 4.0.0 (CMIX) <-------- hello miujun2006出力されます。</file.sco>

スライダで再生速度を変える。

昨日の日記をふまえて、読み込んだ音声ファイルの再生速度を動的に変えてみる。その際GUIのスライダを作り、それによりコントロールする。GUIはwxPythonを使います。 from sndobj import * import wx class SndSpeed: def __init__(self, name="loop.wav" ):…

ファイルサイズの取得

以前、説明したファイル読み込みのクラスであるSndWaveは、上位クラスのSndFIOを継承しています。であるからSndFIOのメソッドのGetDataFrames()でファイルサイズを取得できます。使い方は file = SndWave("loop.wav", READ) size = file.GetDataFrames()こん…