Welcome, Guest. Please login or register.


Author Topic: Zeneprogramozás (Read 145764 times)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #825 on: 2017.July.26. 21:56:09 »
A ST-vel írt zenéket belelehet tenni mindenféle különösebb átírás nélkül egy EP játékba ?
Szerintem lejátszót kell írni hozzá. Ez talán különösebben nem lehet bonyolult, ha ismerjük a zenei fájl felépítését. Hogy teljesen ugyanúgy le tudja-e játszani, mint a CPC-s program, azt nem tudom.
A MusicBox-hoz is készült külön lejátszó, szóval biztos ehhez is lehetne írni.
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

Offline geco

  • EP addict
  • *
  • Posts: 5027
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Zeneprogramozás
« Reply #826 on: 2017.July.27. 08:42:38 »
Szerintem lejátszót kell írni hozzá. Ez talán különösebben nem lehet bonyolult, ha ismerjük a zenei fájl felépítését. Hogy teljesen ugyanúgy le tudja-e játszani, mint a CPC-s program, azt nem tudom.
A MusicBox-hoz is készült külön lejátszó, szóval biztos ehhez is lehetne írni.
Szerintem van is hozzá CPC-re, István AY emulátorát kell beépíteni, vagyis nem ilyen egyszerű a helyzet, az ST-vel készült zenéket vagy befordított a lejátszó kódot tartalmazó fájl formájában, vagy a CPC-re írt zeneszerkeszőben lejátszhatók, 2 megoldás van, vagy minden befordított zenébe betenni az AY emulációt, vagy kiszedni a lejátszót a zeneszerkesztőből.

Offline endi

  • EP addict
  • *
  • Posts: 6710
  • 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 59.0.3071.115 Chrome 59.0.3071.115
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #827 on: 2017.July.28. 12:23:36 »
tovább fejlesztettem a random zene generátort tegnap este, hát, ebben nagy lehetőségek vannak.
csak hát itt is előjön a kérdés, hogy mennyire komolyra érdemes megírni? mert a lehetőségek végtelenek. de ügye időm sok nincs rá, plusz a szórakozás szintjén kéne megmaradnia... csak hát a kísértés... :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #828 on: 2017.July.30. 19:27:49 »
Még jó 20-25 éve raktam össze ezt, ami inkább vicc, mint zene. Egy mix akart lenni, minden elképzelhető és elképzelhetetlen dalból van pár másodperc részlet benne, még saját szerzemények is.
Eredetileg a Xorgame zenéje kapcsán jutott eszembe. Talán logikai játékoknál szoktak mixeket berakni a háttérben. De ahhoz a játékhoz nem tudom, mennyire illene. Egyszólamú csak az egész. Hátha valamire jó lesz, esetleg lehet majd folytatni is, ha van rá igény.
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

Offline endi

  • EP addict
  • *
  • Posts: 6710
  • 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 59.0.3071.115 Chrome 59.0.3071.115
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #829 on: 2017.July.31. 18:33:27 »
mi az a .sou?
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #830 on: 2017.July.31. 23:27:07 »
mi az a .sou?
Csak kitaláltam valami kiterjesztést anno a fájlnak (akkor még nem volt jelentősége). De sima basic program. Mondjuk tényleg félrevezető, hogy így felraktam ide, erre nem gondoltam.
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

Offline endi

  • EP addict
  • *
  • Posts: 6710
  • 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 59.0.3071.115 Chrome 59.0.3071.115
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #831 on: 2017.July.31. 23:46:05 »
Csak kitaláltam valami kiterjesztést anno a fájlnak (akkor még nem volt jelentősége). De sima basic program. Mondjuk tényleg félrevezető, hogy így felraktam ide, erre nem gondoltam.

aha, meghallgattam, tök jó a hangzás
de ez itt off, hacsak nem random generáltad :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #832 on: 2017.August.01. 13:41:43 »
de ez itt off
Nem off, direkt a zeneprogramozásba tettem, nem a randomos topikba.
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

