Driver Octavia :
---------------


Appel du driver:

10 LET Z$="SND:0"
20 Rand USR 16530
ou
20 LET v=USR 16530 (v=1)
ou
20 IF usr 16530 then goto xxx (usr 16530=1)
ou
20 goto usr 16530 (GOTO 1)

Tempo:
Z$="SND:0" : De 0 à 9.(rapide vers lent)

Nota: Reste en mémoire.

Valeurs prédefinies par défaut:
   16524  /  16523
T0= 01:1     00    (constante adresse 16903,1)
T1= 03:3     00    (constante adresse 16912,3)
T2= 06:6     00    (constante adresse 16921,6)
T3= 0C:12    00    (constante adresse 16930,12)
T4= 18:24    00    (constante adresse 16939,24)
T5= 20:32    00    (constante adresse 16948,32)
T6= 30:48    00    (constante adresse 16957,48)
T7= 3C:60    00    (constante adresse 16966,60)
T8= 48:72    00    (constante adresse 16975,72)
T9= 53:84    00    (constante adresse 16984,84)

Poke 16524,18
Nota: Reste en mémoire si z$="snd:1" ou z$="snd:ABCD4EF" n'est appelé.


1) Octaves:
Z$="SND:O1" : De O1 à O5.

Nota: Reste en mémoire.

2) Notes:
Z$="SND:ABCDEFG" : Joue la note à l'octave définie.
Z$="SND:A+B+D+E+F+" : Joue la note à l'octave définie (dièses seulement).

La Note C et G n'ont pas de dièse.

3) Pause:
Z$="SND:5O1AO2BO3PPCO4PDO1PEO2PF03G"

4) Sur plusieurs octaves:
Z$="SND:5O1AO2BO3CO4DO1EO2F03G" : Joue la note à l'octave définie.

5) Avec des vitesses différantes.
Z$="SND:5ABCDEFG9ABCDEFG"

6) Boucler une ligne Z$:
Z$="SND:ABCDEFGL"



Fiche technique de la carte:
---------------------------

Fréquences de la fiche musical 4 huitains - 50 notes


PAUSE = 1111

O  \ O+1\ O+2
A  \ C  \ E+ = 0111
A+ \ D  \ F  = 1011
B  \ D+ \ F+ = 1101
B+ \ E  \ G  = 1110
             


fréquence =1.44/(r1+r2)C
RC= 1.44/f

Octave 1 = 0x \ 1x \ 2x 00.00.00.xx facteur RC:x1
Octave 2 = 4x \ 5x \ 6x 00.00.xx.00 facteur RC:x2 
Octave 3 = 8x \ 9x \ Ax 00.xx.00.00 facteur RC:x4
Octave 4 = Cx \ Dx \ Ex xx.00.00.00 facteur RC:x8
Octave 5 = Ex           xx.00.00.00




        Note    Fréquence      Code Note        Code
              Standard (Hz)  (POKE 9999,x)   Hexadecimal

	PAUSA	  0     	15              0F

1	 DO     65,406  	7       	07 - Octave #1 : A
2	DO#     69,296          11      	0B - Octave #1 : A+
3	 RE     73,416          13      	0D - Octave #1 : B
4	 RE#	77,782  	14      	0E - Octave #1 : B+
5	 MI	82,407  	23      	17 - Octave #1 : C
6	 FA	87,307  	27      	1B - Octave #1 : D
7	FA#	92,499  	29      	1D - Octave #1 : D+
8	 SOL	97,999  	30      	1E - Octave #1 : E
9	SOL#	103,83  	39      	27 - Octave #1 : E+
10	 LA	110,00  	43      	2B - Octave #1 : F
11	LA#	116,54  	45      	2D - Octave #1 : F+
12	 SI	123,47  	46      	2E - Octave #1 : G

13	 DO	130,81  	71      	47 - Octave #2 : A
14	DO#	138,59  	75      	4B - Octave #2 : A+
15	 RE	146,83  	77		4D - Octave #2 : B
16	RE#	155,56  	78		4E - Octave #2 : B+
17	 MI	164,81  	87		57 - Octave #2 : C
18	 FA	174,61  	91		5B - Octave #2 : D
19	FA#	185,00  	93		5D - Octave #2 : D+
20	SOL	196,00  	94		5E - Octave #2 : E
21	SOL#	207,65  	103		67 - Octave #2 : E+
22	 LA	220,00  	107		6B - Octave #2 : F
23	LA#	223,08  	109		6D - Octave #2 : F+
24	 SI	246,94  	110		6E - Octave #2 : G

