26

kolejne modyfikacje.

do uzytku samplowanych SFX mamy 3 kanaly F1,F2,F4 (Atari nie ma sprzetowego licznika IRQ dla F3)
kazdy kanal moze grac sample z inna czestotliwoscia
oczywiscie caly czas mamy dostep do pozostalych kanalow dla SFX

przyklad odtwarzania SFX z International Karate na jednm kanale a na drugim jedoczesnie Jingiel z Preliminary Monty

Post's attachments

sound_engine-sample.obx 2.67 kb, liczba pobrań: 15 (od 2021-06-05) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

27

SFX_ENGINE moze takze odtwarzac sample w 3 oktawach. jakby ktos chcial pisac takze muze ;-)


w przykladzie na jednym kanale idzie oktawa na gitarze a na drugin jiniel z Preliminaty monty

Post's attachments

sound_engine-st.obx 5.57 kb, liczba pobrań: 16 (od 2021-06-05) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

28

synteza mowy

Post's attachments

sound_engine_speak.obx 2.43 kb, liczba pobrań: 20 (od 2021-06-07) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

29

Uuuu drogi Panie. Piękne! Napisz coś więcej może jak tej syntezy używać i jak to działa może. I może więcej niż jest na atariage. Bardzo dobra funkcja!

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

30

A ja to chciałem sobie zobaczyć co tu zachwalacie, ale z całego wątku ani jeden przykład mi się nie uruchamia pod Altirrą. Odpalam obeiksa i mam tylko pyknięcie w głośnikach i ciszę. W niektórych przykładach miga trochę biały pasek na ramkach... Altirra 3.90, wszystko inne pod nią mi działa.
Ma ktoś pomysła co to może oznaczać?

31

Mq, nacisnij klawisz "1"

---

jeszcze troche zmienie... ale:

synteze mowy mozna zrobic w 256 bajtach ale to bedzie straszna bieda - mozna tego posluchac w demku ktore zrobilem na atari 2600. https://www.youtube.com/watch?v=ASXzDhAA814

wspominam to bo na tej zasadzie mozna robic szeleszczace tony ale nie dzwieczne co zreszta slychac w tym demie ;-)

w tej syntezie tak sa zrealizowane "szeleszczace" dzwieki. a dzwieczne to takie nakladanie "obwiedni" na bardzo uproszczonego sampla ;-)

jak dodam jeszcze 1kb danych to bedzie mozna posluchac wyrazow z nalozona intonacja i akcentami.... chcialbys posluchac jak atari mowi do Ciebie po angielsku z polskim akcentem ? :D no to posluchaj jak mowi po polsku w przykladzie.

opisze to dokladniej jak skoncze - format rozkazu jest podobny do tego z odtwarzania sampla tylko zamiast sampla bedzie wskaznik do "wyrazow"/ tonow. to caly czas tylko test...

Post's attachments

sound_engine-xb.obx 2.48 kb, liczba pobrań: 10 (od 2021-06-07) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

32

O faktycznie działa:-) xxl, skąd wiedziałeś, że trzeba nacisnąć klawisz 1?:-)

33

mono napisał/a:

Uuuu drogi Panie. Piękne! Napisz coś więcej może jak tej syntezy używać i jak to działa może. I może więcej niż jest na atariage. Bardzo dobra funkcja!

tablice niezbedne do dzialania sa tu - oczywiscie nie wszystkie sa potrzebne :D

https://github.com/bit-hack/SAM/blob/ma … der_tabs.h

a wzor na render tu:

https://github.com/bit-hack/SAM      przewin do final output:

A =   A1 * sin ( f1 * t ) +
      A2 * sin ( f2 * t ) +
      A3 * rect( f3 * t )

48087:     LDX 43        ; get phase   
CLC       
LDA 42240,x    ; load sine value (high 4 bits)
ORA TabAmpl1,y    ; get amplitude (in low 4 bits)
TAX       
LDA 42752,x    ; multiplication table
STA 56        ; store

LDX 42        ; get phase
LDA 42240,x    ; load sine value (high 4 bits)
ORA TabAmpl2,y    ; get amplitude (in low 4 bits)
TAX       
LDA 42752,x    ; multiplication table
ADC Var56    ; add with previous values
STA 56        ; and store

