今回は開発日記です。
これまで、hvcc用の外部ジェネレータとして
・logue SDK v1用(OSCのみ)
・NTS-1 mkII用
・NTS-3用
・drumlogue用
を作ってきました。前回の記事で触れましたが、これらのコードを個別にメンテしていくのではなく、1つのコードに統合していく予定です。
これまで、上の順番でコードを改良・変更しながら進めてきましたので、今度は逆にdrumlogue用のコードから出発して、遡りながら同等の機能を実現していこうと思っています。
デグレを防ぐために、まず現状の外部ジェネレータで生成したコードを用意し、今後開発するジェネレータが同等のコードを生成しているか、都度検証していくことにします。
このようなテストをGolden Master testingと呼ぶそうですが、4つのプラットホームのそれぞれについて異なるユニットタイプがあって結構面倒そうなので、pytestを使ってみることにしました。
名前だけは知っていたpytestですが、Pythonのテストを作成するためのフレームワークです。解説は、検索すればいろいろ見つかりますので、割愛します。
とりあえず、過去に作成した各プラットホーム用のサンプルPure Dataパッチを、それぞれexternal generatorを使ってCのコードに変換し、これをゴールデンマスターとして保存するMakefileを作成しました。
次にテストコードとしては、新しいexternal generatorを使って同じPure Dataパッチを変換し、その出力結果をゴールデンマスターと比較する、というコードを作成しました。
まずは、起点となる最新のdrumlogue用external generatorでテストをパスするようになりました。といっても、同じexternal generatorなのでパスするのは当然ですが、テストが動作するようになったのが成果です。

コメント