implementacja wielokanałowego rejestratora dźwięku

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
SnoopySnakiSnak
Posty: 3
Rejestracja: 19 sty 2010 13:30
Wersja środowiska: LabVIEW 2009

implementacja wielokanałowego rejestratora dźwięku

Post autor: SnoopySnakiSnak »

Witam
Próbuję stworzyć program który będzie rejestrował sygnał z kilku kart dźwiękowych w tym samym czasie. Po stworzeniu programu który powinien spełniać swoje zadanie okazało się, że pojawia się błąd nr 4823 o treści:
'LabVIEW: (Hex 0x12D7) The desired operation cannot be performed without an active task. Please ensure that a task is active and try again. An input task may stop running if the input buffer overflows. This occurrs when the data is not read fast enough.'
Używam zintegrowanej karty dźwiekowej na moim PC oraz karty dźwiękowej USB. Zastanawiam się czy taka aplikacja może w ogóle działać opierając się o zwykłe karty dźwiękowe.
Mam nadzieję, że umieściłem ten wątek w dobrym dziale. Z góry dziękuje za wszelkie informację na temat problemu lub możliwości jego rozwiązania.
Załączniki
2karty.vi
plik VI
(59.41 KiB) Pobrany 396 razy
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: implementacja wielokanałowego rejestratora dźwięku

Post autor: jogurt_owocowy »

Cześć,
  1. Na wyjściach error out klocków Acquire Sound utwórz kontrolki wyjściowe (Create -> Indicator) i napisz, w której funkcji pojawia się błąd.
  2. Czy po dwukrotnym kliknięciu na Acquire Sound z combo boxa Device możesz wybrać obydwie karty?
SnoopySnakiSnak
Posty: 3
Rejestracja: 19 sty 2010 13:30
Wersja środowiska: LabVIEW 2009

implementacja wielokanałowego rejestratora dźwięku

Post autor: SnoopySnakiSnak »

Tak da się wybierać karty z listy.

Błąd pojawia się zwykle przy Acquire Sound3 lecz zdarza się również przy Acquire Sound2, po chwili znika i następuje pomiar, zdarza się to kilkakrotnie, po kilku razach pomiar stabilizuje się na jakiś czas lecz w konsekwencji sytuacja się powtarza...

dzięki za odp ;)
Awatar użytkownika
spec.kolombo
Posty: 126
Rejestracja: 20 sie 2008 06:33
Wersja środowiska: LabVIEW 2009
Lokalizacja: Gdynia
Kontakt:

implementacja wielokanałowego rejestratora dźwięku

Post autor: spec.kolombo »

Oczywiście w polu "numeric 2" masz wpisaną wartość 1?
A próbowałeś zrobić, żeby obie te operacje pobierania danych z kart dźwiękowych następowały po sobie, a nie jednocześnie? - np. poprzez podpięcie "error out" acquire sound3 do "error in" acquire sound 2?
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: implementacja wielokanałowego rejestratora dźwięku

Post autor: jogurt_owocowy »

Najprawdopodobniej problemem jest to, że dane z obu kart odczytujesz w jednej pętli. Karty nie są ze sobą nijak zsynchronizowane i, podczas gdy jedna z nich wciąż czeka na napełnienie bufora wejściowego próbkami sygnału z mikrofonu, w drugiej bufor już się przepełnia.

Zrób drugą pętlę while, przenieś do niej funkcję, która ma odczytywać dane z drugiej karty i daj znać czy to pomogło.

PS. Poza tym, jeśli chcesz odczytywać dźwięk w sposób ciągły, to lepszym rozwiązaniem (niż użycie Acquire Sound) byłoby skorzystanie z pozostałych funkcji z palety Sound -> Input. W przykładach dołączonych do LV (Help -> Find Examples) znajdziesz viaja o nazwie Continuous Sound Input, który pokazuje jak ich używać.
SnoopySnakiSnak
Posty: 3
Rejestracja: 19 sty 2010 13:30
Wersja środowiska: LabVIEW 2009

implementacja wielokanałowego rejestratora dźwięku

Post autor: SnoopySnakiSnak »

Tak, jest tam wpisana wartość 1. Rzecz w tym, że idea jest taka aby ten proces był równoległy, potrzebny jest jednoczesny odczyt z obu kart...

Spróbuję zrobić tą drugą pętle i napisze co z tego wychodzi. Jeśli chodzi o continous sound input to już z niego korzystałem, był nawet rozbudowywany do takiej postaci aby odczytywał dane z dwóch kart jednak pojawiał się ten sam błąd chociaż to też było realizowane w jednej pętli.
Awatar użytkownika
spec.kolombo
Posty: 126
Rejestracja: 20 sie 2008 06:33
Wersja środowiska: LabVIEW 2009
Lokalizacja: Gdynia
Kontakt:

implementacja wielokanałowego rejestratora dźwięku

Post autor: spec.kolombo »

Chodziło mi o to, żeby sprawdzić czy w takiej "kolejce" będzie działać - wtedy dałoby to może jakąś informację o źródle problemu.
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
cass182
Posty: 4
Rejestracja: 14 lut 2012 13:20
Wersja środowiska: LabVIEW 2009

Re: implementacja wielokanałowego rejestratora dźwięku

Post autor: cass182 »

Przyłaczam sie do pytania. Mam takie samo zadanie i rowzniez wywala mi taki sam blad w takim zestawieniu.

Natomiast docelowym zadaniem u mnie jest uzycie 2 takich samych kart dzwiekowych na USB. LabView wykrywa mi tylko jedna z nich + ewentualnie karte wbudowana w komputerze.
ODPOWIEDZ