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 17:03
       
      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 17:03 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 17:03
       
      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 17:03 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 17:03
       
      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 18:03
       
      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 18:03
       
      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 18:03
       
      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 18:03 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 20:03 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 21:03
       
      bardzo dziękuję:)
      • 13: CommentAuthorbaton
      • CommentTime14 Mar 2021 21:03
       
      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 09:03
       
      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 10:03 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 11:03 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 14:03
       
      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 15:03 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 16:03
       
      • 20:
         
        CommentAuthorpirx
      • CommentTime15 Mar 2021 16:03
       
      jeszcze jedna
      • 21:
         
        CommentAuthorpirx
      • CommentTime15 Mar 2021 16:03
       
      kurcze, coś te pliki nie działają, już nie pamiętam, ale mam działające
      • 22:
         
        CommentAuthorpirx
      • CommentTime15 Mar 2021 16:03
       
      celebrate
      • 23:
         
        CommentAuthorpirx
      • CommentTime15 Mar 2021 16:03
       
      sweet dreamz
      • 24:
         
        CommentAuthorjhusak
      • CommentTime15 Mar 2021 22:03
       
      @pirx, to axel2 fałszuje, jest coś z basami źle...
      • 25:
         
        CommentAuthorpirx
      • CommentTime15 Mar 2021 22:03
       
      Panie, ja nie wiem, nie znam się, to zrzut z altirry, tylko wrzucam to w pętli do pokeya :]