moved OscTri implementation to header