@pholz as per your arranged audio graph, both
GenOscNode are inputs to
MultiplyNode, so they are summed into
MultiplyNode's first channel in this case, which is then multiplied by 1 (the value of it's
ci::audio departs from what systems like Max / MSP or Super Collider do here, in that we specify params that are manipulable by audio signals with a second class, called
audio::Param (this is similar to Web Audio, however).
MathNodes do have only one
audio::Param on it, which provides the value for the specific operation such as 'multiply' or 'add', however it doesn't have to be a scalar. You can provide ramps to it, or in your case set a different
Node as its 'processor'. So, to make a triangle waveform modulate an sinewave oscillator (which is the same as multiplying them together in Max / MSP), you'd do something like:
oscNode >> multiplyNode >> gainNode;
multiplyNode->getParam()->setProcessor( triangleNode );
Documentation in the guide is unfortunately lacking on this feature, but you can find it used in the DelayFeedback sample, and in various places by searching in the crude audio test suite.
And I also highly recommend @felixfaire suggestion of making custom nodes, when in doubt. Much easier to do this in
ci::audio / C++ compared to Max like environments.