LDX 41        ; get phase
LDA 42496,x    ; load rect value (high 4 bits)
ORA TabAmpl3,y    ; get amplitude (in low 4 bits)
TAX       
LDA 42752,x    ; multiplication table
ADC 56        ; add with previous values

ADC #136       
LSR A        ; get highest 4 bits
LSR A       
LSR A       
LSR A       
STA 54296    ;SID   main output command

i taka to tajemnica syntezy mowy ;-)

http://atari.pl/hsc/ad.php?i=1.

34 Ostatnio edytowany przez xxl (2021-06-09 08:37:06)

duzo zmian ...

1. synteza mowy nie bedzie realizowana na irq
2. usuniete tablice ;-) obecnie do syntezy potrzebne sa 2 tablice (mult i sinus) 512 bajtow :-)
3. dzialaja intonacje
4. nie ma konwersji tekstu na gloski - trzeba to zrobic recznie albo uzyc zewnetrznego narzadu np. S.A.M :-) i tak bym to widzial, jak chcesz umiescic tekst w grze to generujesz loski w S.A.M. i przeklejasz do swojego programu a tu juz SFXEngine to wypowie.
5. prawie zgodny z S.A.M - wiem ze prawie robi roznice ale w zalaczniku porownanie w mp3 mam nadzieje serwer AA udzwinie te dwa sekundowe mp3

program syntezy razem z tablicami zajmuje 3 strony pamieci co oznacza ze sama synteza miesci sie w 256 bajtach - mysle ze bardzo ok.

Post's attachments

sam.mp3 32.24 kb, liczba pobrań: 7 (od 2021-06-09) 

sfxengine.mp3 28.98 kb, liczba pobrań: 6 (od 2021-06-09) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

35

xxl napisał/a:

program syntezy razem z tablicami zajmuje 3 strony pamieci co oznacza ze sama synteza miesci sie w 256 bajtach - mysle ze bardzo ok.

Bardzo bardzo ok. A ile zajmują dane tak wypowiadanego tekstu? Np. jak chcesz powiedzieć "xBios"?

36 Ostatnio edytowany przez xxl (2021-06-09 10:35:46)

nie chodzi o dlugosc wyrazu ale o czas - jesli masz wyraz bez intonacji to zajmuje mniej, sekunda to 2 strony pamieci... w sekunde mozesz wypowiedziec kazdy wyraz ;-)

--
jak pieknie sie kompresuja takie pliki... 50%

http://atari.pl/hsc/ad.php?i=1.

37

Ok, fajnie:-)
Pytam, bo myślę w kontekście zrobienia np. gry, która była by w całości udźwiękowiona syntezą mowy. W sensie, że na każdym kroku masz jakieś gadanie, pojedyncze słowa właśnie. Np. odczytywanie wyniku punktów jak się zwiększa, albo każdorazowe tracenie energii w czasie zetknięcia z przeszkadzajką, albo nazwy mijanych obiektów, czy zbieranych przedmiotów. Słowem, żeby gra gadała coś ciągle, ale żeby nadal mogła być napisana na stockowe Atari.

38

Masz jakiś strumieniowy kompresor, który dałoby się zaprząc do takiej syntezy?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

39 Ostatnio edytowany przez xxl (2021-06-09 12:03:09)

@Mono: trzebaby bylo przerobic kolejnosc danych wiec malo realne - komu by sie chcialo (ale daloby sie)

@Mq: tak pieknie to nie jest, zeby byla jako taka jakosc ekran musi byc wylaczony :(

ale mam inny pomysl, mozna wziac dane z S.A.Ma (usunac co niepotrzebne) wywalic tablice do obliczen kolejnych probek i zastapic je prawdziwymi probkami - zajmie to 4x wiecej miejsca ale jakosc syntezy bedzie jak sampling glosu ludzkiego a poza tym mozna to puscic na irq co druga linie ekranu wiec mozesz miec wlaczony ekran. z takiego sampla trzeba by bylo tlumic albo wzmacniac w zaleznosci od danych intonacji (ktore sa, czasy predefiniowane sa procentowo). sadze ze to daloby sie zrobic - przypisac tylko gloski sampli tak samo jak sa w SAMie. ide o zaklad ze te onlienowe syntezatory z ludzkim glosem gdzie wybierasz sobie osobe dokladnie tak to robia.

--
ktos chetny? mozemy zrobic pierwszy syntezator na samplach ludzkieo glosu :-)

