addScoreLineについて
pythonでは拡張C++APIと呼ばれるCppCsound.h(CsoundFile.hppから継承)で定義されているaddScoreLineでスコアを一行入れることができる。それはcsnd.CppCsoundのインスタンスを作成するからだ。多重継承をサポートしてないrubyではこの部分がうまく動かない。
csoundFile=Rcsound::CsoundFile.new csoundFile.addScoreLine("i1 .....")
がエラーが出なくても発音にはつながらない。
csoundEx=Rcsound::CppSound.new csoundEx.addScoreLine("i1 .....")
は逆にエラーが出る*1。
このことから、
- CsoundFileとCsoundをブリッジするようなコードが必要なのか?
- CppSoundクラスに相当する多重継承しないでどうにかすることを考えなくてはいけないのか?
などのぼんやりとした方向性が定まってきた。
*1:エラーの内容が「Base CsoundFile ignored」だったこともうなずける