Turbo Pascal – Le son
- Turbo Pascal – Introduction au Turbo Pascal
- Turbo Pascal – Ecrire sur l’écran
- Turbo Pascal – Un peu de maths
- Turbo Pascal – Les commentaires
- Turbo Pascal – Les variables
- Turbo Pascal – Les constantes
- Turbo Pascal – Entrée de données
- Turbo Pascal – Structure conditionnelle
- Turbo Pascal – Les cas
- Turbo Pascal – Branchements
- Turbo Pascal – Les boucles
- Turbo Pascal – Procédures et fonctions
- Turbo Pascal – Les unités
- Turbo Pascal – Les tableaux
- Turbo Pascal – Les maths
- Turbo Pascal – Le traitement du texte
- Turbo Pascal – Affichage du texte
- Turbo Pascal – Le son
- Turbo Pascal – Graphismes
- Turbo Pascal – L’unité Graph et le texte
- Turbo Pascal – Les types personalisés
- Turbo Pascal – Les pointeurs
- Turbo Pascal – Les objets
- Turbo Pascal – Les ensembles
Il existe plusieurs façons de faire du son avec Turbo Pascal. Les méthodes qui vont suivrent permettent d’utiliser le haut-parleur interne du PC.
Pour la carte son, il faut employer des moyens détournés.
Bip
Pour faire un bip, une méthode bien connue est d’utiliser le caractère de controle de la table ASCII correpondant, qui est le 7.
On peut dont écrire :
begin
write(chr(7));{BIP!}
write(#7);{Re-BIP!}
end.
Sound
Une seconde possibilité plus souple est l’appel à Sound, qui demande l’emploi de l’unité crt.
Sound demande un argument qui représente la fréquence en Hertz du son à émmetre.
Voici un tableau qui permet de se retrouver entre les différentes vibrations :
| NOTE | Octaves | |||
|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |
| Do | 131 | 262 | 523 | 1047 |
| Ré | 147 | 294 | 587 | 1175 |
| Mi | 165 | 330 | 659 | 1319 |
| Fa | 176 | 349 | 698 | 1397 |
| Sol | 196 | 392 | 784 | 1568 |
| La | 220 | 440 | 880 | 1720 |
| Si | 247 | 494 | 988 | 1976 |
Le La du diapason est, parait-il, situé sur la 2ème octave.
Donc, on peut écrire :
uses crt;
begin
Sound(440);{LAAAAAAAA}
end.
Oui, mais là (:-)), problème : le haut-parleur ne s’arrête plus!
Il faut alors recourir à une seconde instruction : NoSound.
NoSound arrete tout bêtement le haut-parleur :
uses crt;
begin
Sound(440);{LAAAAAAAA}
NoSound;{On arrete}
end.
Cette fois-ci, ça s’arrete. Mais ça se passe tellement vite que l’on a même plus le temps d’entendre.
Il existe alors plusieurs possibilité de temporiser : avec des boucles, avec un readln…
On peut aussi utiliser Delay (qui est aussi compris dans l’unité crt). Delay suspend l’execution du programme pendant
le nombre de mili-secondes qui lui sont transmises en arguments.
Donc, pour faire un la de 1,5 s, on écrira :
uses crt;
begin
Sound(440);{LAAAAAAAA}
Delay(1500);{Pendant 1.5s}
NoSound;{On arrete}
end.
Bonjour,
Super vos cours de TurboPascal, seulement j’ai un soucis avec celui-ci. Impossible de faire sortir un son, ni avec le « bip » ni avec le « sound ». Je suis sous Ubuntu 8.4 et je code avec Geany.
Si vous pouvez m’aider
A+