sine oscillator + node.js compat