Offline endi

  • EP addict
  • *
  • Posts: 6710
  • 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 59.0.3071.115 Chrome 59.0.3071.115
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #833 on: 2017.August.01. 14:27:11 »
Nem off, direkt a zeneprogramozásba tettem, nem a randomos topikba.

ja tényleg :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #834 on: 2017.August.08. 22:56:30 »
Érdekes ötletem lett. Másik topikban is említettem: a zongora sztereó hangjának utánzásaként minél mélyebb a hang, annál inkább balról, és minél magasabb, annál inkább jobbról szól. Megpróbáltam ezt megvalósítani. A PITCH értéke 0 és 127 közötti lehet, és a LEFT ill RIGHT értéke 0 és 255 közötti. Így nem nehéz némi szorzással és kivonással megoldani a zongora-hatást.

Viszont a 127-es pitch érték olyan magas, hogy nem is hallatszik már. Talán olyan 80-90 felett nem is érdemes már pitch értéket használni (torzítás és egyebek nélkül, tehát alapesetben), mert nem hallatszik. Így a legmagasabb hang, ami leginkább jobbról szól, nem a 127 kéne, hogy legyen, hanem olyan 80 felett akármilyen magas már, az szólhatna teljesen jobbról.
Ezt nem is nehéz megcsinálni:
Code: [Select]
 105 LET W=4
  120 RESTORE
  130 DO
  140   READ IF MISSING EXIT DO:G,G1,H
  150   LET L1=255-G*W:LET R1=G*W
  155   IF L1<0 THEN LET L1=0
  156   IF L1>255 THEN LET L1=255
  157   IF R1<0 THEN LET R1=0
  158   IF R1>255 THEN LET R1=255
  160   LET L2=255-G1*W:LET R2=G1*W
  165   IF L2<0 THEN LET L2=0
  166   IF L2>255 THEN LET L2=255
  167   IF R2<0 THEN LET R2=0
  168   IF R2>255 THEN LET R2=255
  170   IF G=127 THEN LET L1=0:LET R1=0 ! Ez azért kell, mert a 127-es hangmagasság a szünetet jelzi.
  180   IF G1=127 THEN LET L2=0:LET R2=0 ! Lásd fent.
  190   SOUND PITCH G,DURATION H,SOURCE 1,SYNC 1,ENVELOPE 2,LEFT L1,RIGHT R1
  200   SOUND PITCH G1,DURATION H,SYNC 1,ENVELOPE 2,LEFT L2,RIGHT R2
  210 LOOP
A W változóban minél nagyobb számot adunk meg, annál kevésbé kell a hangnak magasnak lennie, hogy teljesen jobbról szóljon. Olyan túlzottan nem észrevehető a változás az eredeti Dreamland című szerzeményben így. Az elejére betettem pár hangot, egyre magasabb hangok jönnek egymás után, majd egyre mélyebbek, így könnyen letesztelhető a sztereó hatás:
* stereo play1.ep128s (43.69 kB - downloaded 27 times.)

Még azt lenne jó megcsinálni, hogy ne a 0 PITCH érték szóljon teljesen balról, hanem mondjuk már 20 körül is. Merthogy kevés zene van EP-re, amely ennyire tág hangterjedelmet használ, és amúgy sem szólnak szépen már a nagyon mély hangok. Igazából a szerzemény hangterjedelmétől függően kéne talán belőni, melyik hangnál szóljon teljesen balról, és melyik hangnál teljesen jobbról.
Hogy kevésbé magas hang is már teljesen jobbról szóljon, azt W-vel való szorzással lehet megoldani. De azt hogy lehet ezen felül beírni, hogy a kevésbé mély hang is már teljesen balról szóljon?

