Sine: give SynthNode a slightly higher-level API