Time stretching

Dział poświęcony systemowi stworzonemu przez 'JJ'.
Patent

Siema
Istnieje możliwość na JJ OS XL w 2500 w prosty sposób zmienić time stretching sampla przypisanego pod pada? Do zmiany TUNE wchodzę w PROGRAM w zakładke SAMPLE. Wtedy owszem sampel gra wolniej czy szybciej w zależności od TUNE, ale chciałbym zmieniać tę opcję niezależnie. Da się?
Patent

Bez tego się raczej nie obejdę. Wydawało by się taka w ch.. podstawowa opcja. Na youtube gościu coś tam pokazuje na JJ OS2 https://www.youtube.com/watch?v=kzCfNodqQBw Nie wiem czy można tę opcję wykorzystać dla pojedynczego pada czy tylko dla całego banku? I czy w ogóle można bezproblemowo zainstalować JJ OS2 na 2500? Jak widać na filmiku hula na 2500... Tutaj to samo: https://www.youtube.com/watch?v=om45QteVTRs Nie wiem czy instalacja przebiega podobnie jak w innych OS'ach? Rozumiem, że w OS3 nie ma tej opcji?
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

Patent pisze:Wydawało by się taka w ch.. podstawowa opcja.
hehehe....to samo powie twój prawnuk jak w jego osobistym kwantowym depolaryzatorze kwarków zabraknie funkcji odwracania fazy antymaterii :D :D :D
Patent pisze:Na youtube gościu coś tam pokazuje na JJ OS2
wiesz kto to jest Kazumasa Murai ?
Patent pisze:Nie wiem czy można tę opcję wykorzystać dla pojedynczego pada czy tylko dla całego banku?
To nie jest "opcja" której poszukujesz i o którą pytasz a ta której poszukujesz działa na pojedynczym samplu
Patent pisze:Nie wiem czy instalacja przebiega podobnie jak w innych OS'ach?
Tak.
Patent pisze:Rozumiem, że w OS3 nie ma tej opcji?
Jakiej opcji ?


Tak na koniec to polecam najpierw manual a później mode+pad6 ;)
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
Patent

Właśnie sęk w tym, że o co się nie zapytam to odsyłają mnie albo do manuala albo do wujka google... Mam wrażenie, że nikt nie próbuje nawet zrozumieć mojego toku myślenia. Tak jakby wszyscy wokół coś ćpali i mieli na wszystko wyjeb..., ale to nie dotyczy tylko tego forum... (Nie nie jestem zbuntowanym nastolatkiem, chociaż nie zgadzam się z systemem i pierdo.. show-biznes, a więc bunt jakiś tam pozostał.) Dla mnie to są sprawy oczywiste i staram się jak najjaśniej przedstawić swoje potrzeby. Powiem więcej mam nawet przez to spore problemy, gdyż wkładają w moje usta słowa, których nigdy nie wypowiedziałem lub z góry zakładają co miałem na myśli. A więc proszę spokojnie i kulturalnie :) spróbować zrozumieć co mi chodzi... Jestem świeżym użytkownikiem MPC. Wcześniej używałem FL studio. Miałem tam pokrętło 'pitch' i obok pokrętło, które się nazywało 'mul'. Owe pokrętło pozwalało wydłużyć lub skrócić sampel, aby współgrał z innymi samplami. Było to bardzo wygodne, gdyż mogłem jednocześnie stukać w klawiaturę komputerową wygrywając wybrane sample i dopasowywać właśnie ten konkretny sampel tym konkretnym pokrętłem MUL. Opcja TRIM, o której mowa (MODE + PAD6) z tego co widzę pozwala wydłużyć lub skrócić sampel, ale nie mam możliwości w tym samym momencie grać innymi samplami, aby dokładnie wiedzieć w jakim tempie ma grać. Chciałbym mieć możliwość tak jak w opcji MODE + PAD7 (PROGRAM) w opcji TUNE zmieniać również opcję TIME czy tam TIME STRETCH czy jak to nazwali w FL studio MUL. W linku, w którym podałem pewien użytkownik na OS2 zmieniał sobie TIME niezależnie od TUNE, ale nie wiem czy na innych padach TIME również ulegało zmianie. Robił to w głównym menu, a więc domyślam się, że mógł używać w tym samym czasie innych sampli i dopasowywać sobie ten konkretny (jeśli ta opcja działa na pada a nie na cały bank). Czy jest ktoś na tym forum kto myśli w podobny sposób? Wiem, że diabeł tkwi w szczegółach, ale dla mnie jest to opcja, która decyduje o tym czy bawić się MPC czy wrócić na PC'ta. Bez spiny. Luzik panowie ;) Jeśli nadal jest to nie całkiem jasne, mógłbym spróbować jeszcze dokładniej omówić problem :)
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

