joris Abadie
Lien pour entendre la sonnerie de téléphone créé au format son.jo
/**
/** *@projet audio au format jo *@ le format jo est un fichier de musique écrit en mode texte *@imaginer et realiser par *@Andre pierre jocelyn *@andre@univ-montp2.fr *@pierre.joc.andre@gmail.com *@remerciements a *@Frédéric Boulanger *@frederic.boulanger@supelec.fr */ import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine; public class LeO { /** C ici que commence la construction des ondes * chaque onde devra avoir son propre void, il suffit de copier coller *en remplaçant le numero de l'onde pour en creer une nouvelle */ static double Amp = 0.01; // ici je lie l'amplitude au nombre de boucle static double AmpA = 0.01; // ici je cree la forme de l'onde porter //onde 1 public static void face1(double freq1, long duree1, SourceDataLine onde1) { AudioFormat jo1 = onde1.getFormat(); float TauxEchantillon1 = jo1.getSampleRate(); int tailletampon1 = onde1.getBufferSize(); int tailleEchantillon1 = jo1.getSampleSizeInBits(); int nbOctets = 0; int valMax1 = 0; if (tailleEchantillon1 == 8) { nbOctets = 1; valMax1 = 0x7F; } else if (tailleEchantillon1 == 16) { nbOctets = 2; valMax1 = 0x7FFF; } else { throw new Error("# Nombre de bits par echantillon non supporte : " + tailleEchantillon1); } boolean grandEndian1 = jo1.isBigEndian(); int nbEchantillons = (int)Math.ceil((double)duree1 / 1000 * TauxEchantillon1); byte echantillonaudio1[] = new byte[tailletampon1]; int i = 0; while (i < nbEchantillons) { int j = 0; while ((j < tailletampon1) && (i < nbEchantillons)) { int val1 = (int)(valMax1 * 0.63 * base1(i++, freq1, TauxEchantillon1)); if (nbOctets == 1) { echantillonaudio1[j++] = (byte)val1; } else if (grandEndian1) { echantillonaudio1[j++] = (byte)((val1 & 0xFF00) >> 8); echantillonaudio1[j++] = (byte)(val1 & 0x00FF); } else { echantillonaudio1[j++] = (byte)(val1 & 0x00FF); echantillonaudio1[j++] = (byte)((val1 & 0xFF00) >> 8); } } onde1.write(echantillonaudio1, 0, j); } } // fin onde 1 //debut onde 2 public static void face2(double freq2, long duree2, SourceDataLine onde2) { AudioFormat jo2 = onde2.getFormat(); float TauxEchantillon2 = jo2.getSampleRate(); int tailletampon2 = onde2.getBufferSize(); int tailleEchantillon2 = jo2.getSampleSizeInBits(); int nbOctets = 0; int valMax2 = 0; if (tailleEchantillon2 == 8) { nbOctets = 1; valMax2 = 0x7F; } else if (tailleEchantillon2 == 16) { nbOctets = 2; valMax2 = 0x7FFF; } else { throw new Error("# Nombre de bits par echantillon non supporte : " + tailleEchantillon2); } boolean grandEndian2 = jo2.isBigEndian(); int nbEchantillons = (int)Math.ceil((double)duree2 / 1000 * TauxEchantillon2); byte echantillonaudio2[] = new byte[tailletampon2]; int i = 0; while (i < nbEchantillons) { int j = 0; while ((j < tailletampon2) && (i < nbEchantillons)) { int val2 = (int)(valMax2 * 0.63 * base2(i++, freq2, TauxEchantillon2)); if (nbOctets == 1) { echantillonaudio2[j++] = (byte)val2; } else if (grandEndian2) { echantillonaudio2[j++] = (byte)((val2 & 0xFF00) >> 8); echantillonaudio2[j++] = (byte)(val2 & 0x00FF); } else { echantillonaudio2[j++] = (byte)(val2 & 0x00FF); echantillonaudio2[j++] = (byte)((val2 & 0xFF00) >> 8); } } onde2.write(echantillonaudio2, 0, j); } } //fin onde 2 //debut onde 3 public static void face3(double freq3, long duree3, SourceDataLine onde3) { AudioFormat jo3 = onde3.getFormat(); float TauxEchantillon3 = jo3.getSampleRate(); int tailletampon3 = onde3.getBufferSize(); int tailleEchantillon3 = jo3.getSampleSizeInBits(); int nbOctets = 0; int valMax3 = 0; if (tailleEchantillon3 == 8) { nbOctets = 1; valMax3 = 0x7F; } else if (tailleEchantillon3 == 16) { nbOctets = 2; valMax3 = 0x7FFF; } else { throw new Error("# Nombre de bits par échantillon non supporté : " + tailleEchantillon3); } boolean grandEndian3 = jo3.isBigEndian(); int nbEchantillons3 = (int)Math.ceil((double)duree3 / 1000 * TauxEchantillon3); byte echantillonaudio3[] = new byte[tailletampon3]; int i = 0; while (i < nbEchantillons3) { int j = 0; while ((j < tailletampon3) && (i < nbEchantillons3)) { int val3 = (int)(valMax3 * 0.63 * base3(i++, freq3, TauxEchantillon3)); if (nbOctets == 1) { echantillonaudio3[j++] = (byte)val3; } else if (grandEndian3) { echantillonaudio3[j++] = (byte)((val3 & 0xFF00) >> 8); echantillonaudio3[j++] = (byte)(val3 & 0x00FF); } else { echantillonaudio3[j++] = (byte)(val3 & 0x00FF); echantillonaudio3[j++] = (byte)((val3 & 0xFF00) >> 8); } } onde3.write(echantillonaudio3, 0, j); } } //fin onde 3 //ici nous indiquons quel va etre la forme de chaque onde //en exemple pour les voyelles nous utilisons une fonction sinus // pour les consonnes une fonction exponentielle //debut forme d'onde 1 public static double base1(int i, double freq1, double pourcentage1) { double temps1 = Math.IEEEremainder(i/pourcentage1, 1/freq1); if (temps1 < 0) { temps1 += 1 / freq1; } // return (A *Math.sin(2 * Math.PI * freq * temps1)); // return (A * Math.sin(2 * Math.PI * freq * temps1)); // return Math.exp(t)*(0.50 * Math.sin(freq * temps1 * Math.exp(1))); // return ((Amp + 0.001 ) * Math.exp(-0.39) * Math.sin( 2 * Math.PI * freq1 * temps1)); return ((Amp + 0.0001 ) * 0.4 * Math.sin( 2 * Math.PI * freq1 * temps1)); // return (0.3 * Math.sin(freq1 * Math.exp(temps1))); // return (A * Math.cos(2 * Math.PI * freq1 * temps1 + 1 ) * Math.cos(2 * Math.PI * freq1 * temps1 +1)); } //fin forme onde 1 //debut forme d'onde 2 public static double base2(int i, double freq2, double pourcentage2) { double temps2 = Math.IEEEremainder(i/pourcentage2, 1/freq2); if (temps2 < 0) { temps2 += 1 / freq2; } // return Math.exp(temps2)*(Math.sin(freq * temps2 )); // return Math.exp(temps2)*(0.25 * Math.sin(freq * temps2 * Math.exp(1))); // return (2 *A * Math.sin(2 * Math.PI * freq * temps2)); // return (2 * A * Math.sin(freq * temps2 * Math.exp(1))); // return ((AmpA + 0.001 ) * Math.exp(-0.89) * Math.sin(2 * Math.PI * freq2 * temps2)); return (( AmpA + 0.0001 ) * 0.4 * Math.sin(2 * Math.PI * freq2 * temps2)); // return (0.3 * Math.sin(freq2 * Math.exp(temps2))); // return (2 *A * Math.cos(2 * Math.PI * freq2 * temps2 + 1) * Math.cos(2 * Math.PI * freq2 * temps2 + 1)); } //fin forme onde 2 //debut forme d'onde 3 public static double base3(int i, double freq3, double pourcentage3) { double temps3 = Math.IEEEremainder(i/pourcentage3, 1/freq3); if (temps3 < 0) { temps3 += 1 / freq3; } return ((AmpA + 0.0001 ) * 0.002 * Math.sin( Math.PI * freq3 * temps3 )); // return Math.exp(t)*(Math.sin(freq * temps3 )); // return (3 * A * Math.sin(freq3 * temps3 * Math.exp(1))); // return (3 * A * Math.sin(2 * Math.PI * freq3 * temps3)); // return ((Amp + 0.001 ) * 0.01 * Math.cos(2 * Math.PI * freq3 * temps3)); // return (3 * Math.sin(freq3 * Math.exp(temps3))); // return (3 * A * Math.cos(2 * Math.PI * freq3 * temps3 + 1) * Math.cos(2 * Math.PI * freq3 * temps3 + 1)); } //fin forme onde 3 public static void main(String args[]) { final float TauxEchantillon1 = 20500; final int tailleEchantillon1 = 8; final boolean grandEndian1 = true; final boolean signed1 = true; final float TauxEchantillon2 = 20500; final int tailleEchantillon2 = 8; final boolean grandEndian2 = true; final boolean signed2 = true; final float TauxEchantillon3 = 20500; final int tailleEchantillon3 = 8; final boolean grandEndian3 = true; final boolean signed3 = true; AudioFormat audiojo1 = new AudioFormat(TauxEchantillon1, tailleEchantillon1, 1, signed1, grandEndian1); AudioFormat audiojo2 = new AudioFormat(TauxEchantillon2, tailleEchantillon2, 1, signed2, grandEndian2); AudioFormat audiojo3 = new AudioFormat(TauxEchantillon3, tailleEchantillon3, 1, signed3, grandEndian3); SourceDataLine onde1 = null; SourceDataLine onde2 = null; SourceDataLine onde3 = null; try { onde1 = AudioSystem.getSourceDataLine(audiojo1); onde1.open(audiojo1); onde2 = AudioSystem.getSourceDataLine(audiojo2); onde2.open(audiojo2); onde3 = AudioSystem.getSourceDataLine(audiojo3); onde3.open(audiojo3); } catch (LineUnavailableException lue) { System.out.println("# Erreur : impossible de trouver une ligne de sortie audio au format :"); System.out.println("# " + audiojo1); System.exit(1); } onde1.start(); onde2.start(); onde3.start(); //ici commence les donnees a modifier pour jouer differents son // variables pour les boucles double B1 = 0 , B2 = 0 ,B3 = 0;// // variables des durees int Dur1 = 5; //frequence // double F1 = 0.5 * Math.exp(6) , F2 = 2 * F1; double F1 = 0.5 * Math.exp(6) , F2 = 2 * F1 , F3 = 7 * F2; // F1 est la forme de base, F2 donne la contenance, F3 entre 2800 et 3200 donne le timbre // N6ous remarquons que l'intensite pour garder l'equilibre avec la frequence est très importante // l'intensite se reglant dans la forme de la courbe plus haut //ici fini la fin des donnees, il reste la forme de la courbe aussi modifiable, ou ajouter des ondes // /** while (B2 <= 1) { B1 =0; double lienM1 = Math.exp(-6.8971199849); double lienM1B = Math.exp(-0.598); while (B1 <= 0) //onde1 { Amp = lienM1; AmpA = lienM1B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; double lienM2 = Math.exp(-5.1711829815); double lienM2B = Math.exp(-0.398); while (B1 <= 0) //onde2 { Amp = lienM2; AmpA = lienM2B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde3 B1 = 0; double lienM3 = Math.exp(-0.8915981193); double lienM3B = Math.exp(-0.398); while (B1 <= 0) { Amp = lienM3; AmpA = lienM3B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde4 B1 = 0; double lienM4 = Math.exp(-0.8675005677); double lienM4B = Math.exp(0.23); while (B1 <= 0) { Amp = lienM4; AmpA = lienM4B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde5 B1 =0; double lienM5 = Math.exp(-0.7985076962); double lienM5B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM5; AmpA = lienM5B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 6 double lienM6 = Math.exp(-0.6539264674); double lienM6B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM6; AmpA = lienM6B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 7 double lienM7 = Math.exp(-0.5108256238); double lienM7B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM7; AmpA = lienM7B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 8 double lienM8 = Math.exp(-0.4004775666); double lienM8B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM8; AmpA = lienM8B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 9 double lienM9 = Math.exp(-0.2744368457); double lienM9B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM9; AmpA = lienM9B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 10 double lienM10 = Math.exp(-0.2231435513); double lienM10B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM10; AmpA = lienM10B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 11 double lienM11 = Math.exp(-0.1743533871); double lienM11B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM11; AmpA = lienM11B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 12 double lienM12 = Math.exp(-0.1165338163); double lienM12B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM12; AmpA = lienM12B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 13 double lienM13 = Math.exp(-0.1392620673); double lienM13B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM13; AmpA = lienM13B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 14 double lienM14 = Math.exp(-0.0943106795); double lienM14B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM14; AmpA = lienM14B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 15 double lienM15 = Math.exp(-0.0779615415); double lienM15B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM15; AmpA = lienM15B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 16 double lienM16 = Math.exp(-0.0725706928); double lienM16B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM16; AmpA = lienM16B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 17 double lienM17 = Math.exp(-0.0672087497); double lienM17B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM17; AmpA = lienM17B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 18 double lienM18 = Math.exp(-0.0202027073); double lienM18B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM18; AmpA = lienM18B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 19 pic principal double lienM19 = Math.exp(-0.0050125418); double lienM19B = Math.exp(0.43); while (B1 <= 0) { Amp = lienM19; AmpA = lienM19B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 20 double lienD1 = Math.exp(-0.0202027073); double lienD1B = Math.exp(0.42); while (B1 <= 0) { Amp = lienD1; AmpA = lienD1B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 =0; //onde 21 double lienD2 = Math.exp(-0.0618754037); double lienD2B = Math.exp(0.41); while (B1 <= 0) { Amp = lienD2; AmpA = lienD2B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 22 double lienD3 = Math.exp(-0.1053605157); double lienD3B = Math.exp(0.40); while (B1 <= 0) { Amp = lienD3; AmpA = lienD3B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 23 double lienD4 = Math.exp(-0.1625189295); double lienD4B = Math.exp(0.399); while (B1 <= 0) { Amp = lienD4; AmpA = lienD4B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 24 double lienD5 = Math.exp(-0.1984509387); double lienD5B = Math.exp(0.389); while (B1 <= 0) { Amp = lienD5; AmpA = lienD5B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 25 double lienD6 = Math.exp(-0.1743533871); double lienD6B = Math.exp(0.388); while (B1 <= 0) { Amp = lienD6; AmpA = lienD6B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 26 double lienD7 = Math.exp(-0.1743533871); double lienD7B = Math.exp(0.389); while (B1 <= 0) { Amp = lienD7; AmpA = lienD7B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 27 double lienD8 = Math.exp(-0.1508228897); double lienD8B = Math.exp(0.3891); while (B1 <= 0) { Amp = lienD8; AmpA = lienD8B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 28 double lienD9 = Math.exp(-0.1392620673); double lienD9B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD9; AmpA = lienD9B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 29 double lienD10 = Math.exp(-0.1625189295); double lienD10B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD10; AmpA = lienD10B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 30 double lienD11 = Math.exp(-0.2231435513); double lienD11B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD11; AmpA = lienD11B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 31 double lienD12 = Math.exp(-0.2548922496); double lienD12B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD12; AmpA = lienD12B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 32 double lienD13 = Math.exp(-0.2613647641); double lienD13B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD13; AmpA = lienD13B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 33 double lienD14 = Math.exp(-0.2876820725); double lienD14B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD14; AmpA = lienD14B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 34 double lienD15 = Math.exp(-0.415515444); double lienD15B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD15; AmpA = lienD15B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 35 double lienD16 = Math.exp(-0.5276327421); double lienD16B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD16; AmpA = lienD16B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 36 double lienD17 = Math.exp(-0.5978370008); double lienD17B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD17; AmpA = lienD17B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 37 double lienD18 = Math.exp(-0.5621189182); double lienD18B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD18; AmpA = lienD18B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 38 double lienD19 = Math.exp(-0.5108256238); double lienD19B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD19; AmpA = lienD19B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 39 double lienD20 = Math.exp(-0.5108256238); double lienD20B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD20; AmpA = lienD20B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 40 double lienD21 = Math.exp(-0.4620354596); double lienD21B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD21; AmpA = lienD21B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 41 double lienD22 = Math.exp(-0.5108256238); double lienD22B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD22; AmpA = lienD22B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 42 double lienD23 = Math.exp(-0.5621189182); double lienD23B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD23; AmpA = lienD23B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 43 double lienD24 = Math.exp(-0.6931471806); double lienD24B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD24; AmpA = lienD24B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 44 double lienD25 = Math.exp(-0.6931471806); double lienD25B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD25; AmpA = lienD25B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 45 double lienD26 = Math.exp(-1.1394342832); double lienD26B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienD26; AmpA = lienD26B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 46 47fin armonique double lienS1 = Math.exp(-1.2039728043); double lienS1B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS1; AmpA = lienS1B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 49 48 double lienS2 = Math.exp(-1.1711829815); double lienS2B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS2; AmpA = lienS2B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 50 51 double lienS3 = Math.exp(-1.0788096614); double lienS3B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS3; AmpA = lienS3B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 53 52 double lienS4 = Math.exp(-0.9416085399); double lienS4B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS4; AmpA = lienS4B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 55 54 double lienS5 = Math.exp(-0.9162907319); double lienS5B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS5; AmpA = lienS5B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 57 56 double lienS6 = Math.exp(-1.0078579254); double lienS6B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS6; AmpA = lienS6B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 59 58 double lienS7 = Math.exp(-1.0216512475); double lienS7B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS7; AmpA = lienS7B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B1 = 0; //onde 60 61 double lienS8 = Math.exp(-1.2039728043); double lienS8B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS8; AmpA = lienS8B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 62 63 B1 = 0; double lienS9 = Math.exp(-1.0216512475); double lienS9B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS9; AmpA = lienS9B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 64 65 B1 =0; double lienS10 = Math.exp(-1.237874356); double lienS10B = Math.exp(0.3892); while (B1 <=0 ) { Amp = lienS10; AmpA = lienS10B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 66 67 B1 =0; double lienS11 = Math.exp(-1.3664917338); double lienS11B = Math.exp(0.3892); while (B1 <=0 ) { Amp = lienS11; AmpA = lienS11B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 68 69 B1 =0; double lienS12 = Math.exp(-1.8643301621); double lienS12B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS12; AmpA = lienS12B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 70 71 B1 =0; double lienS13 = Math.exp(-2.0402208285); double lienS13B = Math.exp(-0.598); while (B1 <=0 ) { Amp = lienS13; AmpA = lienS13B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 72 73 B1 =0; double lienS14 = Math.exp(-2.1628231506); double lienS14B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS14; AmpA = lienS14B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 74 75 B1 =0; double lienS15 = Math.exp(-2.6592600369); double lienS15B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS15; AmpA = lienS15B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 77 76 B1 =0; double lienS16 = Math.exp(-2.9957322736); double lienS16B = Math.exp(0.3892); while (B1 <= 0) { Amp = lienS16; AmpA = lienS16B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 79 78 B1 =0; double lienS17 = Math.exp(-3.3524072175); double lienS17B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS17; AmpA = lienS17B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 81 80 B1 =0; double lienS18 = Math.exp(-3.6888794541); double lienS18B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS18; AmpA = lienS18B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //onde 82 83 B1 =0; double lienS19 = Math.exp(-4.605170186); double lienS19B = Math.exp(-0.598); while (B1 <= 0) { Amp = lienS19; AmpA = lienS19B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } //ondes de fin B1 =10; double lienS20 = Math.exp(-4.605170186); double lienS20B = Math.exp(-0.598); while (B1 <= 10) { Amp = lienS20; AmpA = lienS20B; face1(F1, Dur1 , onde1); face2(F2, Dur1 , onde2); face3(F3, Dur1 , onde3); B1 = B1+1; } B2 = B2 + 1; B3 = (int) (B2%2) ; if(B3 == 1) { F1 = F1 + 1; } else { F1 = F1 - 2; } } onde1.drain(); onde2.drain(); onde3.drain(); System.exit(0); } }