Aktualności Forum Graffiti Publicystyka Teleport
  kategoria: Muzyka
[#1] Protracker jako syntezator (EFx + E8x)
Dzień dobry dzieci. Wita was Adam Słodowy Protrackera. Jak wam zapewne wiadomo Protracker to program bazujący na samplach. Czyli na nagraniach dźwiękowych pochodzących ze źródeł zewnętrznych i odpowiednio dla Protrackera przygotowanych. Jest to fajne, a manipulacje przy odtwarzaniu sampli jakie można robić w Protrackerze dają bogate możliwości kreowania brzmienia. Do pełni szczęścia i wzbogacenia brzmienia Protrackerowi brakowało jednak zdolności syntezowania dźwięku w czasie rzeczywistym.

Autorzy zdawali sobie z tego sprawę dlatego nieśmiało dodali do Protrackera eksperymentalne komendy modulujące sample w specyficzny sposób. To mianowicie EFx oraz E8x. Niestety sposób ich implementacji nie był zbyt rozsądny. Obie działają w sposób destrukcyjny, tzn. modyfikują bezpowrotnie oryginalne sample. Pewnie poszło o oszczędność pamięci no ale ten sposób wystraszyli muzyków, bo kto by chciał żeby mu się w trakcie odgrywania modułu psuły sample? Ostrożność tu jest bardzo wskazana.

Komenda E8x filtruje sample metodą Karplus Strong i chociaż funkcjonuje w Protrackerze to playery zazwyczaj wcale jej nie implementują. EFx kombinuje z odwracaniem wartości "próbki w próbce". Ta komenda była okazjonalnie używana w chiptunach (np. przez Groo). Nie chce mi się wchodzić w szczegóły ich działania, ale jeśli ktoś jest zainteresowany to polecam znaleźć tutorial Protrackera autorstwa WASPa na Youtube. Tam jest to precyzyjnie objaśnione.

No więc czy można coś z tym tałatajstwem począć po 30 latach? Yyyy.... No coś można :). Ciężko to kontrolować tak, żeby zrobiło dokładnie to co byśmy chcieli, ale z drugiej strony odrobina nieprzewidywalności też może być ciekawa.

No więc zrobiłem doświadczenia nad zawartością zwartości w zawartości. W tym module operacja z użyciem dwóch sampli: kicka, który tylko wali jak kowal młotem oraz z drugim krótkim samplem, którego zawartość jest modulowana wspomnianymi powyżej komendami. Cały kawałek ma około 8 KB.




Dla zainteresowanych co tam konkretnie dzieje się w dźwięku jest drugi film. Napiszę tylko, że poruszanie myszą nie wpływa na brzmienie, a jedynie wywołuje odświeżenie wyświetlania wykresu. Dzięki temu widać co dokładnie zachodzi w dźwięku:

1
[#2] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #1

Zawsze uważałem, że E8x było wypadkiem przy pracy, ponieważ nawet w dokumentacji formatu jest, że komenda ta nie działa. A to, że wprowadza filtr, to zauważyłem, tyle że nigdy nie korzystałem, bo nie lubię niepewnych komend, które może i coś robią, ale przypadkowo. EFx użyłem w module "Syntherella 7". Pamiętam, że przed każdym naciśnięciem PLAY zapisywałem moduł, potem go odsłuchiwałem i wczytywałem z niezmienionym samplem. :)

Nie wiem jak uzyskałeś ten efekt pokazania zmiany sampla w czasie rzeczywistym - ProTracker tego nie pokazywał, trzeba było odświeżać sampla / przełączać, żeby zobaczyć zmianę.

