そろそろS.F. Trackerの製作を再開しようと思う。
machine(ソフトシンセやエフェクト)のパラメータ保持方法ではまっている。
パラメータ保持クラス(io_info)にboost.functionを使用しているため、その値をシリアライズできなかったからだ。
なんでboost.functionを使用しているかというと、
1.machineクラスにはメンバ変数としてパラメータを持っておきたい。
2.しかし、パラメータをコンテナにしないとGUI(プロパティリスト)で扱いづらいので、パラメータ保持クラスは必要。
3.パラメータをコンテナにしておかないとmachine groupで自由にパラメータの追加・削除ができない
4.となると、パラメータ保持クラスと、メンバ変数との紐付けが必要。
そこでパラメータ保持クラスにboost.functionによってメンバアクセサを保持させることにしたのだ。。。と思う。
しかし、今考えるとあまりメリットはないのでパラメータ配列をGUIとモデルでつっつきあうというオーソドックスな方法に変更しようかなと考えている。
でも何かほかのメリットがあってそうしたような気がするのだが、思い出せない。