#include #include #include using namespace std; /**pour compiler g++ 'app21.cpp' -std=c++11 -Wall -Wextra -o 'joapp21' ********************/ // version app5a nous changeons la forme de l'inertie que sur le pt haut onde 1 int main() { string const construit("audio.jo"); ofstream ici(construit.c_str()); int tab[830], tab1[7],j1,j2; // tableau plus grand(830 pour 800) a cause ecriture over flow induit par for(int i=0; i<800;i=i+16) qui pousse i au dessus de 800 for(int j=0; j<7; j++) { cout << "Tapez 6 valeurs.(1-pt haut onde 1)(2-hauteur des ondes)(3-pt haut onde 2)(4-H1)(5-H2)(5-k7) " << j << " : "; cin >> tab1[j]; } //H1 hauteur ralenti onde 1 et H2 hauteur ralenti onde 2, ces variations de hauteurs produisent les sons for(int i=0; i<800; i++) {tab[i] = 128;}// je remplis les cases du tableau utile for(int i=1; i<800;i=i+2){ tab[i] = 2;}// tous les plateaux de crete sont mis a 2 j1=1; j2=2; for(int i=0; i<800;i=i+16) { tab[i] = 128-tab1[5]+j1;if (j1 >24){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} }// point bas onde 1 1 j1=1; j2=2; for(int i=2; i<800;i=i+16) { tab[i]= (tab1[0])+128+j1;if (j1 >24){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = 250;} } // 3/4 point haut onde 1 for(int i=4; i<800;i=i+16) { tab[i] = (tab[(i-2)] -tab1[3]); }// point haut onde 1 echo for(int i=6; i<800;i=i+16) { tab[i] = (tab[(i-4)]); }// point haut onde 1 echo j1=1; j2=2; for(int i=8; i<800;i=i+16) { tab[i]= tab[(i-2)] -tab1[1]+j1;if (j1 >24){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i]<5){tab[i] = 5;} } //point bas du 3/4 onde 1 j1=1; j2=2; for(int i=10; i<800;i=i+16) { tab[i]= (tab1[2])+128+j1;if (j1 >24){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] < (tab[(i-2)] + 1)){tab[i] = (tab[(i-2)]+1);}; if (tab[i] > 250){tab[i] = 250;} } //1/2 point haut onde 2 for(int i=12; i<800;i=i+16) { tab[i] = (tab[(i-2)] -tab1[4]); }// point bas onde 1 echo for(int i=14; i<800;i=i+16) { tab[i] = (tab[(i-4)]); }// point bas onde 1 echo tab[1] = tab1[6]; if(ici) { for(int i = 0; i < 800; i++) { ici<