ENTERPRISE KLUB
2019. szeptember 7., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: Zeneprogramozás (Read 171825 times)

Offline Lacika

  • EP addict
  • *
  • Posts: 2927
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
    • http://www.ep128.hu
Re: Zeneprogramozás
« Reply #885 on: 2018.April.19. 23:35:37 »
Laci kérésére sziréna és robbanás hangok. Az előbbiben ott az elmaradhatatlan gyűrűmoduláció is. Főleg az utóbbit talán meg lehetne jobban is csinálni.

Kösz! Beleraktam a Nielson Papers c. játékba.

Offline endi

  • EP addict
  • *
  • Posts: 7166
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #886 on: 2018.April.28. 21:52:31 »
érdekesség, elég nagy divat ilyen 8 bites chiptune verziót csinálni mindenféle zenének.
van teljes iron maiden album is pl.
de most egy olyat találtam ami ilyen nagyon extrém metál: https://youtu.be/T00dq34IwZo
ez az eredetije: https://youtu.be/O9FGHtIlJA4
Vigyázat! Szektás vagyok! :)

Online szipucsu

  • EP addict
  • *
  • Posts: 7888
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #887 on: 2018.April.28. 22:13:44 »
érdekesség, elég nagy divat ilyen 8 bites chiptune verziót csinálni mindenféle zenének.
Gondoltam már, hogy lehetne valami rock zenét megcsinálni EP-re az alacsony torzításos gyűrűmodulációs gitárhanggal. Egyik lengyel fórumtársunk írt egy rockos számot, az jól hangzott vele. Ezen kívül csak az I love rock and roll és a Smoke on the Water van meg EP-n, ha jól emlékszem. Nem tudom, mit lenne érdemes megpróbálni megcsinálni. (Vagy eleve EP-re írni zenét a rockos hangzással.)
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Online szipucsu

  • EP addict
  • *
  • Posts: 7888
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #888 on: 2018.May.07. 13:57:36 »
Nem tudom, ki mennyire tudja fejből, hogy az egyes basic STYLE értékek hogyan is hangzanak. Elkezdtem összeállítani egy gyűjteményt, ahol meg is lehet hallgatni a különböző STYLE értékek hangzását, egyelőre a saját weboldalamon. Most még csak a zajcsatornával vagyok meg, azzal a részével, ahol a frekvencia fix.
Nem tudom, ilyenre van-e igény egyáltalán, nekem jól fog jönni. Ha van valami EP-s oldal, ahol van online hanglejátszó, át lehetne majd oda tenni. A hangokat az emulátorból veszem fel hozzá, a midiplay segítségével.

Fura egyébként, hogy a zajcsatornán (SOURCE 3) a 17 (STYLE 0) és 15 (STYLE 4) bites polinom számláló szinte teljesen ugyanúgy hangzik. Ez direkt lehet így? Összehasonlítgattam annak a hangzását is, amikor egy másik csatorna adja a hangmagasságot, itt is szinte az összes polinomszámlálós változat ugyanúgy hangzik, a magasabb hangok kicsit jobban eltérnek.

Arra lennék még kíváncsi, hogy változtatható hangmagasságnál (másik Dave csatorna által) a zajcsatornán csupa olyan hangzások érhetők-e el, amiket valamelyik Dave csatorna is elő tudna állítani önmagában a STYLE paraméterrel, vagy a zajcsatorna elő tud-e állítani olyan hangzást, amit sima négyszögjel torzítás nem tudna. Nekem egyik zajcsatornás frekvenciaváltoztatós-polinomszámáló-változtatós érték sem tűnik egyedinek. István, erről mit gondolsz? (Csak mert ha a négyszögjeles csatornák is elő tudják állítani torzítással, amit a zajcsatorna a módosított frekvenciákkal, akkor sok esetben felesleges két csatornát lefoglalni hozzá, amikor egyet is lehet. Akkor lenne ez hasznos, ha amúgy mind a 3 csatorna foglalt, és pont olyan hangmagasság van az egyiken, ami jól jön a zajcsatornához is. Endinek volt valami zenéje, ahol az egyik csatornán csak azért volt 0 hangerejű hang, hogy a zajcsatornának adja a frekvenciát.)