25	DO	261,63  	135		87 - Octave #3 : A
26	DO#	277,18  	139		8B - Octave #3 : A+
27	 RE	293,66  	141		8D - Octave #3 : B
28	RE#	311,13  	142		8E - Octave #3 : B+
29	 MI	329,63  	151		97 - Octave #3 : C
30	 FA	349,23  	155		9B - Octave #3 : D
31	FA#	369,99		157		9D - Octave #3 : D+
32	SOL	392,00		158		9E - Octave #3 : E
33	SOL#	415,30		167		A7 - Octave #3 : E+
34	 LA	440,00		171		AB - Octave #3 : F
35	LA#	466,16		173		AD - Octave #3 : F+
36	 SI	493,88		174		AE - Octave #3 : G

37	 DO	523,25		199		C7 - Octave #4 : A
38	DO#	554,37		203		CB - Octave #4 : A+
39	 RE	587,33		205		CD - Octave #4 : B
40	RE#	622,25		206		CE - Octave #4 : B+
41	 MI	659,26		215		D7 - Octave #4 : C
42	 FA	698,46		219		DB - Octave #4 : D
43	FA#	739,99		221		DD - Octave #4 : D+
44	SOL	783,99		222		DE - Octave #4 : E
45	SOL#	830,61		231		E7 - Octave #4 : E+
46	 LA	880,00		235		EB - Octave #4 : F
47	LA#	932,33		237		ED - Octave #4 : F+
48	  SI	987,77		238		EE - Octave #4 : G
49	 DO	1046,0		229		E5 - Octave #5 : A
50	DO#	1108,7		236		EC - Octave #5 : A+

51                              240             F0 -

Par exemple: avec POKE 9999,43 la fiche engendre un son de 110 hz (la
note LA), pour interrompre ce son tu dois utiliser POKE 9999,15.

Il n'est pas nécessaire d'utiliser le commandement POKE 9999,15 pour
passer de note en note, tu le peux faire directement.
Par exemple:
10 POKE 9999,158     ;il engendre un SOL de 392 hz
20 POKE 9999,235     ;il passe du SOL à un LA de 440 hz
30 POKE 9999,229     ;il passe du LA à un DO de 1046 hz
40 POKE 9999,15      ;Il éteint l'émission de sons

Tu peux régler la durée de chaque note en utilisant le commandement
PAUSE. Ce petit programme engendre un FA# et puis un SOL, les deux de la
durée de 1 seconde:
10 POKE 9999,93  ;il engendre un FA# de 185 hz
20 PAUSE 50      ;pause (1 sec.) le FA# il est encore actif
25 POKE 9999,94  ;il passe du FA# à un SOL de 196 hz
30 PAUSE 50      ;pause (1 sec.) le SOL il est encore actif
40 POKE 9999,15  ;Il éteint l'émission de sons

Avec les commandements "SLOW" et "FAST" il change la vitesse d'exécution
des sons. Clairement en FAST la succession des sons est plus rapide
qu'en SLOW, exactement comme le ZX81 quand il passe par SLOW à FAST.
J'espère d'avoir été assez clair...

> Peux-tu enregistrer une music (queques notes) avec ton micro pour
> l'échantillonage sonnore?

Oui, mais pour le moment tu devras te contenter de mes exemples.
J'ai démonté la fiche sonore pour réaliser un PCB plus petit (il doit
entrer dans le ZX...) il me sert un peu de temps pour la
"miniaturisation". À peine prête, je t'envoie les champions sonores
(.wav) et les listages des sons (.p).
Une dernière chose, j'ai fait quelques preuves sur ton émulateur avec le
commandement "PAUSE". Avec PAUSE 50 un ZX81 réel fait une pause
d'environ 1 seconde, pendant que avec PAUSES 500 la pause est d'environ
10 secondes. La même chose succède aussi sur les émulateurs Eightyone et
VB81, indépendamment da la vitesse de l'ordinateur utilisée pour les
exécuter. Sur ton émulateur par contre avec PAUSE 50 avons 4 secondes de
pause, pendant que avec PAUSE 500 avons plus de 35 secondes!!! Tout ceci
sur un Celeron 2,4 Ghz. Sur un Pentium 233 MMX les résultats sont encore
plus catastrophiques, avec PAUSE 50 avons plus de 25 secondes de
pause!!! Pendant que avec PAUSE 500 j'ai perdu le compte...
J'ai trouvé un autre insecte?

XavSnap.

