Hej,
Przede wszystkim źle używasz funkcji
Insert Into Array. W obydwu przykładach dopisujesz za jej pomocą na końcu tablicy wejściowej stałą
3 (liczbę obiegów pęli for).
Ale okazuje się, że są problemy właśnie z tą tablicą wejściową.
Jeśli chodzi o przykład 1, to nie wiedzieć dlaczego przy następujących ustawieniach funkcji
Acquire Sound:
Sample rate (Hz) = 22050 i
Duration (s) = 1 na wyjściu dostajemy 22048 próbek.
Po dodaniu wartości
3 przez wspomnianą funkcję
Insert Into Array będzie 22049. Co ciekawe, przy innych ustawieniach częstotliwości próbkowania (np. 44100, 16000) wszystko jest ok i na wyjściu dostajemy, zgodnie z oczekiwaniami, odpowiednio, 44100
i 16000 próbek.
Jakiej wersji LV używasz? Pytam, bo - co jeszcze ciekawsze - po odpaleniu tego samego kodu w 8.6, wartość
Total Samples wynosi (przy różnych częstotliwościach próbkowania):
Kod: Zaznacz cały
Sample rate | Total Samples ------------+--------------
8192 | 6144
16000 | 12000
22050 | 16536
44100 | 33075
To dopiero ciekawa zagadka. I dobry argument za tym, żeby nie używać upierdliwych Express VIajów ]
Jeśli chodzi o przykład 2, to tu zagadka ma rozwiązanie. Na wyjściu
Sound Input Read dostajesz (poprawnie) tyle próbek, ile sobie zamówiłeś (22050) + dodatkowa doklejona za pomocą
Insert Into Array, co daje w sumie 22051.
Pozdrawiam