Nagrywanie

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
bilbo
Posty: 12
Rejestracja: 21 kwie 2012 17:50
Wersja środowiska: LabVIEW 8.6

Re: Nagrywanie

Post autor: bilbo »

Już tak robiłem, no i mi nie działało... nie wiem co robię źle
Załączniki
EasyCapture1.jpg
Awatar użytkownika
smiga
Administrator
Posty: 801
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Nagrywanie

Post autor: smiga »

Wrzuć wszystko co masz po prawej stronie pętli (cały zapis) do środka, do jednego Event'a z jednym konkretnym przyciskiem i sprawdź czy po kliknięciu na ten przycisk zapisze dźwięk.
Jeżeli zapisze to rozwiązanie jest proste - tunel wychodzący z pętli przekazuje ostatnią daną, a to widocznie nie jest dźwięk tylko pusty Waweform bo widzę, że tunel wychodzący z Event'a jest ustawiony jako Use Defalt if Unwired. W pętli While musisz wstawić rejestr i pamiętać muzykę graną przez każdy klawisz, a nawet więcej, musisz dodawać kolejne fragmenty z kolejnych iteracji i przetrzymywać w rejestrze... dokładnie tak jak ja to zrobiłem w przykładzie.

Jeżeli nie zadziała to prześlij swój kod (może być bez plików .wav)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
bilbo
Posty: 12
Rejestracja: 21 kwie 2012 17:50
Wersja środowiska: LabVIEW 8.6

Re: Nagrywanie

Post autor: bilbo »

nagrał, ale szum...
Załączniki
v8n.vi
(236.16 KiB) Pobrany 414 razy
Awatar użytkownika
smiga
Administrator
Posty: 801
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Nagrywanie

Post autor: smiga »

6 pętli z czego tylko dwie są powiązane, a aż w trzech są Event'y... masakra jakaś :-) ... architektura programu jest po prostu zła =((
Zauważ, że ten program ma więcej problemów niż tylko zapis do pliku ... nie działa stabilnie.
Jak znajdę chwilkę, dłuższą niestety bo to wymaga posiedzenia :-), to zerknę na całość i coś podpowiem.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
bilbo
Posty: 12
Rejestracja: 21 kwie 2012 17:50
Wersja środowiska: LabVIEW 8.6

Nagrywanie

Post autor: bilbo »

Super, dzięki bardzo za pomoc.
W takim razie z niecierpliwością czekam na podpowiedzi :)
Awatar użytkownika
smiga
Administrator
Posty: 801
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Nagrywanie

Post autor: smiga »

NIestety nie mam za dużo czasu w tym tygodniu ... wyjazdy ... ale załączam szybkie poprawki - działa zapis do pliku przy naciśnięciu P.
Resztę zrób analogicznie wyrzucając zapis poza Case'a i dokładając wszystkie dźwięki oraz trzymając w rejestrze (jak pisałem wcześniej i pokazałem w przykładzie)
Wywaliłem też niepotrzebne pętle.
Załączniki
v8n.vi
v8.6
(224.26 KiB) Pobrany 412 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
bilbo
Posty: 12
Rejestracja: 21 kwie 2012 17:50
Wersja środowiska: LabVIEW 8.6

Re: Nagrywanie

Post autor: bilbo »

Dzięki za pomoc. Kilka pętli było potrzebnych, aby np. niezależnie był podkład dźwiękowy i granie na klawiaturze :D
Nagrywanie działa - potrzebna była konwersja plików dźwiękowych z wav ogg na wav pcm, ALE nagrywa po kolei każdy plik dźwiękowy, czyli 2 sek utwór.
Stworzyłam timer, który liczy czas wciśnięcia guzika. Chcę tą wartość przekazać z pętli while mapującej klawiaturę, do pętli ustawiającej zdarzenia na klawisze, aby odtworzyć utwór przez czas, który pobiorę z timera.
Jak tą wartość przekazać i w jaki sposób zmusić plik wav do grania przez ten wyznaczony czas?
Awatar użytkownika
smiga
Administrator
Posty: 801
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Nagrywanie

Post autor: smiga »

Zmodyfikowany kod poniżej, który ściągnąłem stąd:
http://decibel.ni.com/content/docs/DOC-19164
... odpal podając jakąś ścieżkę do pliku i zobacz jak działa i nagrywa.
Załączniki
pianito.vi
v8.6
(32.26 KiB) Pobrany 404 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
bilbo
Posty: 12
Rejestracja: 21 kwie 2012 17:50
Wersja środowiska: LabVIEW 8.6

Re: Nagrywanie

Post autor: bilbo »

Na podstawie tego programu nie potrafię rozwiązać problemu z nagrywaniem w swoim, używam plików wav i klawiatury do grania. Może jakaś bardziej szczegółowa podpowiedź?
Załączam plik jak to wszystko wygląda. W pętli u góry mierzę czas wciśnięcia klawisza na klawiaturze. Chcę ten czas przekazać do miejsca w którym odtwarzam plik wav.
Załączniki
EasyCapture2.jpg
Awatar użytkownika
smiga
Administrator
Posty: 801
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Nagrywanie

Post autor: smiga »

Niestety mało mam ostatnio czasu na pisanie na forum ... ale tak na szybko, jeżeli chcesz przekazać kolejką także czas wciśnięcia klawisza, to stwórz sobie kolejkę, której typem danych będzie klaster składający się z numeru klawisza (jak aktualnie) + czas jego wciśnięcia.
Powiem szczerze, nie wiem czy nie łatwiej byłoby wyrzucić z pierwszej pętli strukturę Event i zrobić tak jak w ostatnim przesłanym przykładzie bez Event'a - poeksperymentuj.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
ODPOWIEDZ