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 mmoire.

Valeurs prdefinies par dfaut:
   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 mmoire si z$="snd:1" ou z$="snd:ABCD4EF" n'est appel.


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

Nota: Reste en mmoire.

2) Notes:
Z$="SND:ABCDEFG" : Joue la note  l'octave dfinie.
Z$="SND:A+B+D+E+F+" : Joue la note  l'octave dfinie (dises seulement).

La Note C et G n'ont pas de dise.

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

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

5) Avec des vitesses diffrantes.
Z$="SND:5ABCDEFG9ABCDEFG"

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



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

Frquences 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
             


frquence =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    Frquence      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 ncessaire 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 rgler la dure de chaque note en utilisant le commandement
PAUSE. Ce petit programme engendre un FA# et puis un SOL, les deux de la
dure 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'excution
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'espre 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 dmont la fiche sonore pour raliser un PCB plus petit (il doit
entrer dans le ZX...) il me sert un peu de temps pour la
"miniaturisation".  peine prte, je t'envoie les champions sonores
(.wav) et les listages des sons (.p).
Une dernire chose, j'ai fait quelques preuves sur ton mulateur avec le
commandement "PAUSE". Avec PAUSE 50 un ZX81 rel fait une pause
d'environ 1 seconde, pendant que avec PAUSES 500 la pause est d'environ
10 secondes. La mme chose succde aussi sur les mulateurs Eightyone et
VB81, indpendamment da la vitesse de l'ordinateur utilise pour les
excuter. 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 rsultats 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.