Nie ma żadnej spiny i od samego początku wiedziałem o co ci chodzi. proponuję ci zostać przy kompie bo MPC jest dla ludzi którzy mają cierpliwość i lubią sobie "podłubać".
Opcja o którą pytasz JEST w trim screenie z tą różnicą że nie możesz jej używać w pseudo real tim'ie a spowodowane jest to tym że mp ze swoim 200 mhz prockiem nie jest w stanie podołać funkcjom które tak czesto widzisz na kompie.
Odsyłanie do manuala na wszystkich forach spowodowane jest tylko i wyłącznie tym że mało kto ma cierpliwość tłumaczyć rzeczy które są podstawą w danym sprzecie
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
Patent

Hmmm... Czyli co oznacza "Real Time Time Stretch"? W linku, który podałem https://www.youtube.com/watch?v=kzCfNodqQBw użytkownik MPC używa opcji, która mnie interesuje w czasie rzeczywistym. Przecież w PROGRAM w czasie rzeczywistym można zmienić TUNE i grać równocześnie innymi padami... Tutaj tylko i wyłącznie chodzi o soft, a nie moc obliczeniową, która jest wystarczająca. Chodzi o parę linijek kodu, które pan Kazumasa Murai mógłby dla ułatwienia dopisać. Przecież to jest oczywiste...
EasyB
Pad5
Posty: 427
Rejestracja: 03 lut 2014, 12:26

Ja !@#$%^&*, skoro to takie oczywiste to napisz nowy soft i masz problem z głowy..


Wysłane z mojego iPhone przez Tapatalk
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

Nie dopisać kilka linijek kodu a napisać od zera cały fundament systemu.

