@Grzegorz Kraszewski,
post #37
Grzegorz Kraszewski napisał(a):
> E30 musi zostać tak, jak jest.
>
> I został. Odtwarzanie sampla od tyłu już działa.
Dzięki, w imieniu swoim i innych fanów tej komendy. :)
> Dodatkowo uściśliłem zachowanie tej komendy w przypadku
> instrumentów z pętlami: (...)
Super, dobra robota, tak właśnie wyobrażałem sobie poprawne działanie tej komendy. Ale jest jedna bardzo ważna pułapka tej modyfikacji! Piszę o niej niżej - akapity o interpretacji pętli przy cofaniu sampla).
Uważam, że należałoby stworzyć osobne E30 i E31, czyli odpowiednio "stare E30" i "nowe E30". Uzasadnienie niżej.
> Jeżeli jednocześnie zostanie użyty efekt E30 i sample offset,
> to offset jest liczony od początku sampla (tak jak normalnie),
> ale kierunek odtwarzania jest wstecz.
To rozumiem. Sam korzystałem z takiego połączenia, symulując cofanie płyty gramofonowej poprzez E30 sekwencji, a że potrzebowałem to zrobić od jej konkretnego momentu, to użyłem do pary 9xx. W DBPro2.21 działało to właśnie tak, jak piszesz.
> Jeżeli offset ustawiony jest przed początkiem pętli, pętla od razu skacze > na koniec i idzie do tyłu.
Przepraszam, ale to zdanie jest dla mnie niejasne. Proszę o wyjaśnienie. Odtwarzania sampla startuje od końca pętli, ignorując offset? Pętla idzie do tyłu siebie samej?
Wyobrażam to sobie tak, że odtwarzanie sampla startuje od offsetu, idzie w tył, a dopiero jak dojdzie do początku sampla, to jeśli tenże ma pętlę, to odtwarzanie sampla leci dalej od końca pętli do jej początku i dalej forward albo ping-pong, zależnie od jej typu.
Stwarza to oczywiście pułapkę, że o ile niezapętlony fragment sampla pasuje do fragmentu zapętlonego, to początek sampla wcale nie musi pasować do fragmentu zapętlonego. Weźmy na ten przykład crash (talerz) - mocne uderzenie na początku i długie, cichsze wybrzmiewanie. Jeśli autor zapętli wybrzmiewanie crasha, czyli jego "ogon", aby potem ręcznie regulować wybrzmiewanie jego ogona w utworze, to taki instrument jest trudny do odtworzenia wstecz wraz z pętlą. Jest to klasyczny przykład, kiedy przy odwarzaniu wstecznym zapętlenie nijak nie lepi się z początkiem sampla, więc taki przeskok odtwarzania, choć logiczny, może okazać się bublem pod względem praktycznym.
Tego problemu nie ma w samplach zapętlonych w całości (start i end pętli = start i end sampla), ponieważ tam koniec skleja się z początkiem niezależnie od kierunku odtwarzania.
Albo trzeba rozróżnić zapętlenia sampli na całkowite i fragmentaryczne, albo po prostu stworzyć nową komendę, E31, która będzie interpretowała pętle, oraz zostawić starą E30 nietkniętą, która ignoruje pętle, tak, aby użytkownik sam zadecydował, czy cofanie ma być zwykłe czy z uwzględnieniem pętli. Albowiem to, że zapętliłem ogon crasha, wcale nie musi oznaczać, że cofając go w przejściu pomiędzy frazami chcę aby cofanie interpretowało pętlę. Przeciwnie! Nie życzyłbym sobie, aby za jednokrotnym "wjazdem" cofanego crasha nagle zaczęło mi wybrzmiewać jego zapętlone ogonisko. ;)
Mam nadzieje, że opisałem to dość obrazowo i zrozumiale i uzasadniłem wystarczająco.
> E40 i E5x jeszcze nie są zaimplementowane. Wszystko wskazuje na
> to, że będą działać jak w DBPro 2 - czyli E40 wyłącza
> instrument na ścieżce do momentu następnej nuty, E50 wyłącza
> ścieżkę do czasu włączenia jej przez E51.
Super. Cieszy mnie to.
> E7x to oczywiście "zgrubny" sample offset, jedna jednostka
> przesuwa o 65536 sampli, co się ładnie dodaje z 9xx. Co ciekawe
> w DBPro 2 ta komenda nie zawsze działa jak należy.
Mi tam chyba zawsze działała jak należy, a przynajmniej nie pamiętam błędów, choć korzystałem z niej dość często jak na tego typu komendę. Używałem DBPro2.21.
> E8x robi to samo co 8xx tylko mniej dokładnie. Została bez
> zmian.
Czy ona nie ma przypadkiem jakiegoś zastosowania przy eksporcie lub imporcie XM? FT2 AFAIR ma też dwie kolumny komend, ale tylko jedna jest normalna, a druga jest ograniczona, tylko do głośności i nie wiem czy nie do panningu. Ale mogę się mylić, bo nie interesował mnie nigdy FT2.
> Na dziś player obsługuje już prawie wszystkie komendy. Trochę
> jeszcze zostało:
>
> 7xx - tremolo, DBPro 2 jej w ogóle nie ma, ale implementacja
> jest bardzo prosta, więc czemu nie?
> 9xx - czeka na implementację
9xx mogę chętnie przetestować.
Nie raz bowiem bawiłem się w timestreetching lub "głos robota" właśnie za pomocą ciągu 9xx o rosnącej wartości, a często też dodając E9x, czyli szybkie powtórzenie nuty w jednej pozycji nutowej. Wartość E9x była ściśle powiązana z ilością ticków na pozycję nutową.
> E0x - amigowy filtr, zrobienie jego emulacji nie będzie
> specjalnie trudne (filtr IIR Butterwortha drugiego rzędu z
> częstotliwością odcięcia 7 kHz), co prawda trochę to będzie
> kosztowało mocy CPU (2 mnożenia i 2 dodawania na każdą próbkę
> downmixa). Oczywiście jak wykryję Paulę, to będę po prostu
> włączał filtr sprzętowy.
Słusznie. Zgadzam się. Niemniej, moim zdaniem to nie jest pilna sprawa. Może kilka modków widziałem, co z filtra korzystały. Ja tylko raz dawno użyłem go dla żartu, aby zasymulować, że Amiga się zawiesiła i zaraz się niby zresetuje.
> E4x - chwilowe wyłączenie ścieżki
> E5x - wyłączenie/włączenie ścieżki
> E7x - czeka na implementację
Te również mogę przetestować.
> Oxx - hmm, sample offset slide? O co chodzi?
Ha! Jest coś, czego nie pamiętam. Ale komenda ta może być świetna, jeśli to to, czego się domyślam. Jak poczytam to dam Ci znać. Być może to skipowanie sampla o jakąś porcję próbek, czyli takie względne 9xx - o zadaną wartość i od aktualnego momentu odtwarznia sampla. Ale jeszcze poczytam i sprawdzę, tylko niestety nie wiem, kiedy, bo nie mam na to czasu teraz.
> Sxx - pitchbender w 2.x. A może lepiej byłoby dać płynną
> regulację BPM bez zmiany wysokości nut? Hmm, co prawda to
> akurat można zrobić przez Fxx...
Sam sobie odpowiedziałeś. Pitchbender niech zostanie taki, jaki jest. Logiczne jest dla mnie, że powinien powodować to samo, co pitchbender na gramofonie DJ-skim lub DJ-skim odtwarzaczu CD.
> Lxx - ustawienie pozycji obwiedni - trywialne, jak będę robił
> obwiednie to wstawię.
Tego nie chce mi się testować. ;) Może ktoś inny się do tego zgłosi?
> No i Vxx, Yxx, Xxx, Zxx, czyli DSP echo... To będzie zrobione
> na końcu.
Tymi komendami też lubiłem się bawić. Mam kawałek, w którym używałem ich bardzo dużo i gęsto, celem uzyskania wyraźnie zmiennych ech i zasymulowania to rynny, to komnaty, to jeszcze innego echa - taka dynamizacja kawałka poprzez zamiany DSP. Podobało mi się bardzo, że mogę w pełni kontrolować DSP za pomoca komend.
Pamiętam, że jak to odkryłem, to bardzo się ucieszyłem z precyzji w sterowaniu DSP, jakiej możliwość uzyskania to daje. No i że mogę na początku kawałka komendami ustawić parametry DSP, nie wchodząc nawet w okienko od DSP. ;) Oraz że jak poprzesuwam slidery eksperymentując z DSP, to powrót do pierwszego patternu i odtworzenie pierwszego jego wiersza spowrotem ustawi mi wartości DSP takie, jakie były.
To tylko kilka możliwych korzyści z komend sterujących DSP.