|
LE SON
I)Le principe
Comme vous le
savez tous, les Ti89/92/92p ne sont pas prévues pour emettre du
son :(
Or un petit malin
a eu l'idée d'uiliser ce qu'il avait sous la main: c'est à dire
pas grand chose: tout d'abord, son imagination mais il fallait donc
reflechir (pas genial si l'on considère que les premiers jeux Ti
etaient faits pour passer le temps en cour), il eu alors l'idée
en regardant son port I/O de brancher des ecouteurs (cf partie hardware)
ou un haut-parleur et d'utiliser ce port de communication :)
II)L'utilisation
On utilise la librairie sndlib: dans l'en-tête de son programme,
on déclare la librairie et son header par include "sndlib.h".
Puis, on appelle la fonction par jsr sndlib::PlaySong ou jsr sndlib::Beep.
Cette librairie contient deux fonctions:
Beep: qui émet une note dont la fréquence est contenue dans d0 et
la durée dans d1.
Pour la fréquence, il faut se rapporter au tableau situé plus bas;
pour la durée, je vous conseil d'essayer l'exemple et de tester
(la durée peut varir de 0 à 4 294 967 295 car on travail sur un
longword)
exemple: moveq #50,d0
;charge la hauteur de la note
move.l #10000,d1 ;charge la durée de la note
jsr sndlib::Beep ;émet le son
PlaySong: qui joue une suite de notes dont le pointeurest contenu
dans a0.
exemple: lea music(PC),a0 ;charge
le pointeur de la suite de note
jsr sndlib::PlaySong;joue les notes
music dc.l $40000
;le tempo
dc.b 0,2,2,2,4,2,0,2,0,2,2,2,4,2,0,2,4,2,5,2
;les notes: note,durée,note,durée...
dc.b 7,1,4,2,5,2,7,1,7,1,9,4,7,4,5,4,4,4,0,1
;encore
dc.b 255
;fin
Pour enregistrer
les note on utilise le format note,durée, par exemple 0,2,2,2,4,2
veut dire note0,durée2,note2,durée2,note4,durée2.
Notes:
\NOM
|
DO
|
DO#/REb
|
RE
|
RE#/MIb
|
MI
|
FA
|
FA#/SOLb
|
SOL
|
SOL#/LAb
|
LA
|
LA#/SIb
|
SI
|
OCTAVE
|
C
|
C#/Db
|
D
|
D#/Eb
|
E
|
F
|
F#/Gb
|
G
|
G#/Ab
|
A
|
A#/Bb
|
B
|
1
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
2
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
3
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
33
|
34
|
35
|
4
|
36
|
37
|
38
|
39
|
40
|
41
|
42
|
43
|
44
|
45
|
46
|
47
|
5
|
48
|
49
|
50
|
51
|
52
|
53
|
54
|
55
|
56
|
57
|
58
|
59
|
6
|
60
|
61
|
62
|
63
|
64
|
65
|
66
|
67
|
68
|
69
|
70
|
71
|
Le numéro 255 est la fin d'une
suite de notes.Le numero 99 est un arrêt dont la durée vaut les
valeurs du tableau:
NOM
|
PAUSE
|
DEMI-PAUSE
|
SOUPIR
|
DEMI-SOUPIR
|
QUART
DE SOUPIR
|
DUREE
|
1/1
|
1/2
|
1/4
|
1/8
|
1/16
|
VALEUR
|
1
|
2
|
4
|
8
|
16
|
Uns des seuls inconvénient de cette
librairie est qu' elle desactive les interruptions durant l'émission
d'un son: pas question d'avoir une image en grayscale et du son
en Même temps :( (je suis en train d'essayer de contourner le problème:
pas de mail à ce sujet, vous serez prévenu à temps...)
©Tous les programmes presents
sur ce site sont soumis à l'autorisation de leur programmeurs
respectifs pour toutes modifications. La mise en page a necessité
un certain travail, il serait donc plus correct de ne pas la plagier.
|
|