Ludzie którzy wywodzą się ze środowiska komputerów nie pojmują ograniczeń spowodowanych sprzętem czy ilością RAM'u bo w zasadzie ich to nie dotyczy. Weźmy na przykład twojego FL'a, nie zauważyłeś przypadkiem że aby otrzymać dwa takie same sample rozciągnięte do różnych wartości to musisz użyć opcji "make unique" co powoduje zduplikowanie tego sampla w ramie ? Teraz wyobraź sobie że masz 16 padów zawalone samplem który jest na każdym padzie rozciągnięty inaczej. Czas w jakim zawalisz podstawowe 16mb RAM'u ( tak...piszącz program musisz wziąść pod uwagę fakt że nie każda maszyna jest rozszerzona) jest naprawdę krótki. Druga sprawa jest taka że system w MPC bazuje na odnośnikach do pojedyńczego sampla - mając ten sam sampel na kilku padach, odgrywany z np. różną głośnością tak naprawdę odgrywasz jeden i ten sam sampel źródłowy a poszczególne pady są tylko "linkami" lub "odnośnikami" do tego sampla. Jakakolwiek zmiana "sampla źródłowego" spowoduję zmianę na wszystkich padach które odsyłają do tego sampla (naprawdę nie chcesz żebym ci wytłumaczył w techniczny sposób dlaczego tak sie robi...).
Trzecia sprawa to zgodność z istniejącymi już funkcjami:
Jak chcesz napisać funkcję która np. rozciąga jeden slice sampla który jest pociety "bezdestruktywnie" (znowu te dziwne słowotwory :/) ?
Będziesz stretchował i duplikował cały sampel (który może mieć 5 minut) czy bedziesz kopiował jeden slice do ramu, tworzył odrębny sampel , aplikował na niego ustawienia bezdestrukcyjnych slice'ów oraz ustawienia miksera i efektów ?
W tym drugim przypadku jak napiszesz funkcje która zmieni ten sampel (który de facto jest teraz całkiem odrębną próbką kompletnie nie powiązaną z tymi pierwszymi) w momencie aplikacji zmian do bezdestruktywnych ( :( ) slice'ów ?
A co jeżeli ten odrębny sampel też potniesz w trybie non-destructive (ha! ;D ) i kolejne slice'y tego sampla będziesz chciał time stretchować ? a co ze slice'ami slice'ów sampla pierwotnego (taka tam incepcja :D ) ?
Może łatwiej byłoby się pozbyć całej funkcji non destructive i zaaplikowac time stretching ? Tylko że....pomyśl co by się mogło posypać nastepne po usunięciu tej funkcji (np. funkcje w GPE takie jak chociażby wybór chop'a na padzie, czy kierunku odtwarzania sampla, dodatkowo ciekawe ilu ludzi by to !@#$%^&* ?

Kolejna sprawa to - wspomniana już moc obliczeniowa. Zauważ że wykonanie time stretchingu na zwykłym samplu kick'u zajmuje ok. 1 sekundę (może nawet dwie - nie wiem nie używam :P), jest to czas w którym wszystkie inne funkcje MP zostają wstrzymane a moc obliczeniowa zostaje "przetransportowana" do funkcji która ma wykonać to zadanie.
Żeby poprawnie wykonać time stretching "na padzie" nie używając procentów jako jednostki bazowej to jako minimum musisz:
Określić metrum próbki, długość próbki, ilość sampli w próbce, częstotliwość próbki, długość jednostki bazowej na podstawie której obliczany bedzie stopień stretchingu (jeżeli nie chcesz tego robić procentowo), tempo próbki, tempo jednostki bazowej (w uproszczeniu czytaj sekwencji),
teraz dla każdej z tych sub funkcji musisz napisać odpowiedni kod po czym kiedy juz to napiszesz możesz... zabrać się za wdrażanie algorytmu time stretchingu i tutajnaprawdę nie chcesz żebym ci tłumaczył o resamplingu transformacjach fourier'a, modelingu spektralnym, detekcji i interpolacji transientów, duplikowaniu granularnym (jest coś takiego w polskim słownictwie ? :p) itd. itd. itd...
Jeżeli już ogarniesz już to wszystko to musisz wykombinować jak to wcisnąć w istniejący już kod (który na marginesie masz rozpisany tylko w jakichś 60%- JJ nie posiada całego kodu źródłowego ) tak aby nie zdestabilizował kilkuset innych sub programów i odwołań oraz stworzyć i zaprogramować GUI.
tyle w kwestii twoich kilku linijek kodu a teraz leć i zacznij pisać :D :D :D

A teraz posłużę się stroną samego wielkiego i strzelającego z palca algorytmami JJ'a i przetłumacze ci kilka linijek na język "ludzki"

1.
JĘZYK PROGRAMISTY:
It is not suitable for the musical instrument sound which is only for a voice.
JĘZYK UŻYTKOWNIKA:
Żeby twoja MP mogła jako tako uciągnąć stretching w czasie rzeczywistym, musiałem zastosować algorytm który jest tak !@#$%^&* że nie ma sensu wogóle włączać tej opcji i tak naprawdę napisałem ją JUST FOR FUN.

2.
JĘZYK PROGRAMISTY:
An output is slightly overdue.
JĘZYK UŻYTKOWNIKA:
Bebechy twojego sprzętu są tak !@#$%^&* że odczujesz "delikatne" opóźnienie pomiędzy sygnałem źródłowym a sygnałem obrobionym. Zastosowanie tego na więcej niż dwóch trackach powoduje zmianę postrzegania "czasu rzeczywistego" Patrz pkt.1

3.
JĘZYK PROGRAMISTY:
It works only in input through mode. It does not work in other modes.
JĘZYK UŻYTKOWNIKA:
Nie chce mi się, nie ma sensu oraz nie ma fizycznej możliwości napisania kodu który będzie działał w zgodzie z innymi funkcjami systemu. Jak się nie znasz to się nie udzielaj, ja piszę, ty używasz...

4.
JĘZYK PROGRAMISTY:
Play of a sequence cannot be performed when a pitch shift is ON.
JĘZYK UŻYTKOWNIKA:
twojemu sprzętowi brakuje RAM'u i "pary" nawet żeby uruchomić pusty sekwencer w czasie działania timestretchingu i nie licz na to że da się "doprogramować" dodatkowe MHz'e i MB :/


Podsumowując:
Tak jak pisałem - wróć do kompa, nie jesteś typem człowieka który ma cierpliwość i któremu chce się marnować czas żeby użyć kalkulatora do przeliczenia sobie długości sampla. Dla ciebie funkcje o których kilkanaście lat temu to mozna było tylko pisać w magazynach SCI-FI są czymś normalnym i podstawowym. Prawdopodobnie kupiłes MP myśląc jak wielu że to jest ten święty gral który zrobi bit za ciebie a tutaj... taka niespodziewajka :D :D :D
...and as always - NO PUN INTENDED ;)
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
EasyB
Pad5
Posty: 427
Rejestracja: 03 lut 2014, 12:26

Stary, nie czytałem wszystkiego bo po 16 h w pracy pewnie bym zasnął, ale respekt za cierpliwość. Mam nadzieje, że pan, któremu to tłumaczysz, zrozumie.


Wysłane z mojego iPhone przez Tapatalk
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

:D :D :D

Obrazek
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
EasyB
Pad5
Posty: 427
Rejestracja: 03 lut 2014, 12:26

Hahaha, coś w ten deseń :D . Rozumię w stu % :p


Wysłane z mojego iPhone przez Tapatalk
Patent

Ludzie... Czy w ogóle wchodziliście w link, w który podałem? Czy tam użytkownik nie używa time stretchingu? Czy mam wydać kilka stów na soft, żeby się przekonać czy ten film jest autentyczny? Nikt nie odpowiedział na podstawowe pytania tylko każdy się mądruje... Czy opcja pokazana na filmiku nie jest właśnie tą opcją, o której mowa? Czy mój komputer wyświetla co innego niż wasze komputery? Nie wiem, może podmienili mi dns'y?
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

I całe pisanie w !@#$%^&* poszło :(

Nie da się dopisać Do padów czegoś tak "oczywistego" jak stretching w czasie rzeczywistym jak i nie da się dopisać offline'owego stretchingu. Zostaw sobie MP wydaj parę stów żeby robić to jak ten chłop a potem to resamplować lub sprzedaj to w piździec i wróć do FL'a :/
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
Patent

Podsumowując: nasze pojmowanie różni się, gdyż używamy innej terminologii. Dla mnie to jest logiczne, że skoro da się przyciskiem DO IT rozciągnąć czy 'skurczyć' sampel, to można by zlinkować przycisk DO IT (i wpisywane wartości) pod suwaki czy pokrętła. Nie mówię o działaniu na oryginalnym samplu tylko na kopiowaniu go w różnym tempie. Nie mówcie mi, że zmiana tempa 5sekudnowego sampla wymaga niewiarygodnej mocy obliczeniowej (nikt o zdrowych zmysłach nie będzie podpisywał pod pada 3 minutowego kawałka). Przecież w gruncie rzeczy MPC jest komputerem. Taka opcja jest w podmenu więc nie jest wielką filozofią umieszczenie tej opcji w głównym menu. Powiem jeszcze raz: już nie chodzi mi o REAL TIME, tylko kręcenie pokrętłem i zaraz po tym usłyszenie wyniku tej operacji. Przecież to wszystko jest już napisane tylko jest niewygodne, gdyż nie jest zlinkowane pod suwaki. Po co sobie komplikować życie. Dziękuję za wyczerpujące informacje i proszę nie zakładać z góry, że nie chciałbym znać szczegółów, ponieważ bardzo mnie to interesuje i gdyby kod OS'a był otwarty to już dawno bym go wertował. Po to istnieją biblioteki, aby nie pisać znów tych samych funkcji tylko korzystać z już napisanych. Używając FL studio też nie robię tego w czasie rzeczywistym. Kręcę i dopiero sprawdzam efekt. Mówiąc o REAL TIME to nawet mój 3-gigahercowy procesor mógłby tego nie ogarnąć. Przypisanie nowej wartości do kanału trwa chwilę więc dlatego mówię, że to się dzieje niemal natychmiast. Czy teraz zgodzicie się ze mną jeśli spróbujecie rozumować w taki sam sposób? Bardzo przepraszam jeśli mój tok myślenia kogoś uraża, ale to ze strony innych użytkowników spotkało mnie urąganie i brak zrozumienia. Po to jest forum, aby dyskutować i dlatego założyłem ten temat...
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

ty dalej nie rozumiesz albo nie potrafisz czytać ze zrozumieniem :/
Próbowałeś chociaż raz uzyć opcji time stretch w trim mode ?
widziałeś ile tam trzeba ustawić opcji ?
- Tempo poczatkowe
- Tempo końcowe
- Typ Algorytmu
- Dokładność algorytmu
- Podać czy sampel wynikowy ma być nowym samplem czy nadpisać stary sampel
Patent pisze:Przecież to wszystko jest już napisane tylko jest niewygodne, gdyż nie jest zlinkowane pod suwaki.
Jak ty to chcesz wszystko przypisać do jednego suwaka czy pot'u ?
Skąd biedny subsystem samplera ma wiedzieć ile to jest jeden bar czy chociażby 1/16 nuty skoro nie komunikuje się z subsystemem sekwencera na poziomie wyższym niż podstawowe komendy MIDI ?
Patent pisze: Taka opcja jest w podmenu więc nie jest wielką filozofią umieszczenie tej opcji w głównym menu.
Twój "bezpośredni odsłuch z pada" jest możliwy ale twoim problemem jest ciągłe wchodzenie do trim screenu które jest taaaaak wielce niewygodne :/
nawet jeżeli przeniesiesz wszystkie te ustwienia z trim screenu gdzieś "na wierzch" np. do GPE to i tak będziesz miał 5 milionów kolumn do ustawienia (lista powyżej) co bedzie w dokładnie takim samym stopniu "niewygodne" :(

Nikt się z ciebie nie naśmiewa i nie ma zamiaru naśmiewać ale nie wygląda na to żebyś miał jakąkolwiek wiedze na temat programowania, planowania i optymalizacji struktury programu a zachowujesz sie jakbyś sam mógł to wszystko zrobić w 5 minut gdybys tylko miał kod źródłowy :/

Reasumując:
Przypisz sobie sampel do pada wejdź w trim screen stretchuj sampel i nadpisz stary, wyjdź do głównego menu, sprawdź czy pasuje jak nie pasuje to powtórz wszystko od nowa - problem w tym że już nie będziesz miał sampla z "przed" pierwszego stretchingu bo go już nadpisałeś...
NIE MA INNEJ OPCJI i prawdopodobnie NIE BĘDZIE... DEAL WITH IT

Swoją drogą to wiesz czemu w komputerowym sofcie AKAI, Maschine, Geist'cie czy kilku innych też nie da się osiągnąć tego o się tak burzysz ? Bo nie ma różnicy pomiędzy wchodzeniem do Trim screenu a wchodzeniem do utworzonego na potrzeby stretchingu "Stretch Screenu"...

Koniec w tym temacie bo to prowadzi do nikąd...
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
Patent

W takim razie po co są skróty na pulpicie w WINDOWS, które wykonują kilka operacji jednocześnie skoro można wpisywać komendy w trybie tekstowym. Po co są linki chociażby na forum skoro można wpisywać ręcznie cały adres albo jeszcze lepiej adres IP. Po co jest internet skoro można przecież iść na pieszo do użytkownika 300km i tam zapytać go czy zgadza się z jego zdaniem. Tu pasuje powiedzenie: przyganiał kocioł garnkowi. Taki ze mnie programista jak z Ciebie współtwórca JJ OS'a. Dalsza dyskusja nie ma sensu, gdyż z góry zakładasz, że ułatwienia są czymś niepożądanym. Wymontuj sobie suwaki i pokrętła i wyrzuć Jog Wheel'a, bo przecież po co iść na skróty... Zamknijmy ten temat, bo szkoda nerwów...
Awatar użytkownika
DonPadzior
Admin
Posty: 2099
Rejestracja: 23 sty 2013, 17:00

Patent pisze:Taki ze mnie programista jak z Ciebie współtwórca JJ OS'a.
Nie jestem programistą, nie napisałem nawet jednej linijki kodu do MPC a tylko beta testowałem poszczególne release'y. Tak czy siak widziałem ile kodu zabiera poprawne wyświetlenie playheada na głównym ekranie (jeden z błędów które poprawiłem) uwierz mi...sporo zresztą...nie ma najmniejszego problemu...masz rację... nie wiem, nie znam się, zarobiony jestem.
Zanim przykleję w tym wątku naklejkę "CLOSED" to chciałbym jeszcze wysłuchać twojej opini jak to powinno być zrobione.
I w tym momencie uwierz mi, jestem poważny jak nigdy - napisz mi jak to ma wyglądać.
I suppose it is tempting, if the only tool you have is a hammer, to treat everything if it were a nail.
Ende
Pad10
Posty: 1716
Rejestracja: 27 sty 2013, 14:26

Chciałoby się napisać "TL;DR" ale przeczytałem wszystko. Sorry za OT :v
Patent

Dziękuję za udzielenie głosu ;) Panie Marszałku, Wysoka Izbo...

Widzę iż dużym utrudnieniem (być może nie tylko dla mnie) jest zmiana tempa sampla przypisanego pod pada. Aby dokonać takiej operacji należy:
1) wciśnąć MODE + TRIM
2) F6 - EDIT
3) jeśli ostatnią używaną opcją nie było TIME STRETCH należy JOG WHEEL'em
znaleźć odpowiednią podpozycję wyświetlanego MENU.
4) następnie trzeba udać się kursorami na pole NEW.
5) ustawić odpowiednią wartość, która i tak trzeba dokładnie oszacować co jest zdawało by się loterią
6) wybrać F5 - DO IT
7) kolejne MENU Keep or retry
8) MAIN, aby wrócić do głownego MENU i sprawdzić czy zmieniony sampel współgra
z innym samplami
9) gdy tempo nie zgadza się chociażby o 3-5 jednostek należy wrócić do punktu 1)

