Co się dzieje, gdy drapię (przesuń ścieżkę do przodu)? Czy podniosę rytm i/lub szybkość próbki ?
Pomyśl o tym, co się faktycznie dzieje: Rekord zawiera dane audio. Igła rekordowa odczytuje dane audio z rekordu. Gdy rekord się obróci, zmieni się pozycja odtwarzania. (Jest to bardzo podobne do oglądania ruchów głowicy przez plik audio w cyfrowym edytorze audio.)
Kiedy fizycznie obrócisz płytę szybciej, zwiększasz szybkość odtwarzania. Dźwięk jest zarówno szybszy, jak i wyższy. Zwiększ szybkość odtwarzania o dwa, a dźwięk będzie odtwarzany o oktawę wyżej.
Kiedy fizycznie obrócisz wolniej, zmniejszasz szybkość odtwarzania. Dźwięk jest zarówno wolniejszy, jak i mniejszy. Zmniejsz szybkość odtwarzania o dwa, a dźwięk zostanie odtworzony o oktawę niżej.
Rekordy mogą modyfikować odtwarzanie audio jedynie poprzez przyspieszenie lub spowolnienie fizycznego zapisu, co wpływa zarówno na wysokość, jak i częstotliwość odtwarzania. Niektóre programy audio mogą niezależnie zmieniać wysokość i tempo. Rekordzący gracze nie mogą.
(Get gramofon i eksperymentować, aby usłyszeć, co brzmi jak.)
Jak mogę naśladować to zjawisko z algorytmami przetwarzania dźwięku?
Aby emulować utwór nagrany przez DJ, należy ustawić częstotliwość odtwarzania dźwięku, gdy użytkownik "drapie".
Gdy użytkownik przyspiesza nagrywanie, zwiększ szybkość odtwarzania. Gdy użytkownik spowalnia zapis, spowalnia szybkość odtwarzania.
Gdy użytkownik zatrzyma nagrywanie, całkowicie zatrzymaj odtwarzanie.
Gdy użytkownik obróci nagranie do tyłu, odwróć odtwarzanie.
Nie trzeba zmieniać wysokości dźwięku. Zmiana szybkości odtwarzania zrobi to automatycznie. Wszelkie dalsze korekty pitch będą brzmiały nieprawidłowo.
Nie mam żadnej porady w odniesieniu do bibliotek, ale coś takiego nie jest zbyt trudne do wdrożenia, jeśli nie spiesz się.
P: Jak teraz edytujesz swoje ścieżki audio? Z jakiego oprogramowania korzystasz? W razie potrzeby połączyłem efekty "scratch", "siss" lub "pop". Na przykład: http://free-loops.com/5174-short-record-scratch.html – paulsm4
Używam języka Java, ponieważ rozwijam go jako aplikację dla systemu Android. Nadal nie wiem, czy powinienem użyć domyślnego przetwarzania dźwięku Java lub OpenSL. To zależy, czy emulacja "scratch" oznacza zmianę pitch/rate lub innych funkcji, których Java nie ma. EDYCJA: moja aplikacja pozwoli użytkownikowi kontrolować utwór jak prawdziwy winyl. Pozwalając mu przesuwać go w przód/w tył podczas gry i uzyskać efekt "zadrapania" – user1118094
Może to być nieco trudne, ponieważ Android nie pozwoli ci uzyskać bezpośredniego dostępu do próbek audio (uwaga: nie jestem programistą Androida, to jest to, co słyszałem, może się mylić o to). Powiedział, że konkretny efekt, którego szukasz, nazywa się "Varispeed", co powinno dać ci wystarczającą ilość informacji, by rozpocząć badanie. Prawdopodobnie będziesz chciał dodać dodatkowy hałas, aby dokończyć efekt. – admsyn