Bonjour à tous,

Je suis élève en terminal S et je fais la spé ISN (informatique et sciences du numérique).
Mon projet était de créer un piano, tout est fait, le programme fonctionne parfaitement!
Le soucis que j'ai est tout à fait particulier, je n'arrive plus a expliqué une partie de mon projet, y'a des lignes de mon programme qui me sont étrangère (les lignes que m'on professeur m'a donné en faite) et comme mon oral est pour bientôt il ne veux pas me redire et me dis de faire des recherches, mais j'arrive pas à trouver...!

j'aimerai avoir des explications détaillées s'il vous plait. (ligne par ligne serait l'idéal, sinon par morceau)

Voici la partie donc j'ai très peu de souvenir: (créer et émettre un son)




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
41
42
43
44
45
46
47
48
49
50
public class Fa {
 
    /**
     * @param args the command line arguments
     */
        public static void play(InputStream source,AudioFormat format){
 
    // 100 ms = 1s/ 10  buffer for real time change to the sound stream
        int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10);
        byte[] buffer = new byte[bufferSize];
        SourceDataLine line;
        try{
            DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
            line = (SourceDataLine)AudioSystem.getLine(info);
            line.open(format, bufferSize);
        }
        catch (LineUnavailableException e){
            e.printStackTrace();
            return;
        }
        line.start();
        try{
            int numBytesRead = 0;
            while (numBytesRead != -1){
                numBytesRead = source.read(buffer, 0, buffer.length);
                if (numBytesRead != -1)
                    line.write(buffer, 0, numBytesRead);
            }
        }
        catch (IOException e){
            e.printStackTrace();
        }
        line.drain();
        line.close();
    }
 
      // A PARTIR D'ICI JE SAIS COMMENT CA MARCHE :mouarf: ( tout ca en faite me permet de faire joué la note "fa")
 
        public static void playNote(double frequence,double temps){ 
 
        byte son[]=new byte[(int)(22050*temps)];
        AudioFormat form;
        for(int i=0;i<son.length;i++){
            son[i]=(byte)(Math.sin(frequence*2.0*3.14*i/22050.0)*100);
        }
        form=new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,22050,8,1,1,22050,false);
        InputStream stream = new ByteArrayInputStream(son);
    play(stream,form);
 
...



Bon voilà je pense avoir tout dit, si y'a des questions n'hésité pas
Merci d'avance!