Moja propozycja zmian jest następująca (na przykład):
1) MODE + PROGRAM
2) w dodatkowej kolumnie TIME zaraz za TUNE ustawić WHEEL'em odpowiednią
wartość
3) jeśli REAL TIME (tak jak jest w kolumnie TUNE) jest w tym wypadku zbyt zasobożerne to należałoby procesowi zmiany tempa nadać najwyższy priorytet i odebrać możliwość wybrzmiewania sampla w trakcie zmiany tempa

Jeszcze prościej byłoby gdyby w głównym menu można było wybrać pada (np. A01)
i tam gdzie trzy kreski --- wybrać opcję TIME i obok za dwukropkiem wybrać nową wartość.

Sama operacja zmiany tempa 5 sekundowego sampla trwa moment.

A jakby to miało wyglądać jeśli chodzi o sam kod? Nie mam pojęcia, bo nie mam wglądu w źródła, a i tak mój poziom programowania jest na poziomie "przedszkola", ale na chłopski rozum (przyjmując, że kod jest napisany w C):

// wywołać funkcję time z głównego MENU:

time(A01); // z argumentem będącym nazwą pada

// w środku funkcji dajmy na to instrukcja switch, która odpowiada
// za wartość New

switch(new_tempo)
{
case 1: // np. JOG WHEEL przekręcony o jedno pyknięcie w prawo
time_stretch(algorytm, new_tempo+1);
break;
case 2:
time_stretch(algorytm, new_tempo+2);
...

case 15:
time_stretch(algorytm, new_tempo-15); // gdy tempo jest zwalniane
...
}

