En fait tout est parti de là : http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-2.html et surtout des quelques lignes de code que je me permets de remettre ici : var sound:Sound = new Sound();
function sineWavGenerator(event:SampleDataEvent):void {
for ( var c:int=0; c<1234; c++ ) {
var sample:Number = Math.sin((Number(c+event.position)/Math.PI/2))*0.25;
event.data.writeFloat(sample);
event.data.writeFloat(sample);
}
}
sound.addEventListener("sampleData",sineWavGenerator);
sound.play();
Et la je me suis dit merde c'est tout ?
en fait on rempli un buffer de son avec une courbe , sachant que toute courbe est une fonction mathématique,
mes cours de physique me reviennent à la gueule, un petit tour sur wikipedia simpose, particulièrement ca : waveform

On peut donc génrer plusieurs types de courbes, différents sons
en ajustant la fréquence de la courbe, on génère différentes notes. En cherchant un peu je suis tombé sur ce site : maths et musique
Les prochaines étapes :
  • Deux oscillateurs, avec sélection du type de forme, de l'octave.
  • De quoi mixer les deux, pour bien faire, il me faudrait un composant de potentiomètre circulaire (rotary knob) .
  • Un générateur d'enveloppe ( attack /decay / sustain / release ) pour pouvoir faire des notes plus jolies, et pas un signal continu.