Sine wave generation is a perennial problem.
Direct-digital synthesis (DDS) uses a bunch of counters, lookup tables, and DACs,
but that's a relatively heavyweight solution that doesn't fit all problems.
BJT differential pairs naturally have a hyperbolic tangent (tanh) characteristic, which can be used to round off a triangle wave into a very passable sine. I'm not old enough to have invented this technique, but here are a couple of illustrations of how it works: TANH Sine Wave Shaper (PDF) and TANH Sine Wave Shaper (Mathcad).