Chodzi o ustawienie wcześniej gdzieś w MENU wyboru algorytmu, który na sztywno będzie przypisany do funkcji time_stretch, a w razie chęci zmiany algorytmu (Preset) czy Adjst udać się ponownie do podmenu w celu dokonania dokładniejszych zmian.
Aczkolwiek sam nie testowałem innych opcji (parametrów funkcji) gdyż te które są domyślne spełniają moje oczekiwania.

Zdaję sobie sprawę, że funkcja time_stretch jak napisałem wyżej ma znacznie więcej parametrów, ale ten krótki kod jest bardzo dużym uproszczeniem mojej wizji.

Nie trzeba nic wymyślać od nowa tylko przenieść funkcję time_stretch w inne miejsce. To wszystko przecież jest już napisane.

Myślę iż taka propozycja zmian mogłaby być wzięta pod uwagę przy kolejnej aktualizacji softu. Chyba twórcę JJ OS'a interesują opinie innych użytkowników. Ze mnie żaden programista, a więc należałoby to skonsultować z ludźmi, którzy jakieś o tym pojęcie mają, żeby nie było wstydu. Z resztą nie jestem pierwszym, który pyta o tę opcję wnioskując po przeglądnięciu internetu.
Być może ta opcja zniechęca część użytkowników do używania MPC. Dla mnie
osobiście jest to opcja, która powinna być standardowo na wierzchu. Swoje produkcje opieram głownie na dwóch pokrętłach, które oznaczają: pitch i time. Jest to dla mnie tak pożądane jak zmiana VOLUME.