Ostatnia aktualizacja: 12.10.2021 11:10:22 przez XTD
[#3] Re: Protracker jako syntezator (EFx + E8x)

@XTD, post #2

Filmy są nagrane pod Protracker 2.3D Clone 8bitbubsy'ego pod Windowsem. Tam można rysować sample prawym przyciskiem myszki i w ten sposób wywołać odświeżenie wykresu. Defaultowo efekt E8x jest tam wyłączony i trzeba go włączyć flagą w pliku .ini.
[#4] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #1

Patrz miałem pisać do ciebie w sprawie komendy E8x. Śmieszna sprawa o której też wspomina XTD że komenda ta nie działa bo np. extension P61 dla AmosaPro zakodowany przez Platona42 właśnie wykorzystuję tę komendę do wysyłania sygnału sterującego ( zwraca wartość w postaci nibbla). Co prawda nie wiem czy konwersja do P61 jest warta świeczki (trochę można chipu zaoszczędzić i teoretycznie sama routinka jest znacznie szybsza od playera z PT), bo z drugiej strony player z AMCAF'a do modułów PT ma więcej komend pobierających informacje podczas grania muzyki. Ma ktoś może jakieś doświadczenie w sprawie tego playera?
[#5] Re: Protracker jako syntezator (EFx + E8x)

@jimiche, post #4

Nie sprawdzałem kompatybilności triku na E8x, z innymi playerami na Amidze niż HippoPlayer, ale przypuszczam, że raczej przez większość jest ignorowana. Przez Hipka też.

W ogóle ta komenda (EFx zresztą też) działa tylko na obszarze sampla ujętym w ograniczniki pętli. Jeśli pętla jest wyłączona to wcale nie działa. I sądzę, że dlatego wielu nieświadomym muzykom, czy koderom udało się nieprzefiltrować przypadkiem sampli w module jeśli wstawiali ją pod synchronizację w demie :).

A co z 8xx w Amosie? Ta komenda (chyba) była w Protrackerach zawsze pozostawiona pusta.


Co do dopasowania playera do modułu to zależy co chcesz uzyskać. Jeśli zależy Ci na poprawnym odtworzeniu jakiegoś starego modułu to po prostu musisz sprawdzić czy dobrze się odgrywa pod tym playerem, który masz. Jeśli nie to pozostaje Ci opcja edytowania modułu, ale tego możesz nie chcieć. Więc wtedy pozostaje poszukanie lepszej odgrywajki.

W drugą stronę - jeśli ktoś ma Ci napisać nowy moduł do dema to muzyk może dopasować się do ograniczeń playera i po prostu nie korzystać z funkcji Protrackera, których dany player nie obsługuje. Chyba, że to jakoś tak kosmicznie zabłędzony player, że nawet wtedy wyczynia cyrki i nie da się go opanować.
[#6] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #5

Do tematu syntezowania dźwięku w Protrackerze dochodzi komenda: E9x. Inspirując się pomysłem z modułu Whiskasa, który wrzucałem tutaj, zabawiłem się w wytworzenie modulacji brzmienia basu używając tylko dwóch krótkich sampli o długości 50 bajtów każdy. Whiskas uzyskał jedną nutę ustawiając tempo na F01. To ostatnie ma akurat taką wadę, że szybko wyczerpuje dostępne w Protrackerze patterny. Używając komendy E9x udało się jednak ten problem rozwiązać. Różne wysokości nut dla uzyskałem zmieniając odpowiednio tempo w trakcie patternów. No nie jest to super poręczne do komponowania bardziej złożonych linii basowych, ale cóż... czasem trzeba sobie trochę utrudnić życie . Poza tym aspektem to dość typowy chiptunek:

[#7] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #6

super, ile wazy modek tak naprawde? pomijam to 29600
[#8] Re: Protracker jako syntezator (EFx + E8x)

@juen, post #7

Nie wiem jak rozumieć to, że "pomijasz". Tyle ma. Podlinkowałem modek pod filmem, ale w sumie mogłem też tutaj. Więc to link do samego pliku:
https://drive.google.com/file/d/1JamUyuIHYB3FQhdV-4u8Hz46vnJpTTsi/view
[#9] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #8

myślałem że zostawiłeś tam jakieś sample. strasznie dużo wyszło jak na dwa sample po 50 bajtow
[#10] Re: Protracker jako syntezator (EFx + E8x)

@juen, post #9

Nie napisałem, że moduł składa się z dwóch sampli, a że z nich składa się linia basu (kanał nr 2). Minimalizowanie rozmiaru nie było tutaj w ogóle celem.
[#11] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #10

to źle Cie zrozumiałem :)
[#12] Re: Protracker jako syntezator (EFx + E8x)

@juen, post #11

luzik, zdarza się .

Wiesz, ogólnie chodzi o to, że możliwości modulowania dźwięku wewnatrz samego Protrackera są dość ograniczone. W zasadzie możemy modulować tylko częstotliwość i głośność dźwięku, ew. miejsce startu (offset) sampla, bo na to pozwala Paula. Dodatkowo można dźwięki poloopować odpowiednio i to tyle. Przy wielu gatunkach muzycznych to w zupełności wystarczy. Powstało wszak multum utworów na Amidze. Ale czasem fajnie byłoby mieć coś jeszcze, co poszerzałoby paletę brzmieniową Pauli, której Protracker z całą pewnością nie wyczerpuje. A jednocześnie nie redukowaloby to Protrackera do roli prostego wyzwalacza dźwięków, które stworzone zostały poza nim samym. Dlatego ludzie eksperymentowali na różne sposoby, także z Protrackerem, który był i jest de facto standardem w muzyce amigowej przez długie lata. Więc jest sam w sobie platformą, którego ograniczenia próbowało się obejść, oszukać, nagiąć dla stworzenia czegość oryginalnego. Czasem chodziło o rozmiar, a czasem o brzmienia dla samego brzmienia, a czasem nawet wcale nie chodziło o brzmienie jak np. u Dreamera w "Black Queen".

W przypadku modułu Whiskasa, do którego się odnosiłem, był to ciekawy patent na uzyskanie modulacji symulującej przestrajanie filtra. Ten sposób mi do głowy wcześniej nie przyszedł, dlatego wywołał u mnie efekt Szok. Nawet mimo jego ograniczonej użyteczności to ciekawe podejście do syntezy wavetable na Pauli. Ciekawe, bo mocno nieintuicyjne gdy do uzyskania takiej modulacji używasz tego rejestru, który z założenia miał służyć do odgrywania nutek czy LFO. Wydaje mi się, że żaden z istniejących na Amidze trackerów umożliwiających syntezowanie dźwięku nie robi tego w ten sposób, chociaż może są ku temu uzasadnione powody.

W każdym razie, wracając do Protrackera, w niektórych gatunkach muzycznych tego i innego typu modulacje są pożadane i pozwalają urozmaicać brzmienie muzyki. W Protrackerze ograniczeniem jest nie tylko rozmiar, ale też np. liczba slotów na sample, które dość łatwo można zapełnić, jeśli się pojedzie na bogato np. wrzucając sobie instrumenty w wielu wariantach. Jakimś tam lekarstwem na to jest np. używanie komendy 9xx dzięki czemu można jeden slot na sampal użyć wielokrotnie, ale jego skutkiem ubocznym jest np. problem z ustawieniem głośności takiego sampla w patternie, bo mamy w tam tylko jedną linię komend na kanał. I w przypadku tego chiptunka, który zamieściłem powyżej wg mnie istotniejsze jest, że ten delikatny "movement" linii basowej uzyskany jest w zasadzie przez zajęcie tylko jednego slotu na sample.

Oczywiście to wszystko w ramach ciekawostki. Raczej nie zamierzam pisać modułów w ten sposób, bo kombinowanie w taki sposób z tempem modułu jest niewygodne. Ale kto wie, może ktoś popisze się bogatszą wyobraźnią i rozwiąże również tę niedogodność. welcome!
2
[#13] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #12

Tym razem mała ciekawostka, poboczna względem tego tematu i raczej bez praktycznego zastosowania. Natrafiłem na małego buga w Protrackerze 2.x dotyczącego wykonywania komend. Sprawdziłem to przy okazji w Hippolplayerze oraz libOpenMPT i tam to zjawisko nie występuje.

O co chodzi? Gdy w patternie w kolumnie komend po 0xx wystąpi EAx lub EBx to tremolo "zawiesza się" na ostatnio odegranej nucie. Tzn. nie powraca do nuty podstawowej. Na której się zawiesi to zależy od tempa.

Tak to wygląda w praktyce:
3
[#14] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #13

Dostałem cynk, że zostało to też potwierdzone na wersjach Protrackera 1.x i 3.x.
[#15] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #14

W dzisiejszym odcinku kuchni pełnej protrackerowych niespodzianek serwuję płynną lofizację dźwięku z użyciem odpowiednio spreparowanego loopa perkusyjnego oraz komend zmiany wysokości dźwięku w Protrackerze. W zaprezentowanym poniżej przykładzie wykorzystana jest komenda 2xx, lecz analogiczny efekt można też uzyskać w druga stronę za pomocą komendy 1xx. W ten sposób da się wykorzystać charakterystykę Pauli, czyli brak interpolacji na samplach niskich częstotliwości jako zabieg estetyczny w utworze.

W tym przykładzie używam sobie akurat loopa perkusyjnego, gdyż na takim dźwięku łatwiej uchodzi brak precyzji przy dobieraniu wartości dla komend 1xx lub 2xx, ale w przyszłości pewnie spróbuję zaatakować bardziej melodyjne loopy. Sukces nie jest gwarantowany, ale kto nie ryzykuje ten w labiryncie nie siedzi.

W ogóle można do tego tematu podejść jeszcze na kilka innych sposobów, np. bez wykorzystania komend 1xx i 2xx, gdy np. nie zależy nam na ciągłości przestrojenia. No albo gdy np. właśnie zależy nam na tej nieciągłości. Wtedy można sobie wyrenderować loopa z różnymi fazami "lofizacji" i po prostu między nimi przeskakiwać, np. przy użyciu komendy 9xx, jeśli będą one skumulowane w pojedynczym slocie sampla. Takie sample nie muszą koniecznie siedzieć w jednym slocie, ale ponieważ jednym z bolesnych ograniczeń Protrackera jest m.in. maksymalna liczba instrumentów to te sloty też bywają na wagę złota i 9xx wtedy ratuje tyłek. Ale to już inna historia. Natomiast przy takim podejściu odpada upierdliwość szukania wartości przestrojenia dla komend 1xx i 2xx.


[#16] Re: Protracker jako syntezator (EFx + E8x)

@nogorg, post #15

Uciekł mi już moment na edycję posta, a zapomniałem zaznaczyć, że to co istotne na przykładzie z filmiku dzieje się w patternie nr 2. Cała reszta dodana jest jako przykładowy kontekst zastosowania takiego efektu.

Dla dociekliwszych również ciekawostka jak można w takiej sytuacji zasymulować dodatkową kolumnę komend głośności, gdy standardowa kolumna jest już zajęta innymi komendami. Screamtracker taką kolumnę już wprowadził, a Protracker niestety pozostał przy jednej i ten brak czasem bywa upierdliwy. Nie jest to sztuczka na każdą pogodę, ale czasem może się przydać.
Na stronie SCENA.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem