Site

. Les News
. Le Forum
. L'équipe et les projets
. Les Tutoriaux
. IRC
. La boite à outils
. Les routines et algos indispensables
. Les liens


Les News de TI-FR



 



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#/Eb
F#/Gb
G#/Ab
A#/Bb
 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.