Az is érdekes, hogy alapból 31.25kHz a zajcsatorna frekvenciája, ami nagyobb, mint amit egy kísérő Dave csatorna segítségével lehetne a zajcsatornán előállítani. A legmagasabb PITCH érték 127, ez a 10. oktávban egy G hang, és ez  nekem mélyebbnek tűnt, mint amikor 31.25kHz-en szól a zajcsatorna. Érdekes, hogy miért így csinálták meg, hogy ne lehessen a legmagasabb hangról fokozatosan "lefele menni".
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Online Tomato77

  • EP fan
  • *
  • Posts: 208
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: Zeneprogramozás
« Reply #889 on: 2018.May.17. 19:20:03 »
Sziasztok!

Hangbéli kérdésem lenne. Ha egy játékban dallamot szeretnék lejátszani, hogyan kell akadás nélkül csinálni? Ha elkezdem kiküldeni az escape szekvenciákat, előbb-utóbb betelik a puffer, és akkor megakad a program. Néztem a 13-as EXOS változót, de azzal se jutottam előrébb. Ha 8-as EXOS funkcióval (blokk írás) küldöm a SOUND: csatorna felé az adatokat, az A regiszterben lévő státusz alapján se tudtam megállapítani, hogy sikerült-e vagy sem. Valószínűleg azért, mert sikerült, csak közben megakad a program... Valahogy le tudom kérdezni, hogy befér-e még oda egy hang vagy sem? A játékokban ezt hogyan csinálják? Köszönöm előre is! Már csak ezt kéne megoldani, és akkor hétvégén fel tudnám tölteni, hogy mivel ügyködtem C-ben.
Kotasoft

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Zeneprogramozás
« Reply #890 on: 2018.May.17. 19:24:30 »
Ha a WAIT_SND változó megfelelően van beállítva, akkor nem várakozik, hanem hibát jelez, hogy megtelt a puffer.

Online Tomato77

  • EP fan
  • *
  • Posts: 208
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: Zeneprogramozás
« Reply #891 on: 2018.May.17. 19:29:29 »
Tényleg, műxik! :) Köszönöm! Beépítem a programba, lassan elkészül.
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 7166
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #892 on: 2018.May.17. 19:30:39 »
szerintem ezt úgy lehet megoldani, hogy tudod a hosszát a zenének (időben), és akkor indítod el újra (küldöd ki újra az esc-eket) amikor az idő letellt.
ha hosszú a zene és nem fér a bufferbe akkor darabokban kell ezt megcsinálni.
esetleg ha egy nagy zene újraindítása megakasztja a játékot, akkor elve kis darabokat kell küldözgetni. de itt is számolni kell azzal hogy megfelelő időközönként küldjünk, hogy sose telljen be a puffer.
azzal sokat nem érsz, ha a megtellt puffert vizsgálod, hiszen ha már megtellt akkor már baj van...
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Zeneprogramozás
« Reply #893 on: 2018.May.17. 19:38:11 »
Az nem probléma, ha megtelik, csak újra kell próbálkozni később amikor megint van szabad hely. Az EXOS 8 hívás visszaadja a sikeresen elküldött adat méretét, ezért a program meg tudja állapítani, hol kell folytatni a lejátszást, és amíg a puffer nem üres, a zene nem akad el.

