Ciao Giuseppe,

To create a sine oscillator in Capytalk, you would generate a linear phase using **repeatingFullRamp** and then take the sine of that, for example:

(1 repeatingFullRamp: (!Rate hz inverse)) normSin

I used normSin as a shortcut so I would not have to multiply the (-1, 1) phase by 2 π.

Since there are 15 of them in the Prototype example (because Y00 and Y15 are the same point), I used a TransformEventValues to map !Y00, !Y02.. !Y14 to a collection of 15 expressions:

{(0 to: 14) collect: [ :i | (1 repeatingFullRamp: (!Rate suffix2: i) hz inverse) normSin]}

The suffix2: is for adding a number to the end of each !Rate so you can control them independently.

Here's an example Sound.

All that remains is to add an independent amplitude control to each of the LFOs which you can do by multiplying each element in the collection by a unique !Amp control, for example:

{(0 to: 14) collect: [ :i | (1 repeatingFullRamp: (!Rate suffix2: i) hz inverse) normSin * (!Amp suffix2: i)]}