--
sprobowalbym jeszcze inneo rozwiazania, nagral sampla z jakiegos PC syntezatora, przerobil na 4 bitowy, odegral obecnym SampleNotePlayerem z SFXEngine na roznych ustawieniach, po znalezieniu wlasciwych mielibysmy dane do zrobienia resamplingu na tym zrodlowym (zawsze kilka % na dlugosci pliku) usunac niepotrzebne dane i poupychac po 2 probki na bajt

ciekawe ile by to zajelo miejsca ale zalet byloby sporo - jednoczesnie moze mowic i np. grac muzka, krotka procka odtwarzania itd..

http://atari.pl/hsc/ad.php?i=1.

40

xxl napisał/a:

i... w sekunde mozesz wypowiedziec kazdy wyraz ;-)

Konstantynopolitańczykiewiczówna .... ufff ... zmęczyłem się w sekundę :)

41 Ostatnio edytowany przez xxl (2021-06-09 21:10:30)

ale napiecie ;-)

zdaje sie juz dwa projekty beda z tego korzystac :-)


LEVEL2 z przykładami na stronie: http://xxl.atari.pl/sfx-engine/

dziwne, ze wystarczy tylko LEVEL2

nikt nie chce sampli odtwarzanych w definiowanej wysokosci, syntezy, adsr, funkcji, pluginow, pokow?


---
LEVEL 1 - wersja minimum opublikowana + kilka przykladow

http://atari.pl/hsc/ad.php?i=1.

42

Możesz wrzucać także na swojego GitHuba?

43 Ostatnio edytowany przez xxl (2021-06-09 22:49:18)

dwie osoby chcialy sprawdzic u siebie ale to nie tak bedzie wygladac - chce zeby to byl jeden kod z kompilacja warunkowa dla Level1/2/3 - moze wtedy, chociaz nie jestem przekonany; w czym przeszkadza Ci Atari.pl :-)

http://atari.pl/hsc/ad.php?i=1.

44

U siebie na stronie masz kod rozstrzelony (pusta linia co wiersz) - dlatego wycinam kod ze źródła html i czyszczę z tagów.

Jeżeli tak Ci się lepiej czyta i tak ma być to OK, ale GitGub nie robi czegoś takiego z kodem, to tego dostawałbym na @, że coś weszło do kodu nowego albo bym widział to na dashboardzie. Lepiej mi się śledzi zmiany za pomocą narzędzia do tego przeznaczonego.

45

poprawione, juz mozesz kopiowac bez kombinowania. :-)

http://atari.pl/hsc/ad.php?i=1.

46

Dzięki :]

47

a moze zrobic taki numer ze sfxengine po integracji z rmt (ale nie takiej jak w pierwszym poscie) podmieni jakis instrument na samplowany?

efekt bylby taki ze RMT moglby uzywac samplowanych instrumentow :-)

http://atari.pl/hsc/ad.php?i=1.

48

To by było chyba fajne. Z miłą chęcią skorzystał bym z możliwości dodania sampli do RMT w jakiś przyjazny, prosty i wygodny sposób dla muzyka/użytkownika/programisty.

49

i prosze. da sie: mam tylko jednego sampla wiec mimo ze tam graja dwa instrumenty RMT na drugim kanale to to ja podkladam ten sam sampel ...

przydalby sie jakis wzor na resampling - mam tylko 3 oktawy przeliczone na nuty a teszta to z glowy ;-)

Post's attachments

sound_engine-rmt.obx 9.98 kb, liczba pobrań: 6 (od 2021-06-10) 

Tylko zalogowani mogą pobierać załączniki.
http://atari.pl/hsc/ad.php?i=1.

50

Kurde, chciałbym tak umieć miksować sample do RMT. Chociażby np. kilka dźwięków perkusyjnych gdyby zastąpić samplami, to by muzyczki były o niebo lepsze nieraz.