Nie wiem czy moje słowa są jasne, gdyż może używam słów, które nie są uznawane za oficjalne. Mogę zapewnić, że mam szczere intencje i nie zależy mi na tym, żeby komuś ubliżać. Zdaję sobie sprawę również z tego, że moja wiedza na ten temat jest znikoma i mogę się mylić lecz odnoszę wrażenie, że to może wyglądać podobnie do tego jak starałem się to przedstawić.

To tak na gorąco. Jeśli coś poje_bałem to proszę usunąć ten temat.

Dziękuję to wszystko. Pozdrawia.
Patent

Trochę inaczej. Inna zmienna w switch, itd...

Albo jeszcze inaczej:
while(flaga) // petla chodzi tak dlugo jak dlugo nie wyjdziemy z MENU (np. kursorem)
{
if(JOG_w_prawo)
new_tempo = tempo+1;
if(JOG_w_lewo)
new_tempo = tempo-1;

tempo = new_tempo;

if(kursor_zmienil_polozenie)
flaga = false;
}

Z resztą nie wiem... Może to by się wywaliło. Nie mam doświadczenia w pisaniu MENU.
Z resztą w ogóle nie mam doświadczenia jeśli chodzi o poważne programowanie. Musiałbym to skompilować. Nie chcę na debila wyjść. To tylko gdybanie, ale chodzi o samą idee, a nie treść, której nie znam, a która przecież już jest napisana.
Zablokowany