Ezzel a módszerrel szerintem elég jó sztereó, EP-s hatást lehetne elérni akár többcsatornás, nagyobb hangterjedelmű zenékben! Ki lehetne találni talán más algoritmusokat is, amik a hangmagasságból kiszámolnak valami értéket, hogy a sztereó térben hol szólaljon meg a hang. Zozónak a Stereo demo zenéje tetszett nagyon a sajátos sztereó hangzása miatt. Persze minden egyes hanghoz megadni a left és right értékeket eléggé macerás, jobb lenne erre valami olyan eljárás, amit itt írtam.
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

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13026
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #835 on: 2017.August.08. 23:11:54 »
Nem rossz effekt!
Ahogy írod, a zene tartományához kéne egy kicsit jobban belőni.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4706
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Zeneprogramozás
« Reply #836 on: 2017.August.08. 23:24:39 »
Hogy kevésbé magas hang is már teljesen jobbról szóljon, azt W-vel való szorzással lehet megoldani. De azt hogy lehet ezen felül beírni, hogy a kevésbé mély hang is már teljesen balról szóljon?

r = (pitch - pitch_min) * 255 / (pitch_max - pitch_min)
if r < 0 then r = 0
if r > 255 then r = 255
l = 255 - r

Lineáris helyett cos() és sin() függvények (0 és PI/2 közötti tartományban) elvileg jobbak lennének, így ugyanis a két csatorna együttes teljesítménye konstans lenne.

Quote
Ezzel a módszerrel szerintem elég jó sztereó, EP-s hatást lehetne elérni akár többcsatornás, nagyobb hangterjedelmű zenékben! Ki lehetne találni talán más algoritmusokat is, amik a hangmagasságból kiszámolnak valami értéket, hogy a sztereó térben hol szólaljon meg a hang.

mod() függvénnyel egyszerűen megoldható, hogy ne a teljes terjedelem alatt mozduljon el balról jobbra, hanem ismétlődve.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #837 on: 2017.August.09. 01:25:27 »
István módszerével megcsináltam jobban. A pmin és pmax változókban lehet megadni, mely pitch értékeknél legyen a legjobban bal ill. jobb oldalon a hang. Nem tudom, nem túlzás-e a most megadott 25 és 55. Írtam még a Dreamland elé pár hangot (nem biztos, hogy illik is hozzá), amiknél jól előjön a jobb- és baloldali "pártállás": az egyik s szólam balról (mély hangok), a másik jobbról (magas hangok) indul:
* stereo play2.ep128s (43.55 kB - downloaded 30 times.)

A sin és cos függvénnyel hogyan lenne a képlet? És a mod függvénnyel? Ezeket nem értem.
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

Offline IstvanV

  • EP addict
  • *
  • Posts: 4706
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Zeneprogramozás
« Reply #838 on: 2017.August.09. 10:08:24 »
A sin és cos függvénnyel hogyan lenne a képlet? És a mod függvénnyel?

Valami ilyesmi:
* stereo3.bas (8.34 kB. 56x33 - viewed 49 times.)

Indításkor táblázatokat készít, ami meglehetősen lassú.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7281
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #839 on: 2017.August.09. 11:20:08 »
Valami ilyesmi:
Nem rossz, néha kicsit talán zavaró, hogy a két csatorna túl messze kerül egymástól a sztereó térben. Amikor csak az egyiken van hang, akkor nem baj, ha messze van a másiktól. Én fejhallgatón hallgattam, hangszóróból biztos természetesebb.

Ennek mi a lényege? Milyen elv alapján határozza meg, melyik hang honnan szóljon? Elsőre arra számítottam, a szinusz/koszinusz függvény szerint "hullámozni" fog a hang balról jobbra, jobbról balra.

Quote
Indításkor táblázatokat készít, ami meglehetősen lassú.
Ha gépi kódú játékokba rakunk be így előállított zenéket, akkor nem gond, ha lassan indul a lejátszás.
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