Online Tomato77

  • EP fan
  • *
  • Posts: 208
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: Zeneprogramozás
« Reply #894 on: 2018.May.17. 20:39:00 »
Endi: az nem jó, ha az időt nézem, mert lehetetlen századmásodpercre pontosan időzíteni, meddig tart a dallam részlet, vagy meddig fut a program. Melyik része ér el előbb oda, hogy betelik a puffer vagy kéne már neki az újabb hang... Meg az bonyolultabb is lenne, így is alig fértem bele C-ben a 16K-ba. Valamiért ennél nagyobb programnál lefagy, láthatóan felülír valamit. István módszere bevált, benne is van már a programban. Még egy-két pálya kell, de ahhoz majd a lányom segítségére van szükségem. Szerintem holnap feltöltöm.

István, neked pedig már jövök legalább egy rekesz sörrel, vagy amit szeretsz, annyi infót adtál. :)
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 7166
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #895 on: 2018.May.17. 20:42:19 »
szólamonként van puffer? ezt nem is tudtam.
Vigyázat! Szektás vagyok! :)

Online Tomato77

  • EP fan
  • *
  • Posts: 208
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
Re: Zeneprogramozás
« Reply #896 on: 2018.May.17. 20:50:10 »
Ilyet nem írtam. :) Részletekben küldi a hangokat a SOUND: csatornára, aztán ha nem sikerül, az utolsó hangot újra próbálja.
Kotasoft

Offline endi

  • EP addict
  • *
  • Posts: 7166
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 65.0.3325.181 Chrome 65.0.3325.181
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #897 on: 2018.May.17. 21:04:57 »
Ilyet nem írtam. :) Részletekben küldi a hangokat a SOUND: csatornára, aztán ha nem sikerül, az utolsó hangot újra próbálja.

aha. azért kíváncsi lennék hogy ilyen bonyolultabb zenékkel jó-e: https://youtu.be/jg2vVI3uSV0
na persze ilyeneket nem érdemes lejátszani játék alatt, mert akár felére is lassítják a rendszert!
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Zeneprogramozás
« Reply #898 on: 2018.May.17. 21:14:16 »
Meg az bonyolultabb is lenne, így is alig fértem bele C-ben a 16K-ba. Valamiért ennél nagyobb programnál lefagy, láthatóan felülír valamit.

Ha ez z88dk, akkor az enterprise_crt0.asm-ben lehet a hiba itt:
Code: ZiLOG Z80 Assembler
  1. ; Inspired by the DizzyLord loader by ORKSOFT
  2.         ;di
  3.         ld    a, 004h
  4.         out   (0bfh), a
  5.         ld    sp, 07F00h
  6.         ld    a, 0ffh
  7.         out   (0b2h), a
  8.  
  9.         ld    c, 060h
  10.         rst   30h
  11.         defb  0

Egy lehetséges javítás a fenti részlet helyett, nem próbáltam ki, hogy működik-e:
Code: ZiLOG Z80 Assembler
  1.         ld    sp, 0100h
  2.         ld    a, 0ffh
  3.         out   (0b2h), a
  4.         ld    hl, (0bffdh)
  5.         in    a, (0b0h)
  6.         ld    b, a
  7.         in    a, (0b1h)
  8.         cp    l
  9.         jr    z, nopg1alloc
  10.         cp    b
  11.         jp    nz, warmreset
  12.         rst   30h
  13.         defb  24
  14.         jp    nz, warmreset
  15.         ld    a, c
  16.         out   (0b1h), a
  17. nopg1alloc:
  18.         ld    sp, 7f00h

Online Tomato77

  • EP fan
  • *
  • Posts: 208
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 66.0.3359.181 Chrome 66.0.3359.181
    • View Profile
Re: Zeneprogramozás
« Reply #899 on: 2018.May.17. 23:00:50 »
Ha ez z88dk

Igen, Z88DK-val fordítok. Kipróbáltam, működik. Próbaképp egy tömböt jól megnöveltem, 19K-s kódot fordított és rendben elindult. Mit össze módosítgattam és fordítgattam a programot, hogy pár 10 bájtot nyerjek... Innentől kezdve bármit meg lehet írni. :)
Kotasoft