college-projects/Achizitii-De-Date-Generator...
lucic71 01310c5aa9 small change in sound generator 2020-06-08 14:04:39 +03:00
..
README small change in sound generator 2020-06-08 14:04:39 +03:00
SoundGeneratorAD.vi small change in sound generator 2020-06-08 14:04:39 +03:00

README

Generator de Sunete
-------------------

I. Scopul proiectului
---------------------

Aplicatia dezvoltata in LabView isi propune sa genereze diferite sunete
folosind hardware-ul intern al unui laptop. In plus aceste sunete pot fi
modulate astfel incat sa apara pe canalul stang sau drept al placii de sunet,
sa aiba o anumita frecventa sau o anumita amplitudine.

II. Structura proiectului
------------------------

Legenda: @ variabila
	 # VI

Ca orice proiect dezvoltat in LabView, generatorul de sunete contine un Front
Panel unde utilizatorul poate introduce diferite setari pentru sunetele
produse si un Block Diagram care contine implementarea efectiva a aplicatiei.

Front Panel
-----------

Front Panelul contine un cluster Sound format folosit pentru initializarea
sunetului produs, un slider de volum si diferite Numeric Controls care
descriu:
- pe ce device sa fie reprodus sunetul (pentru utilizarea hardware-ului dintr-un 
laptop se foloseste device-ul cu id-ul 0);
- numarul de samples folosit pentru generarea sunetului pentru amnadoua
canalele;
- numarul de samples folosit pentru generarea sunetului pentru un singur
canal.
In plus mai exista niste slidere de unde se poate seta amplitudinea si
frecventa pentru fiecare canal (stang sau drept).

Pentru oprirea aplicatiei se poate folosi butonul de Stop definit sub Numeric
Controls.

Block Diagram
-------------

Aici se folosesc toate variabilele definite anterior in Front Panel.

Initial aplicatia face configurari asupra device-ului al carui id l-am
specificat in @Output Device ID pentru a putea genera sunete, folosind 
#Sound Output Start. De notat ca se folosesc Continous Samples in intializara
device-ului pentru a putea folosi mai tarziu forme de unda sinusoidale.

Task id-ul generat de VI-ul anterior e pasat lui #Sound Output Start pentru
a incepe generearea efectiva de sunete.

In bucla while se seteaza volumul folosind #Sound Output Set Volume.
Alaturi de semnalele de unda generate de #NI_MABase.lvlib:Sine Waveform
(cele din partea de sus a buclei While) si de task id-ul generate de
#Sound Output Set Volume se transimte sunetul la device folosint #Sount Output
Write.

Bucla se opreste atunci cand apare o eroare sau butonul de Stop e apasat. Dupa
ce se termina bucla, se apeleaza #Sound Output Clear pentru a invalida task
id-urile folosite in bucala si pentru a inchide conexiunea cu device-ul.

Erorile sunt manage-uite de #Simple Error Handler si sunt pasate de la VI la
VI in interiorul buclei while.

III. Concluzii
--------------

Aplicatia incorporeaza toate cunostintele obtinute pana acum la laboratoarele
de AD, reusind sa le incorporeze intr-o aplicatie practica. Cateva dintre 
acestea ar fi:
- folosirea de Clusterelor si a functiilor care le manipuleaza (bundle,
unbundle by name);
- folosirea structurilor de date cum ar fi array-ul folosit pentru impreunarea
semnalelor produse de #NI_MABase.lvlib:Sine Waveform;
- folosirea structurilor repetitive (bucla while)
- etc.