Bonjour

et tous mes meilleurs vœux.

Avant toute chose, je ne suis pas matheux...

Ceci étant dit, j'ai récemment trouvé cette page web d'où j'en ai tiré ce code,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
/* pour compil linux : gcc montest.c -lm -o montest */
 
#include <stdio.h>
#include <math.h>
 
int main()
{
	int x;
	int RunningSampleIndex;
	int SamplingFrequency;
	float Frequency;
	float WavePeriod;
	float angle;
	float Volume;
	float SampleValue;
	float tSine;
 
	Frequency=500.0;
	Volume=0.5;
	WavePeriod=1/Frequency; // 0.002
	RunningSampleIndex=0;
 
    for(x=0; x<44100; x+=1)
    {
//		fprintf (stdout,   "RunningSampleIndex : %3llu \n", RunningSampleIndex);
		angle=2.0f*M_PI*(RunningSampleIndex / WavePeriod);
//        fprintf (stdout,   "angle : %f \n", angle);
//		SampleValue=sinf(angle) * Volume;
//        fprintf (stdout,   "SpVal : %f \n", SampleValue);
		tSine += 2.0f*M_PI/WavePeriod; // pourquoi ...Pi32*1.0f/WavePeriod ?
//        fprintf (stdout,   "tSine : %f \n", tSine);
		SampleValue = sinf(tSine) * Volume;
        fprintf (stdout,   "SpVal : %10.6f \n", SampleValue);
		RunningSampleIndex+=1;
//        fprintf (stdout,   "\n");
    }
 
    return(0);
}
(j'ai laissé les commentaires pour montrer par où je suis passé, et les décalages d'alignements sont le fait de l'éditeur du forum)

Est-ce que quelqu'un peut me dire si mon interprétation est correcte ?
Car je trouve qu'il n'y a pas beaucoup de valeurs quand on regarde une demi-période comme par exemple les dernières lignes de la fin de l'exécution du prog :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
...
SpVal :  -0.232851 
SpVal :   0.102324 
SpVal :   0.390616 
SpVal :   0.499933 // tout en haut
SpVal :   0.380189 
SpVal :   0.086248 
SpVal :  -0.247211 
SpVal :  -0.467401 
SpVal :  -0.473435 // tout en bas
SpVal :  -0.262548 
SpVal :   0.068635
Si je passe le volume à 0.99, ça donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SpVal :  -0.461045 
SpVal :   0.202601 
SpVal :   0.773419 
SpVal :   0.989867 // tout en haut
SpVal :   0.752774 
SpVal :   0.170770 
SpVal :  -0.489478 
SpVal :  -0.925454 
SpVal :  -0.937401 // tout en bas
SpVal :  -0.519845 
SpVal :   0.135896
Les écarts de volume sont plus élevés, mais je trouve qu'il n'y a pas beaucoup de samples d'une période à l'autre : normal ? Pas normal ?

Une ligne que je n'ai pas bien su traduire, dans l'article : tSine += 2.0f*Pi32*1.0f/(float)WavePeriod;. D'abord je n'ai pas trouvé Pi32 (et en cherchant avec ggl je me suis retrouvé soit sur du Pic soit avec des images chaudes, pas que je les rejette mais ce n'était pas le sujet) alors je l'ai remplacé par M_PI, et je n'ai pas compris ensuite à quoi servait *1.0f alors je l'ai viré.
Bien ? Pas bien ?

Gramd merci par avance,