Le son sur l ordinateur
|
|
- Adélaïde Langevin
- il y a 8 ans
- Total affichages :
Transcription
1 PGON.CA Le son sur l ordinateur Avec C++ et SDL Simon Levesque
2 1 Contenu Le son pour un ordinateur... 2 La fonction pour concevoir un échantillon avec une fréquence sonore désirée... 3 Créer un fichier WAV... 5 Comment mixer un son?... 7 Faire du son sur Simple DirectMedia Layer... 8 Le code source... 8 L explication du code... 10
3 2 Le son pour un ordinateur Dans le monde physique, le son est une onde qui se promène dans l air. S il n y a pas d air, tel dans l espace, il n y a pas de son. L air ambiant se contracte et se dilate et c est ce qui crée les différences de pressions que nos oreilles perçoivent. Tout le monde sait que la pression peut faire bouger des objets physiques comme compresser les parois d une bouteille de liqueur de 2 litres en plastique. De la même façon, la membrane dans l oreille ou la membrane dans un micro vibre au rythme du mouvement. Dans le cas d un micro, un courant électrique d une amplitude variable est créé par le phénomène d induction, grâce à une bobine de fils et un aimant, lorsque la membrane se déplace. Ce signal électrique est dit analogue parce qu il n a pas été transformé en série de nombres binaires (1 ou 0). Lors de la conversion analogue à digitale, il y a deux facteurs qui font perdre de la qualité au son. Les deux facteurs peuvent être améliorés, mais cela nécessite plus d espace mémoire et il est impossible de ne pas perdre de la qualité. Par contre, il est envisageable de prendre une valeur assez grande pour qu un humain soit totalement satisfait du résultat entendu. Les deux facteurs sont: la représentation numérique d une valeur et le nombre de valeurs prises par seconde. 1. La représentation numérique d une valeur est toujours faite à l aide de 0 et de 1. Le seul problème est de choisir le nombre de chiffres binaires (bits) qui représenterons une valeur qui peut être précise à l infini. Par exemple, si le voltage produit par un micro était de -1Volt à 1V, la mesure à un certain moment pourrait être de V. Avec un bit, il est possible d avoir 2 valeurs qui ne pourraient être que -1 et 0. Avec deux bits, la précision est doublée et ainsi 4 valeurs peuvent être prises tel -1, -0.5, 0, 0.5. Avec 3 bits, c est encore doublé pour aller à 8 valeurs, etc. Pour un ordinateur, les standards sont de 8 ou 16 bits représentants respectivement des plages de 256 ou valeurs différentes. 2. Le nombre de valeurs prises par seconde est appelé la fréquence d échantillonnage. Une fréquence sonore audible par un humain va d environ 20Hz à 20kHz ce qui signifie de 20 cycles pressurisations/dépressurisations à cycles pressurisations/dépressurisations. Un cycle irait par exemple de -0.2V à 0.2V et reviendrait à -0.2V pour compléter un cycle. Pour bien capter un son, il faut que l ordinateur prenne plusieurs mesures durant un cycle. Par exemple, pour un son de 100Hz, si nous prenons une fréquence d échantillonnage de 400Hz, nous obtiendrons 4 valeurs différentes par cycle. Par contre, si la fréquence d échantillonnage n était que de 100Hz, nous obtiendrons toujours la même valeur ce qui ne produirait aucun son. Il faut donc que ce nombre soit grand et les normes en informatique sont de 11025Hz, 22050Hz et 44100Hz. La section suivante montre des graphiques pour clarifier les choses. Pour connaître l espace de mémoire qu il faut pour avoir une certaine précision, il faut tenir compte de ces deux facteurs ci-haut mentionnés. Si nous prenons le meilleur cas avec des valeurs de 16 bits stéréo et une fréquence d échantillonnage de 44100Hz : À chaque seconde, valeurs sont prises. Chaque valeur est composée de 16 bits. C est donc 16*44100 bits par seconde. Cela donne bits par seconde.
4 3 Normalement l espace mémoire n est pas en bits, mais en octets. Un octet est composé de huit bits. Donc /8 = octets/seconde. Pour terminer, c est en stéréo. Il faut donc prendre deux fois plus de valeurs puisqu il y a deux canaux (gauche et droit). Ainsi, octets/seconde ou ko/seconde. Pour une musique à la radio de 3 minutes et 30 secondes, il y a 3*60+30 secondes. Il faut donc faire 176.4*210 = ko = 37 Mo. Ceux qui ont l habitude de prendre la musique d un CD et de la mettre en format WAV avant de l encoder en MP3 ne seront pas surpris par cette taille. Pour ceux qui n ont pas eu la chance d avoir des cours de physique ondulatoire (dieu aie leur âme), j ai trouvé un site qui fait un bon résumé de plusieurs sujets reliés au son. Le voici: La fonction pour concevoir un échantillon avec une fréquence sonore désirée Sâchant maintenant comment un ordinateur perçoit le son, il y a deux paramètres qui sont important pour générer un son: 1. La fréquence sonore à produire qui est le son lui-même. Par exemple la note LA qui a une fréquence de 440Hz. 2. La fréquence d échantillonnage qui est le nombre de valeurs prises par seconde. Prenons une fréquence sonore parfaite de 3Hz. Dans un sinus, un cycle est terminé lorsqu il y a eu 2*PI. PI étant égal à et que nous voulons qu il y ait 3 cycles par seconde: Le graphique est le suivant: ( ) ( ( ) ) ( ) ( ( ) )
5 4 Maintenant, avec une fréquence d échantillonnage de 18Hz, il y a 18 points par seconde qui sont mesurés. Ce sont les cercles rouges sur ce graphique: Techniquement, cela veut dire que si l ordinateur voulait reconstituer le son avec seulement ces valeurs, c est ce signal qu il enverrait aux haut-parleurs: Pour générer un son sur l ordinateur en tenant compte du nombre d échantillons déjà fourni plutôt que le temps courant que nous ne connaissons pas: Nous prenons la fonction du signal sinusoïdal que nous voulons construire. Pour le moment, la fonction parfaite est selon le temps et est : ( ) Pour fournir des points en sachant le nombre d échantillons déjà donnés, le compteur Progression est utilisé. Il commence à zéro et est incrémenté de un à chaque fois qu un point est donné. Au lieu de savoir la progression selon le temps, nous voulons savoir la progression par rapport au nombre d échantillons que le système prend. Ainsi, c est le rapport entre la progression et la fréquence d échantillonnage qui sert de temps. La fonction est alors ( )
6 5 Par exemple, si la fréquence d échantillonnage est de 18Hz, cela veut dire qu il y a 18 valeurs qui sont prises après une seconde. Puis, après une seconde, il y a eu fréquencesonore cycles. Alors en changeant progression = fréquenceéchantillonnage, cela revient à: ( ) où progression = fréquenceéchantillonnage ( ) ( ) ( ). C est justement la valeur après une seconde. Créer un fichier WAV Je sais qu il y a déjà beaucoup de librairies qui permettent de lire et d écrire des fichiers WAV. D ailleurs, SDL permet de les lire, mais pas de les écrire. Par contre, c est tellement plus plaisant de faire tout soit même et d ainsi mieux comprendre ce qui existe. Voici un petit programme C++ qui permet d émettre la note LA. #include <cmath> #include <fstream> #include <iostream> using namespace std; struct Wave_File_Header { unsigned int ChunkID; // Le type de fichier «RIFF» unsigned int ChunkDataSize; // La grandeur du fichier sans le header unsigned int RiffType; // Le type de RIFF «WAVE» ; struct Format_Chunk { unsigned int ChunkID; // «fmt» unsigned int ChunkDataSize; // La grandeur de la partie donnee (16) short unsigned int CompressionCode; short unsigned int NumberOfChannels; unsigned int SampleRate; unsigned int AverageBytesPerSeconds; short unsigned int BlockAlign; short unsigned int SignificantBitsPerSample; ; struct Data_Chunk { unsigned int ChunkID; // «data» unsigned int ChunkDataSize; // La grandeur de la partie donnee (16) ; int main(int argc, char *argv[]) { // Remplir le header du fichier Wave_File_Header monhead; monhead.chunkid = ; // «RIFF» monhead.rifftype = ; // «WAVE»
7 6 // Remplir le format du fichier Format_Chunk monformat; monformat.chunkid = 0x20746D66; // «fmt» monformat.chunkdatasize = 16; monformat.compressioncode = 1; // PCM/uncompressed monformat.numberofchannels = 1; // Mono monformat.samplerate = 22050; // 22kHz monformat.significantbitspersample = 16; monformat.blockalign = monformat.significantbitspersample / 8 * monformat.numberofchannels; monformat.averagebytesperseconds = monformat.samplerate * monformat.blockalign; // Remplir le header du data chunk Data_Chunk mondata; mondata.chunkid = ; // «data» mondata.chunkdatasize = monformat.chunkdatasize/8*monformat.samplerate; // Le nombre d echantillons dans une seconde multiplie par le nombre d octets // Entrer la grosseur total du fichier sans le header dans le header monhead.chunkdatasize = sizeof(format_chunk) + sizeof(data_chunk) + mondata.chunkdatasize; // Ouvrir le fichier de son ofstream fout(«tmp.wav», ios::binary); // Ecrire les headers fout.write((char *) &monhead, sizeof(monhead)); fout.write((char *) &monformat, sizeof(monformat)); fout.write((char *) &mondata, sizeof(mondata)); // Generer une seconde double valeurdouble; short int valeur16; for(double i=0; i<monformat.samplerate; i++) { // Calculer valeurdouble = * sin(i/monformat.samplerate*2*3.1416*440); valeur16 = (short int) valeurdouble; // Ecrire fout.write((char *) &valeur16, sizeof(valeur16)); // Fermer le fichier fout.close(); Un fichier WAV est un type dans le format de fichier RIFF 1 (Resource Interchange File Format). Le contenu d un tel fichier est fait de plusieurs paquets de données appelés chunks. Il faut d abord définir dans le fichier que c est un RIFF avec du WAVE dedans. Ceci est fait avec la structure Wave_File_Header. Ensuite, il faut définir le format du fichier dans le Format_Chunk. 1
8 7 Puis dire combien de données il y a dans le fichier pour ainsi pouvoir connaitre la progression sans même avoir reçu la fin (streaming). C est écrit dans Data_Chunk. Pour finir, les données sont mises. Dans cet exemple, nous savons déjà qu il y a pour une seconde de données. Il est donc possible de calculer les grosseurs d avance, mais dans un vrai projet, il faut parfois aller au fur et à mesure. Pour ne pas se casser la tête, voici ce qui peut être fait: 1. Écrire dans le fichier les headers avec des données manquantes. 2. Écrire les données tout en incrémentant les compteurs dans les headers. 3. Revenir au début dans le fichier. (Avec ofstream, simplement appeler variable.seekp(0)) 4. Puis réécrire les headers et fermer le fichier. Pour plus d informations sur le format WAV, ce site est excellent: The Sonic Spot 2 Comment mixer un son? Superposer deux sons dans la réalité est très simple. Il suffit d additionner les sons jusqu à s en casser les tympans. Par contre en informatique, il y a une limite au volume maximal. Par exemple, pour un échantillon de 16 bits signé, le volume maximum est de = Si l addition des sons donne un nombre au-dessus de cette valeur, le compteur retombera à Si nous additionnons , normalement, nous voulons avoir 32770, mais ce nombre est de 3 au-dessus de la valeur maximale. Ainsi, nous obtiendrons et ce n est pas souhaité. Une autre tactique est de faire la moyenne des sons. Par contre, cela réduira le volume total. Par exemple, si un son émet un volume de et l autre un silence de 0, nous voudrions obtenir quand même un son de 30000, mais nous obtiendrons Ce qui peut être fait est un compromis des deux. Il faudrait donc faire la moyenne et ensuite amplifier le son d un facteur qui rend le volume maximum courant au volume maximum des trois échantillons différents à mixer. Cela demande par contre beaucoup de calculs et c est pourquoi normalement, le volume est amplifié d un facteur constant (surtout dans les circuits électroniques simples). 2
9 8 Faire du son sur Simple DirectMedia Layer Il y a beaucoup d articles qui parlent d affichage 3D. Il y a aussi beaucoup de cours de programmation qui se veulent multimédia, mais trop peu se consacrent au son. Pourtant, le son est omniprésent dans les vidéos, les jeux et les films. Voici donc comment commencer à générer des sons avec la librairie SDL 3 qui est gratuite pour Windows, Linux et MacOS. Faire du son sur l ordinateur, ce n est pas aussi simple que de dessiner à l écran. Ce n est pas simplement un pixel auquel nous associons une couleur, mais des différences de volumes selon le temps qu il faut définir en temps réel. Le code source Voici donc le fichier squelette qui émet la note LA (440 Hz): #include <cmath> #include <iostream> #include " SDL/SDL.h" #include " SDL/SDL_audio.h" using namespace std; // Variables globales SDL_AudioSpec materiel; // La fonction de generation de sons void genaudio(void *unused, Uint8 *stream, int len); int main(int argc, char *argv[]) { SDL_AudioSpec fmt; // Initialiser le mode audio if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) { cerr << " Unable to init SDL: " << SDL_GetError() << endl; return 1; // Pour que la desinitialisation de SDL se fasse quand l application quittera atexit(sdl_quit); // Choisir les parametres du signal fmt.freq = 22050; fmt.format = AUDIO_S16; fmt.channels = 1; fmt.samples = 512; fmt.callback = genaudio; fmt.userdata = NULL; // Ouvrir le peripherique de son if ( SDL_OpenAudio(&fmt, &materiel) < 0 ) { cerr << " Unable to open audio: " << SDL_GetError() << endl; return 1; 3
10 9 // Demarrer la lecture SDL_PauseAudio(0); // Afficher les informations materielles cout << " Frequence: " << materiel.format << endl; cout << " Format: " << materiel.freq << endl; cout << " Channels: " << materiel.channels << endl; cout << " Samples: " << materiel.samples << endl << endl; // Attente SDL_Delay(10000); // Fermer le son SDL_CloseAudio(); // Faire la note LA en 16 bits signe void genaudio(void *unused, Uint8 *stream, int len) { static Sint16 unevaleur = ; static unsigned int Progression = 0; double unpoint; double frequencesonore = 440; // Un LA // Remplir de donnees for (int i=0; i<len ; i+=2) { // Saut de deux car 16 bits // Dessiner le sinus unpoint = * sin(progression*2*3.1416*frequencesonore/materiel.freq); Progression ++; unevaleur = (Sint16) unpoint; *((Sint16 *) &stream[i]) = unevaleur; Vous pouvez aussi essayer d autres fonctions qui changent la fréquence selon le temps comme celles-ci: // Avoir une frequence qui va en augmentant selon le temps void genaudio(void *unused, Uint8 *stream, int len) { static Sint16 unevaleur = ; static unsigned int Progression = 0; double unpoint; static double frequencesonore; // Remplir de donnees for (int i=0; i<len ; i+=2) { // Saut de deux car 16 bits // Augmenter la frequence a chaque passage frequencesonore = Progression*100.0/(double)materiel.freq ; // Pour augmenter de 100 Hz par seconde en commencant a 200Hz // Dessiner le sinus unpoint = * sin(progression*2*3.1416*frequencesonore/materiel.freq); Progression ++; unevaleur = (Sint16) unpoint;
11 10 *((Sint16 *) &stream[i]) = unevaleur; // Afficher la frequence sonore terminale cout << frequencesonore << endl; Pour compiler, sous Linux, il suffit d écrire: «g++ -o test sdl_audio_squelette.cpp -lsdlmain -lsdl» pour compiler le programme test incluant les librairies SDLmain et SDL. Sous Windows avec le compilateur MinGW: «g++ -o test.exe sdl_audio_squelette.cpp -lmingw32 -lsdlmain lsdl». L explication du code Pour commencer, il faut initialiser la librairie SDL en lui disant ce que nous désirons utiliser. Puisque ce n est que de l audio, c est «SDL_INIT_AUDIO». Ensuite, il ne faut jamais oublier de fermer comme il faut la librairie et cela n est pas fait automatiquement à la sortie du programme. Pour l automatiser, un «atexit» est appelé avec la fonction pour fermer la librairie. Par la suite, nous choisissons un format que nous aimerions avoir. La fréquence d échantillonnage choisie est 22kHz, ce qui signifie qu il faut donner mesures de volume par seconde. Le format choisi est «AUDIO_S16? ce qui signifie que chaque mesure de volume est représentée par un entier signé de 16 bits. En d autres termes, puisqu il y a 16 bits, il y a 2 à la puissance 16 valeurs différentes (65536) que la mesure peut prendre et puisqu elle est signée, au lieu d être de 0 à 65535, c est de à Puisque nous voulons que ce soit mono, un seul canal est utile; pour du stéréo, ce serait deux. Il faut donner des valeurs de volume à la librairie SDL pour qu elle sache quoi jouer comme son. Plutôt que de n en donner qu une seule à la fois, c est un tampon que nous remplirons avec la fonction de génération sonore. Nous demandons donc un tampon de 512 mesures. La fonction de génération sera donc appelée 44 fois par seconde (22050/512). Il faut choisir cette valeur selon l utilisation voulue. Pour pouvoir modifier le son très rapidement (comme pour un coup de feu), il faut qu il soit petit. S il est trop petit et que le programme fait beaucoup d autres choses que de jouer du son, le tampon n aura pas le temps de se remplir assez rapidement et il va y avoir des coupures. Après cela, il faut ouvrir le périphérique de son et démarrer la lecture en mettant la pause à faux. Étant donné que le matériel ne supporte peut-être pas ce que nous avons demandé comme format, il est préférable de vérifier ce que le matériel nous donne. C est ce qui est affiché. Pour terminer la fonction principale, le thread attend 10 secondes. Le son est géré sur un autre thread et c est pourquoi nous pouvons appeler la fonction bloquante SDL_Delay. Dernièrement, la fonction de génération produit la note LA. La description du pourquoi du comment que la fonction ( ) a été trouvée est
12 11 expliquée précédemment. Il n y a que deux choses qui restent à expliquer. Nous avons demandé d utiliser un entier signé de 16 bits et ce qui nous est passé en paramètre est un tampon d entiers non signés de 8 bits. Le signe ne dérange pas vraiment puisque la valeur que nous désirons est mise dans le bon type. Il suffit donc de pouvoir l entrer tel quel dans le tampon. Étant donné que nous utilisons 2 fois plus de bits, chaque valeur de 16 bits sera écrite dans deux cases de 8 bits. 1. C'est pourquoi la variable i saute de deux valeurs à chaque passage. 2. C'est pourquoi la ligne obscure «*((Sint16 *) &stream[i]) = unevaleur;» est présente pour copier la valeur. Si vous voulez comprendre la ligne «*((Sint16 *) &stream[i]) = unevaleur;», continuez de lire, sinon, c est terminé pour vous. Sachez simplement que dans l autre fonction génératrice, le changement de fréquence est mis dans la boucle for pour que l ajustement se fasse au fur et à mesure, sinon ça ne sonne pas doux. Vous pouvez l essayer à l extérieur pour comprendre. *((Sint16 *) &stream[i]) = unevaleur; Allons-y par étape: Nous voulons mettre la valeur de volume qui est en rouge dans le tampon. Il faut donc modifier le tampon pour qu il prenne deux cases au lieu d une. En bleu, c est l endroit qui représente notre première case (i+1 est notre seconde case). Pour modifier le type, la façon la plus simple est d oublier ce que c est en prenant non pas la valeur en bleue, mais l endroit pointé dans la mémoire par cette case. 8 bits plus loin dans la mémoire, c est la seconde case. Pour obtenir l adresse mémoire, de la première case, il faut ajouter le caractère en vert. Nous avons donc l adresse mémoire de la case de 8 bits. Pour changer cela en adresse mémoire d une case de 16 bits et d ainsi pouvoir copier tous nos bits, il faut caster en pointeur d entier signé de 16 bits. C est ce qui est entre parenthèse en mauve. Dernière étape, nous avons une adresse mémoire du type que nous voulons et nous voulons affecter une valeur dans cet espace mémoire. Pour rendre une adresse en valeur, il faut mettre l adresse entre parenthèses et ajouter une étoile devant. C est en bourgogne. Pour résumer, nous prenons l adresse mémoire de la première case plutôt que la case elle-même. Avec cette adresse, nous pouvons la changer en adresse de n importe quel type. Puis cette adresse de type voulu est changée en case dans laquelle nous pouvons mettre notre valeur. Vive C++!
Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté
Compétences travaillées : Mettre en œuvre un protocole expérimental Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique
Plus en détailChapitre 13 Numérisation de l information
DERNIÈRE IMPRESSION LE 2 septembre 2013 à 17:33 Chapitre 13 Numérisation de l information Table des matières 1 Transmission des informations 2 2 La numérisation 2 2.1 L échantillonage..............................
Plus en détailCours Informatique 1. Monsieur SADOUNI Salheddine
Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale
Plus en détailTS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S
FICHE Fiche à destination des enseignants TS 35 Numériser Type d'activité Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S Compétences
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailChap17 - CORRECTİON DES EXERCİCES
Chap17 - CORRECTİON DES EXERCİCES n 3 p528 Le signal a est numérique : il n y a que deux valeurs possibles pour la tension. Le signal b n est pas numérique : il y a alternance entre des signaux divers
Plus en détailLES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES
LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES Compétences mises en jeu durant l'activité : Compétences générales : S'impliquer, être autonome. Compétence(s) spécifique(s) : Reconnaître des signaux de nature
Plus en détailOutils permettant la diffusion de l information. Un point sur le droit numérique
Technologies de l Information et de la Communication Introduction aux NTE/TICE Présentation des UNR UNT Outils permettant la diffusion de l information Conceptualisation d un module d apprentissage numérique
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailTraitement numérique du son
Traitement numérique du son 1/ - QU'EST-CE QU'UN SON? 1.1 Définition D'un point de vue physique, un son est une énergie qui se propage sous forme de vibrations dans un milieu compressible (dans l'eau,
Plus en détailProduction de documents audio-numériques
Technique de l Information et de la Communication Production de documents audio-numériques 1. Technique Acoustique : --------------------------------------------------- 2 notions de base sur le son. Fréquence,
Plus en détailGuide des fonctions avancées de mywishtv
Guide des fonctions avancées de mywishtv Table des matières Présentation des fonctionalités avancées de mywishtv 3 Raccorder au réseau domestique et à Internet 4 Logiciel serveur dlna pour votre pc 6 Navigation
Plus en détailTransmission de données. A) Principaux éléments intervenant dans la transmission
Page 1 / 7 A) Principaux éléments intervenant dans la transmission A.1 Equipement voisins Ordinateur ou terminal Ordinateur ou terminal Canal de transmission ETTD ETTD ETTD : Equipement Terminal de Traitement
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailLECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011
LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011 COPIER LE FICHIER LECON 1_02 DU DISQUE D : VERS LA CLE USB Cliquez gauche deux fois sur l'icône POSTE DE TRAVAIL Cliquez gauche deux fois sur DONNEES
Plus en détailSystèmes de transmission
Systèmes de transmission Conception d une transmission série FABRE Maxime 2012 Introduction La transmission de données désigne le transport de quelque sorte d'information que ce soit, d'un endroit à un
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
Plus en détailComment enregistrer simplement toute musique restituée par votre PC
Comment enregistrer simplement toute musique restituée par votre PC Il s'agit, vous l'avez compris d'enregistrer tout ce qui passe par la carte son de votre machine : musique ou paroles, chansons ou commentaires
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailINFO-F-105 Language de programmation I Séance VI
INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détail1 Introduction au codage
CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles
Plus en détailDans la série Les tutoriels libres présentés par le site FRAMASOFT. <Handbrake> <Utilisation d'handbrake pour les débutants> Par <OLIVIER LECLERCQ>
Dans la série Les tutoriels libres présentés par le site FRAMASOFT
Plus en détailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détailMODULE 2 : L échange et le partage de fichiers numériques
MODULE 2 : L échange et le partage de fichiers numériques Introduction Définition Actions à mettre en œuvre Bonnes pratiques Introduction Introduction Production- Vente - Consommation Télévision Documents
Plus en détailRégler les paramètres de mesure en choisissant un intervalle de mesure 10µs et 200 mesures.
TP Conversion analogique numérique Les machines numériques qui nous entourent ne peuvent, du fait de leur structure, que gérer des objets s composés de 0 et de. Une des étapes fondamentale de l'interaction
Plus en détailChapitre 18 : Transmettre et stocker de l information
Chapitre 18 : Transmettre et stocker de l information Connaissances et compétences : - Identifier les éléments d une chaîne de transmission d informations. - Recueillir et exploiter des informations concernant
Plus en détailRéalisation d un diaporama en haute définition avec. Adobe Premiere Elements 3.0 ou Adobe Premiere Pro 2.0. Encodage pour Internet
Réalisation d un diaporama en haute définition avec Adobe Premiere Elements 3.0 ou Adobe Premiere Pro 2.0 Encodage pour Internet Principe...2 1. Diaporama HD avec Adobe Premiere Elements 3.0...3 1.1. Placement
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailChapitre 22 : (Cours) Numérisation, transmission, et stockage de l information
Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information I. Nature du signal I.1. Définition Un signal est la représentation physique d une information (température, pression, absorbance,
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailPartie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)
1/5 Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN) Objectifs : Reconnaître des signaux de nature analogique et des signaux de nature numérique Mettre en
Plus en détailTD séance n 10 Multimédia Son
Ce TD est dédié aux chaînes de traitements audio, un des objets multimédia de base. Il se déroulera sous Windows, bien que les logiciels utilisés ou équivalents soient aussi disponibles sous Unix. Les
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailINTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE
INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE Le schéma synoptique ci-dessous décrit les différentes étapes du traitement numérique
Plus en détailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailChapitre 2 Les ondes progressives périodiques
DERNIÈRE IMPRESSION LE er août 203 à 7:04 Chapitre 2 Les ondes progressives périodiques Table des matières Onde périodique 2 2 Les ondes sinusoïdales 3 3 Les ondes acoustiques 4 3. Les sons audibles.............................
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailI00 Éléments d architecture
I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,
Plus en détailTD : Codage des images
TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailPRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS
PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS Matériel : Un GBF Un haut-parleur Un microphone avec adaptateur fiche banane Une DEL Une résistance
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailFORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?
FORMATS DE FICHIERS Choisir et justifier un format de fichier pour réaliser un document multimédia 1 ) Le problème d Amélie Amélie et Léa ont publié leur premier article sur leur propre blog. Amélie constate
Plus en détailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
Plus en détailEIP 2012 Projet Livepad. Documentation technique 1.5
EIP 2012 Projet Livepad 1.5 Marc Mathieu Benjamin Netter David Ngo Pierre Pasteau Denis Togbe 12-01-2012 Informations sur le projet Groupe Nom du projet Type de document Marc Mathieu Benjamin Netter David
Plus en détailProgrammation en C/C++
INSA de Lyon Département Génie Electrique Module IF1,IF3,IF4 Programmation en C/C++ Thomas Grenier Nicolas Ducros Tanneguy Redarce Lyon, le 3 mars 2015 2 / 63 Table des matières 1 Développement en C++
Plus en détailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailInformatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse
Questions - Révision- - 1 er Semestre Informatique Durée de l examen : 1h pour 40 questions. Aucun document n est autorisé. L usage d appareils électroniques est interdit. Les questions faisant apparaître
Plus en détailCINEMA SB100 barre de son amplifiée
CINEMA SB100 barre de son amplifiée Guide de démarrage rapide Nous vous remercions d avoir choisi ce produit JBL La barre de son amplifiée JBL Cinema SB100 est un système audio intégré complet qui améliore
Plus en détailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailGUIDE DU NOUVEL UTILISATEUR
GUIDE DU NOUVEL UTILISATEUR Le but de ce tutoriel est de vous guider à travers les fonctions de base de votre logiciel. Nous partirons du principe que votre terminal de pointage est déjà installé. A la
Plus en détailEnregistrement et transformation du son. S. Natkin Novembre 2001
Enregistrement et transformation du son S. Natkin Novembre 2001 1 Éléments d acoustique 2 Dynamique de la puissance sonore 3 Acoustique géométrique: effets de diffusion et de diffraction des ondes sonores
Plus en détailUn ordinateur, c est quoi?
B-A.BA Un ordinateur, c est quoi? Un ordinateur, c est quoi? Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits
Plus en détailIntroduction à l algorithmique et à la programmation M1102 CM n 3
Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailGUIDE Excel (version débutante) Version 2013
Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte
Plus en détailGénie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string
Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.
Plus en détailProjet audio. Analyse des Signaux ELE2700
ÉCOLE POLYTECHNIQUE DE MONTRÉAL Département de Génie Électrique Projet audio Analyse des Signaux ELE2700 Saad Chidami - 2014 Table des matières Objectif du laboratoire... 4 Caractérisation du bruit...
Plus en détailInitiation au logiciel imovie HD
Sébastien Stasse Initiation au logiciel imovie HD Monter Optimiser Filmer Partager Nom: Classe: Guide d apprentissage et notions de base Produit par l École Alex Manoogian Initiation au logiciel imovie
Plus en détailLa téléphonie via Internet..(VoIP) Une solution économique et versatile
Skype-1, Atelier 116 Pour débutant La téléphonie via Internet..(VoIP) Une solution économique et versatile Titulaire: Michel Bédard (revj-avril-2013) Plan du cours (Skype-1) Possibilités multiples de SKYPE
Plus en détailNumérisation du signal
Chapitre 12 Sciences Physiques - BTS Numérisation du signal 1 Analogique - Numérique. 1.1 Définitions. Signal analogique : un signal analogique s a (t)est un signal continu dont la valeur varie en fonction
Plus en détailGuide de programmation FLEXIVOZ PABX OD308
Guide de FLEXIVOZ PABX OD308 1 SOMMAIRE Introduction 3 Installation 4 Programmation du système 5 IMPORTANT Lignes externes 6 Réglage date et heure par l horloge interne 6 Appels entrants : Affectation
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailFAIRE UN PAIEMENT TIPI
FAIRE UN PAIEMENT TIPI I. Accès au site II. Je n ai pas de compte sur ce site 1. Indiquer une adresse email valide a. J ai une adresse email b. Je n ai pas d adresse email 2. Indiquer les informations
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détail1. PRESENTATION DU PROJET
Bac STI2D Formation des enseignants Jean-François LIEBAUT Denis PENARD SIN 63 : Prototypage d un traitement de l information analogique et numérique (PSoC) 1. PRESENTATION DU PROJET Les systèmes d éclairage
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détail«Le Dolby Digital 5.1 et les tests en champ libre par ordinateur»
«Le Dolby Digital 5.1 et les tests en champ libre par ordinateur» Introduction : Jusqu à présent les tests en champ libre transitaient par un audiomètre et un dispatcher pour sortir sur la localisation
Plus en détailExpérience 3 Formats de signalisation binaire
Expérience 3 Formats de signalisation binaire Introduction Procédures Effectuez les commandes suivantes: >> xhost nat >> rlogin nat >> setenv DISPLAY machine:0 >> setenv MATLABPATH /gel/usr/telecom/comm_tbx
Plus en détailComme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:
Travaux Pratiques 3. IFT 1002/IFT 1005. Structure Interne des Ordinateurs. Département d'informatique et de génie logiciel. Université Laval. Hiver 2012. Prof : Bui Minh Duc. Tous les exercices sont indépendants.
Plus en détailTP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
Plus en détailComposition d un ordinateur :
Un ordinateur est une machine automatique de traitement de l information obéissant à des programmes formés par des suites d opérations arithmétiques et logiques. Il peut transformer, stocker, archiver
Plus en détailCodage d information. Codage d information : -Définition-
Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale
Plus en détailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
Plus en détail