moved OscRamp implementation to header