2 Audio Engine
FT800 može da reprodukuje različite audio efekte i datoteke. Izlaz je obezbeđen kao PWM
signal na jednom pinu, AUDIO_L. Postoje dva audio izvora, Sound Synthesizer i
Reprodukcija zvuka.
-2.1 Sound Synthesizer
Zvučni efekti su unapred učitani u biblioteci volumena ROM-a i ne zahtevaju upotrebu bilo kojeg modela FT800
RAM prostora. Većina zvučnih povratnih informacija korisnika može se pružiti kroz ove efekte, kao što je klik
kada se pritisne dugme na ekranu, DTMF tonovi za telekom ili upozorenje alarmne ploče. Većina
efekti će se jednom igrati i zaustaviti. Drugi će igrati kontinuirano. Potpuna lista tonova i
karakteristike su prikazane ispod:
Vrednost | Efekat | Kontinuirano | Parcela prilagodite | Vrednost | Efekat | Kontinuirano | Parcela prilagodite |
00h | Tišina | Y | N | 32h | DTMF 2 | Y | N |
01h | kvadratni talas | Y | Y | 33h | DTMF 3 | Y | N |
02h | sinusni talas | Y | Y | 34h | DTMF 4 | Y | N |
03h | sawtooth wave | Y | Y | 35h | DTMF 5 | Y | N |
04h | trougao talas | Y | Y | 36h | DTMF 6 | Y | N |
05h | Beeping | Y | Y | 37h | DTMF 7 | Y | N |
06h | Alarm | Y | Y | 38h | DTMF 8 | Y | N |
07h | Warble | Y | Y | 39h | DTMF 9 | Y | N |
08h | Carousel | Y | Y | 40h | harfa | N | Y |
10h | 1 kratak pip | N | Y | 41h | ksilofon | N | Y |
11h | 2 kratka pipa | N | Y | 42h | tuba | N | Y |
12h | 3 kratke pipi | N | Y | 43h | glockenspiel | N | Y |
13h | 4 kratke pips | N | Y | 44h | organ | N | Y |
14h | 5 kratkih pipa | N | Y | 45h | truba | N | Y |
15h | 6 kratkih pipa | N | Y | 46h | klavir | N | Y |
16h | 7 kratkih pipa | N | Y | 47h | chimes | N | Y |
17h | 8 kratkih pipa | N | Y | 48h | muzicka kutija | N | Y |
18h | 9 kratkih pipa | N | Y | 49h | zvono | N | Y |
19h | 10 kratkih pipa | N | Y | 50h | kliknite | N | N |
1Ah | 11 kratkih pipa | N | Y | 51h | prekidač | N | N |
1Bh | 12 kratkih pipa | N | Y | 52h | cowbell | N | N |
1Ch | 13 kratkih pipova | N | Y | 53h | izrez | N | N |
1Dh | 14 kratkih pipa | N | Y | 54h | hihat | N | N |
1Eh | 15 kratkih pipa | N | Y | 55h | kickdrum | N | N |
1Fh | 16 kratkih pipa | N | Y | 56h | pop | N | N |
23h | DTMF # | Y | N | 57h | klak | N | N |
2Ch | DTMF * | Y | N | 58h | chack | N | N |
30h | DTMF 0 | Y | N | 60h | mute | N | N |
31h | DTMF 1 | Y | N | 61h | unmute | N | N |
Mnogi od efekata omogućavaju kontrolu nagiba (MIDI napomena), tako da se mogu generirati različiti tonovi. Koriste se standardne MIDI napomene:
MIDI napomena | ANSI napomena | Frekvencija (Hz) | MIDI napomena | ANSI napomena | Frekvencija (Hz) |
21 | A0 | 27.5 | 65 | F4 | 349.2 |
22 | A # 0 | 29.1 | 66 | F # 4 | 370.0 |
23 | B0 | 30.9 | 67 | G4 | 392.0 |
24 | C1 | 32.7 | 68 | G # 4 | 415.3 |
25 | C # 1 | 34.6 | 69 | A4 | 440.0 |
26 | D1 | 36.7 | 70 | A # 4 | 466.2 |
27 | D # 1 | 38.9 | 71 | B4 | 493.9 |
28 | E1 | 41.2 | 72 | C5 | 523.3 |
29 | F1 | 43.7 | 73 | C # 5 | 554.4 |
30 | F # 1 | 46.2 | 74 | D5 | 587.3 |
31 | G1 | 49.0 | 75 | D # 5 | 622.3 |
32 | G # 1 | 51.9 | 76 | E5 | 659.3 |
33 | A1 | 55.0 | 77 | F5 | 698.5 |
34 | # 1 | 58.3 | 78 | F # 5 | 740.0 |
35 | B1 | 61.7 | 79 | G5 | 784.0 |
36 | C2 | 65.4 | 80 | G # 5 | 830.6 |
37 | C # 2 | 69.3 | 81 | A5 | 880.0 |
38 | D2 | 73.4 | 82 | # 5 | 932.3 |
39 | D # 2 | 77.8 | 83 | B5 | 987.8 |
40 | E2 | 82.4 | 84 | C6 | 1046.5 |
41 | F2 | 87.3 | 85 | C # 6 | 1108.7 |
42 | F # 2 | 92.5 | 86 | D6 | 1174.7 |
43 | G2 | 98.0 | 87 | D # 6 | 1244.5 |
44 | G # 2 | 103.8 | 88 | E6 | 1318.5 |
45 | A2 | 110.0 | 89 | F6 | 1396.9 |
46 | A # 2 | 116.5 | 90 | F # 6 | 1480.0 |
47 | B2 | 123.5 | 91 | G6 | 1568.0 |
48 | C3 | 130.8 | 92 | G # 6 | 1661.2 |
49 | C # 3 | 138.6 | 93 | A6 | 1760.0 |
50 | D3 | 146.8 | 94 | # 6 | 1864.7 |
51 | D # 3 | 155.6 | 95 | B6 | 1975.5 |
52 | E3 | 164.8 | 96 | C7 | 2093.0 |
53 | F3 | 174.6 | 97 | C # 7 | 2217.5 |
54 | F # 3 | 185.0 | 98 | D7 | 2349.3 |
55 | G3 | 196.0 | 99 | D # 7 | 2489.0 |
56 | G # 3 | 207.7 | 100 | E7 | 2637.0 |
57 | A3 | 220.0 | 101 | F7 | 2793.8 |
58 | A # 3 | 233.1 | 102 | F # 7 | 2960.0 |
59 | B3 | 246.9 | 103 | G7 | 3136.0 |
60 | C4 | 261.6 | 104 | G # 7 | 3322.4 |
61 | C # 4 | 277.2 | 105 | A7 | 3520.0 |
62 | D4 | 293.7 | 106 | # 7 | 3729.3 |
63 | D # 4 | 311.1 | 107 | B7 | 3951.1 |
64 | E4 | 329.6 | 108 | C8 | 4186.0 |
Sintezu zvuka kontrolišu sledeći registri:
REG_SOUND
o Bitovi 31-16 = Ne zanima me
o Bitovi 15-8 = MIDI napomena (pitch)
o Bitovi 7-0 Efekat
REG_PLAY
o Bitovi 31-1 = Ne zanima me
o Bit0 = Pokreni Play / Play Status
Napišite = 1 da započnete reprodukciju selekcije u REG_SOUND
Read = 1 označava da se efekat trenutno reprodukuje
Read = 0 označava da je efekat završen
REG_VOL_SOUND
o Bitovi 31-8 = ne zanimaju
o Bitovi 7-0 = zapremina izlaza
Čita i piše na FT800 memorijski prostor se obrađuje kroz "mali endian" format, gdje je
prvi bajt će biti najmanje značajan. Na primer, smatrajte klavirski efekat (0x46) koji igra A4
(0x45). Podaci na SPI ili I2C interfejsu bi se sastojali od sekvence memorije host memorije
sledeće podatke, po narudžbini:
0x90 = Host Memorija Napiši transfer (0x80) plus prvi bajt adrese registra (0x10)
0x24 = drugi bajt adrese registra
0x84 = treći bajt adrese registra
0x46 = efekt klavira
0x45 = note / pitch = A4 (440Hz)
0x00 = ne zanima me, opciono
0x00 = ne zanima me, opciono
Imajte na umu da poslednja dva bajta ne moraju biti napisana, tako da 16-bitni Host Memory Write zapravo može
zadovoljavaju vrijednosti potrebne u registru. Dalje objašnjenje Host Memory Write, Host
Memorija čitanja i host memorije Komandni prenos podataka se nalazi u AN_240 FT800
Pripremite se.
-2.2 Audio datoteke
Možda postoje aplikacije u kojima je neophodno nešto više od jednostavne sinteze tonova. Za
primjer glasovnog poziva ili drugog oglasa možda je neophodan da bi se korisniku mogao specificirati
instrukcije. FT800 podržava reprodukciju datoteka u sljedećim mono-kanalnim formama:
8-bitni potpisani PCM - nekomprimovani sirovi zvuk
8-bitni μLAW - nelinearni komprimovani zvuk
4-bita IMA-ADPCM - dodatni kompresovani μLAW gdje svaki bajt sadrži dva 4-bitna
uzorci
FT800 poseduje 256KB RAM-a (RAM_G) za držanje video objekata (slika i fontova) i
audio objekti (snimljeni zvuci). Prostor mora upravljati MCU domaćin tako da
informacije se ne prepisuju sve dok ih više nije potrebno.
Audio datoteke se učitavaju kroz transakciju Host Memory Write na raspoloživi prostor i su
potrebno je poravnati 8 bajta (64-bitni).
Kada se audio datoteka učita u RAM_G memoriju, reprodukcija se kontroliše slijedećim
registri:
REG_PLAYBACK_START
o Bitovi 31-20 = ne zanimaju
o Bitovi 19-0 = 20-bitna početna adresa datoteke unutar RAM_G
REG_PLAYBACK_LENGTH
o Bitovi 31-20 = ne zanimaju
o Bitove 19-0 = 20-bitna dužina datoteke unutar RAM_G
REG_PLAYBACK_FREQ
o Bitovi 31-16 = ne zanimaju
o Bitovi 15-0 = 16-bitna Frekvencija frekvencije za uzorkovanje reprodukcije, u Hz
REG_PLAYBACK_FORMAT
o Bitovi 31-2 = ne zanimaju
o Bitovi 1-0 = 2-bitni format reprodukcije
0 = Linearni ili nekomprimirani PCM
1 = μLaw
2 = ADPCM
3 = nedefinisan
REG_PLAYBACK_LOOP
o Bitovi 31-1 = ne zanimaju
o Bit 0 = 1-bitni stil reprodukcije
0 = igra jednom
1 = reprodukcija kontinuirano
REG_PLAYBACK_PLAY
o Bitovi 31-1 = ne zanimaju
o Bit 0 = Pokreni Play / Play Status
Napišite = 0 ili 1 da biste započeli reprodukciju selekcije u REG_SOUND
Read = 1 označava da se datoteka trenutno reprodukuje
Read = 0 označava da je datoteka završena
REG_PLAYBACK_READPTR
o Bitovi 31-20 = ne zanimaju
o Bitovi 19-0 = 20-bitni pokazivač trenutne lokacije reprodukcije
REG_VOL_PB
o Bitovi 31-8 = ne zanimaju
o Bitovi 7-0 = zapremina izlaza
-2.2.1 Utility za konverziju
FTDI obezbeđuju uslužni program za konverziju audio datoteka pod nazivom "AUD_CVT" kako bi uzeli zajednički format datoteke i
kreirajte tri vrste datoteka koje podržava FT800. Veza sa ovim korisnikom je navedena u
Odeljak "Dodatak A - Reference" ovog dokumenta.
Za izvornu datoteku pretpostavlja se da je sirova (nekomprimirana) 16bit PCM, mono WAV datoteka. Takva datoteka može
biti kreirani pomoću najčešće dostupnog programa za uređivanje zvuka, kao što je Audacity. Jednom
izvorna datoteka je dostupna, jednostavno pokrenite uslužni program u komandnoj liniji:
aud_cvt -i inputfilename -f
gdje je "format" = 0 za 8-bitni potpisani PCM
= 1 za 8-bitni μLaw
= 2 za 4-bitni IMA ADPCM
Biće kreiran folder sa rezultirajućim datotekama. Ove datoteke se zatim mogu koristiti za učitavanje
RAM_G memorijska oblast FT800.
Utility za konverziju audio će izaći neobrađenu i komprimovanu datoteku za svaki odabrani format. To
može biti korisno na host MCU-u za čuvanje komprimiranih datoteka, a zatim ih proširiti u
RAM_G bafer kada je potrebno. Pogledajte odeljak 4 za detalje.