OPCODEDIR/OPCODEDIR64
追加のオプコード(もしくはplug-in)を利用するためにはDLL(とか、ダイナミックリンクライブラリ)のあるディレクトリにOPCODEDIR環境変数を設定する必要あり。64は64bit環境のみ
realtime-midi(MIDI機器でスコアを読み込む)
- WinsoundはNG.csoundAV, csound5, Mycsound4, flcsoundで可能
- instr 1は空けておく
- オプションは-+P -+K、-+Pはリアルタイムオーディオ出力。-+KはリアルタイムMIDIの入力
- さらに-m0 -+Oのオプションを加えるとパフォーマンスが改善。
- オプション-+rtmidiは不明
標準入力からスコアを読み込むには
- Lstdin オプションでパイプで標準入力から流し込める
MIDIファイルでスコアを読み込む
- -Fコマンドラインオプションでファイルを指定
- ファイルはtype0に変換不要
- プログラムチェンジがファイルに含まれることがあるので注意。chを変えてしまう。
- pgmassign 0,0でプログラムチェンジを無効にすることができる(pgmassign 4,5はプログラム2をinstr5に割り当てることを意味する)
- 全部無視するには pgmassign 0, -1でもOK
- pgmassign pgmNO, instNOで、pgmNOはMIDIの世界と同じ1-128、0だと全てを意味する。instNOは0か負の数を指定するとpgnNOの指定が全て無効になる。なので、pgmassign 0,0 やpgmassign 0,-1が全てのMIDIファイル中のプログラムチェンジを無効にするhttp://kevindumpscore.com/docs/csound-manual/pgmassign.html
- スコアはリアルタイムで入力するので当然不要だが、、ダミーを入れないとcsoundのプログラムが終わってしまう。
オーケストラ例:MIDIを使用する楽器の例(あとで修正するかも) massign 1,1 ;これでMIDI-ch1の信号をinstr 1へルーティング instr 1 icps cpsmidi ;cpsmidiのopcodeはMIDI入力noteを周波数(音の高さ)に変換 ichn midichn ;MIDI-chの番号を変数midichnに代入 ivel veloc ;ノートのベロシティーを変数ivelに代入 print icps, ichn, ivel aout oscil 1, icps, 1 outs (aout*10000) , (aout*10000) endin
スコアファイル例 f 0 120 ;これがダミー f 1 0 4096 10 1 ;これはocsilから参照されている
エンベロップをつける場合、outsの行を以下のように置き換える
kenv linsegr 0,0.5,10000* (ivel/128), 3, 0 outs aout*kenv , aout*kenv
これは、opcode linsegr(LINe SEGment including Release)を使って0から(ivel/128)まで大きくなって、3秒のリリースタイムで0の大きさになるようにAmplitudeを変化させているという意味。
元ねたはcsoundMLとhttp://www.geocities.com/mantaraya36/indexmidi.html
csound5 8/27リリースでは
以下のOPCODEが追加、
ftfree ifno, iwhen
ftgentmp ifno, ip2dummy, ilength, igen, iarg1, ...
loop_g indx, idecr, imin, label
loop_g kndx, kdecr, kmin, label
loop_ge indx, idecr, imin, label
loop_ge kndx, kdecr, kmin, label
loop_l indx, iincr, imax, label
loop_l kndx, kincr, kmax, label
loop_le indx, iincr, imax, label
loop_le kndx, kincr, kmax, label
printf Sformat, ktrig, ...
printf_i Sformat, itrig, ...
環境変数の設定は、インストール先をC:\csound5にすれば、
PATH=%PATH%;C:\csound5\bin
OPCODEDIR=C:\csound5\lib
OPCODEDIR64=C:\csound5\lib64
CSOUNDRC=C:\csound5\.csoundrc
MMEを使ったリアルタイムオーディオは-+rtaudio=mmeで指定可能。
csound5\bin\portaudio.dll.0.0.19 をcsound5\pa_asioで置き換えるとPortAudioを利用可能PortAudioはMME,DirectSound,ASIOの順で表示。
デバイスは-i adcN and -o dacNで表示するが、間違った値を設定すると、
指定可能なものをリストする。バッファに関しては、b
score generating tool
- pmask (http://web.tiscali.it/mupuxeddu/csound/) メンテされてなさそう
- omde/pmask (http://pythonsound.sourceforge.net)http://pythonsound.sourceforge.net まだベータ
- Silence. http://www.csounds.com/gogins/silence/. NOTFOUND
- makescore - http://www.xornot.com/