atarionline.pl odgrywanie melodii w Atari Basic - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    Miałem chytry plan by napisać prostą melodię odgrywaną przez Atari i w razie potrzeby zmian zmieniałbym tylko wysokość dźwięku:

    10 GOSUB 100
    20 SOUND 0,64,10,A:NEXT A:SOUND 0,0,0,0:GOSUB 100
    30 SOUND 0,57,10,A:NEXT A:SOUND 0,0,0,0:GOSUB 100
    40 ...
    50 ....I TAK DALEJ
    99 END
    100 FOR A=15 TO 0 STEP -1:RETURN

    no i error - jak to ograć?
    • 2: CommentAuthorurborg
    • CommentTime14 Mar 2021 zmieniony
     
    Jeśli dobrze to kminię to program po pierwszym NEXT A wraca do pętli w linii 100 po czym napotyka RETURN dla którego nie ma stosie adresu powrotnego. Przebuduj ten program. najlepiej kolejne wartości dźwięków zapisz jako liczby w instrukcji DATA a potem czytaj je komendą READ. Będzie przejrzyściej i zaoszczędzisz sporo pamięci.
    • 3: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    myślałem, że po RETURN zawsze wróci do kolejnej linii po GOSUB? A on mi zgłasza błąd dla NEXT A w linii 20 (next bez for)?
  1.  
    Takie spaghetti chyba nie zadziała - nie wiem jak dokładnie BASIC to zinterpretuje (pewnie mono zaraz przyjdzie i wyjaśni), ale posłuchaj urborga. Rozwiązanie z kolejnymi nutkami w liniach DATA to idiomatyczna metoda brzdękania w BASIC.
    • 5: CommentAuthorurborg
    • CommentTime14 Mar 2021 zmieniony
     
    Logiczniej byłoby w linii 10 umieścić pętlę FOR a instrukcję SOUND w linii do której skaczesz z użyciem GOSUB. Pomiędzy kolejnymi GOSUB wystarczyłoby tylko zmieniać wartość zmiennej A. Na przykład doczytując kolejną wartość z linii DATA poleceniem READ.
    • 6: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    urborg rozumiem :) a masz chwilkę by mi te trzy linijki tu napisać? Szczerze nigdy nie skorzystałem z READ/DATA :(
    • 7: CommentAuthorurborg
    • CommentTime14 Mar 2021
     
    np.

    10 DATA 1,2,3,4,5,6,7,8,9,10
    20 FOR I=1 TO 10:READ A:FOR J=15 TO 0 STEP -1:SOUND 0,A,10,J:NEXT J:NEXT I
    30 SOUND 0,0,0,0
    • 8: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    czy I to liczba danych w DATA? Skąd READ w linii 20 wie gdzie szukać DATA? (sorry za lamerskie pytania)
    • 9:
       
      CommentAuthorjhusak
    • CommentTime14 Mar 2021
     
    Skakanie do różnych linii w celu grania różnych dźwięków to zły pomysł, bo czym linia dalej, tym dłużej to zajmuje. Kiedyś napisałem pochód świętych, jak byłem jeszcze świeżakiem i strasznie się dziwiłem, że gra coraz wolniej... Musiałem korygować pętle opóźniające.
    Wyglądało to tak:
    10 SOUND 0,x,y,z
    20 FOR I=1 TO 100
    30 NEXT I
    40 SOUND ...

    itd. aż do ponad tysięcznej linii :)
    • 10: CommentAuthorbaton
    • CommentTime14 Mar 2021 zmieniony
     
    3 linijki urborga są genialne - działają idealnie - tylko proszę o odpowiedź na moje ostatnie pytania? :) I jeszcze jedno gdy wstawiam w DATA 0,0 by zrobić pauzy w melodii - z głośnika słychać "pyk, pyk" jak to ominąć?
    • 11: CommentAuthorurborg
    • CommentTime14 Mar 2021 zmieniony
     
    Cieszę się że zadziałało. Pisałem z głowy bez sprawdzania a ponieważ nie programowałem w Basicu od wielu lat nie byłem pewny czy coś nie pomyliłem. READ przy pierwszym użyciu odczytuje pierwszą daną z linii DATA. Przy drugim kolejną itd. Gdy użyje się więcej razy niż jest danych to wyskoczy błąd więc trzeba uważać. Jak się domyślam jest jakiś wskaznik który element należy odczytać. Można było jakoś ten wskaźnuk przestawiać i odczytać konkretny element ale już dokładnie nie pamiętam jak. Może przez READ z parametrem w nawiasie? Trzeba by sięgnąć do literatury.

    A dźwięk pyka bo w liniach data masz parametry wysokości dźwięku a nie głośności.

    Sprawdziłem. Ustawianie linijki DATA z której nastąpi odczyt ustawia się instrukcją RESTORE. POKE 182,N zaś ustawia wskaźnik odczytu na element N.

    Polecam lekturę Poradnika Programisty Atari
    ->link<-
    • 12: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    bardzo dziękuję:)
    • 13: CommentAuthorbaton
    • CommentTime14 Mar 2021
     
    a jak nam tak dobrze idzie jeszcze jedno: dyskietka.atr z włączonym basicem ładuje się tak:

    ready
    poke 842,12:run"nazwa.bas"

    jak zmienić ten "autorun" na inny tytuł? [dos2.5]
    • 14: CommentAuthorBelzebub
    • CommentTime15 Mar 2021
     
    To i ja się przyłącze skoro temat o muzyczkach w Basic-u ;)
    Kiedyś dawno temu za dzieciaka miałem takie muzyczki na Atari zrobione w Basicu
    Nie byłem ich autorem i nie pamiętam kto był ale było ich całkiem sporo
    Czy na AOL znajdę gdzieś takie do pobrania?
    • 15: CommentAuthormono
    • CommentTime15 Mar 2021 zmieniony
     
    Autorem tych rzeczy był często Kemal Ezcan.

    Edit: Co pamiętam:
    - Amorada
    - Digi Loo
    - Beverly Hills Cop (IMHO najlepsza wersja gliniarza jaką kiedykolwiek zrobiono na Atari, i jeszcze wersja Tomka Liebicha w demie Axel),
    - Oxygene
    • 16: CommentAuthormrroman
    • CommentTime15 Mar 2021 zmieniony
     
    @mono: Rzeczywiście super wersja Beverly Hills Cop. Nie widziałem jej w ASMA. Ciekawe czy dałoby się tam dołączać jakoś muzyczki w Basicu.

    Niezłe, że to wszystko działa bez kawałka kodu w asmie. Ale trochę lepiej wyrabia na Altirra Basic :).
    • 17: CommentAuthorBelzebub
    • CommentTime15 Mar 2021
     
    No pamiętam BHC i Axel F
    Była też Prząśniczka czy jakoś tak ogółem miałem tych myzyczek kilka
    • 18: CommentAuthorpirx
    • CommentTime15 Mar 2021 zmieniony
     
    z muzyczkami w basicu jest problemik w asma, ale teraz będzie łatwiej - kiedyś zrobiłem dla Mikera 2 muzyczki Kuby H. z basica do wrzucenia do asmy - Miker zgrał z altirry sap type-r a ja napisałem programik, który to depakował i odgrywał.
    Teraz jest zdaje się jakiś toolkit do kompresji i releasów sap type-r, więc możnaby szybko stare basicowe utworki pozgrywać.
    • 19: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    • 20: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    jeszcze jedna
    • 21: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    kurcze, coś te pliki nie działają, już nie pamiętam, ale mam działające
    • 22: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    celebrate
    • 23: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    sweet dreamz
    • 24:
       
      CommentAuthorjhusak
    • CommentTime15 Mar 2021
     
    @pirx, to axel2 fałszuje, jest coś z basami źle...
    • 25: CommentAuthorpirx
    • CommentTime15 Mar 2021
     
    Panie, ja nie wiem, nie znam się, to zrzut z altirry, tylko wrzucam to w pętli do pokeya :]