Welcome, Guest. Please login or register.


Author Topic: Zeneprogramozás (Read 410557 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #180 on: 2011.September.06. 15:33:39 »
Szipucsu! Te nem indulsz a pályázaton? :-)
[ Guests cannot view attachments ]
Egyelõre ennyi.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #181 on: 2011.September.07. 10:33:27 »
(Attachment Link)
Egyelõre ennyi.
Ügyes!
Nekem még soha nem sikerült ezekkel a sound, envelopse, stb  utasításokkal értékelhetõ hangeffektet csinálni  :oops: , te meg pillanatok alatt elõállsz egy polifonikus csengõhanggal!

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #182 on: 2011.September.13. 10:30:38 »
Még néhány próbálkozás.
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
A snapshotokban az elsõ szám a torzítás mértékét jelzi, a másik meg h hány félhanggal lett magasabb az egész dallam.

Ez a 16-os torzításos dolog érdekes. Kellemes a hangzása, és dallam (nem csak hangeffekt) lejátszására is alkalmas. Viszont idõnként nem egész számokat kell PITCH-nek megadni, hanem pl. 0.1, 0.2-vel többet, különben értékelhetetlen lesz a hang megszólalása. Pontosabban nem értékelhetetlen, hanem teljesen más hangszínû, hangzású lesz. Ezek a más hangzások is jól felhasználhatók lennének valamire, akár hangeffekteknek, akár zenében, de ezek "kielemzésével" talán még senki sem foglalkozott. Vagy igen, csak én nem tudok róla? Tudtommal semmilyen EP program nem használja ki ezeket a hangzásokat. És nem érthetõ, a gép tervezõi miért úgy oldották meg (gondolom, idõ hiánya, gyorsan piacra kellett dobni az EP-t), hogy ne az egész számmal jelölt hangoknak legyen azonos a hangzása. Lehetne 16-os torzításkor az egész számoknak emilyen hangzása, a 0.1-gyel nagyobbaknak másmilyen, stb.

Valószínû nem lesz belõle gyõztes csengõhang, de feltehetek egy Enterprise 128k Nokia Tune címû remixet, hátha így többen felfigyelnek erre a gépre.  :ds_icon_cheesygrin:
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #183 on: 2011.September.13. 11:26:41 »
A gépkönyvben azt írják, hogy a 3-as hangcsatornán (zajcsatorna) a STYLE 64 felüláteresztõ szûrõt használ a 0. csatornához. Nálam a STYLE 64-nek nincs hatása, ahogy próbálkozom. (A style 32, az aluláteresztõ szûrõ a 2. csatornával viszont mûködik, legalábbis más a style 0-hoz képest.) Elképzelhetõ, hogy valahol (talán Enterpressben?) lehetett olvasni már errõl?

Más. Talán az elõzõ hozzászólásomban említett "egész számok problémája 16-os torzításnál" jelenség miatt nem nagyon van EP-s dallam 16-os torzítással. Itt egy régebbi szerzeményem: [ Guests cannot view attachments ] Maga a dallam nem túl érdekes, inkább a hangzás. A lejátszó ciklusban megfigyelhetõ, hogy a G és a H hangot el kell hangolni 0.084 ill. 0.284 értékkel, hogy ugyanazt a hangzást kapjuk, mint a többi hangnál. Itt most konkrétan a G és H hangokról van szó, az véletlen, hogy pont ezzel a változóval jelöltem a hangokat. Pontosabban a PITCH 56 és a PITCH 58 értékét kellett ebben a programban módosítani. Nem értem, miért kellett az egyik csatornán az 56-ot 56.084-re, a másikon pedig 56.284-re módosítani, miért nem lehetett egységesen 56.084. (Megtévesztõ, hogy az összeadás után ad hozzá még 24-et a hangmagassághoz, hogy 2 oktávval magasabb legyen, lusta voltam, így oldottam meg anno.)
« Last Edit: 2011.September.13. 14:57:58 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #184 on: 2011.September.15. 12:21:45 »
Felraktam: Enterprise 128k Nokia Tune
Nem hiszem, hogy sok szavazatot kap, de talán többen ellátogatnak ennek hatására az oldalra.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #185 on: 2011.September.15. 20:36:37 »
Ahogy látom, nem túl nagy az érdeklõdés a EP hangkeltési bonyodalmai iránt, de azért még egy érdekesség:
Pusztán a HOLD billentyû (PC-n emulátoron Pause/Break alapbeállításon) nyomogatásától megváltozik a háttérben szóló hang színezete, de attól is, ha egy "click-képes" billentyût sokáig lenyomva tartunk. A HOLD akkor is hatásos, ha a click ki van kapcsolva: [ Guests cannot view attachments ] Ez azért elég furcsa.
« Last Edit: 2011.September.15. 20:44:51 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #186 on: 2011.September.15. 20:50:18 »
Ahogy látom, nem túl nagy az érdeklõdés a EP hangkeltési bonyodalmai iránt,
Magam részérõl csak ámulok, az én tudásom kimerül a paraméter nélküli SOUND és PING utasításokban  :oops:

Quote
Pusztán a HOLD billentyû (PC-n emulátoron Pause/Break alapbeállításon) nyomogatásától megváltozik a háttérben szóló hang színezete, de attól is, ha egy "click-képes" billentyût sokáig lenyomva tartunk. A HOLD akkor is hatásos, ha a click ki van kapcsolva: (Attachment Link) Ez azért elég furcsa.
Érdekes... valódi gépen is így van?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #187 on: 2011.September.15. 21:18:05 »
Érdekes... valódi gépen is így van?
Úgy rémlik, ott is sikerült valami hasonlót elõidézni.

Arra mi lehet a magyarázat, hogy pl. a SOUND PITCH 36.94,STYLE 16-nak van egy bizonyos hangzása, a PITCH 36.93-mal egyáltalán semmit nem hallani, és pl. a PITCH 37-tel megint másképp szól? STYLE 32-vel és STYLE 48-cal ez nem tapasztalható, csak STYLE 16-tal. Ha pl. a köv. programot nézzük, 16-os STYLE értékkel "szaggatott" lesz a hang, 32-vel, 48-cal, 0-val folyamatos.

100 FOR A=1 TO 127 STEP .1
110   SOUND PITCH A,STYLE (16 vagy valami más),INTERRUPT
120 NEXT

Direkt tervezték így a Dave-t, vagy ez valami bug lehet? (Gondolom, a Dave lehet a felelõs érte.)

Érdekes az is, hogy a lejátszás vége felé (amikor a PITCH 80-100 körül van) "belassul" a lejátszás, azaz több egymás melletti PITCH értékhez ugyanaz a hangmagasság tartozik, STYLE 16,32,48 mellett is (persze csak úgy, ha 0.1-gyel növeljük folyamatosan a PITCH értékét). Ezt minden torzítás nélkül is lehet érzékelni, akkor talán kb. 80 környékén jön ez elõ, és kb. 99-nél magasabb hang nem hallatszik. Emulátoron próbálkoztam, de talán igazi gépen is így lehet. Egyébként halvány emlékeim szerint mintha C +4-en is több lenne a mély hang, mint a magas az ilyen ciklusos próbálkozásokkor.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Zeneprogramozás
« Reply #188 on: 2011.September.16. 12:38:39 »
Magam részérõl csak ámulok, az én tudásom kimerül a paraméter nélküli SOUND és PING utasításokban  :oops:
Érdekes... valódi gépen is így van?

Igen. A jelenség megértéséhez azt kell tudni, hogy a DAVE "polinom számláló torzítása" fix 250 kHz frekvencián futó álvéletlenszám-generátorok mintavételezését jelenti (lásd itt). Tehát a STYLE 16 például a 4 bites generátort használja, amelynek a kimenete egy 2^4-1, azaz 15 hosszúságú fix bitsorozatot ismétel, minden bitet 1/250000 másodpercig lejátszva, azaz a teljes sorozat 15/250000 másodpercenként ismétlődik. A snapshotban a hanggenerátor frekvencia paraméter 1CAh (ezt a debuggerben egyszerűen meg lehet nézni), ami 250000 / (1CAh + 1), azaz 250000 / 459 Hz-es mintavételezést jelent. Tehát van egy végtelenített 15 bites sorozat, amelyből a hanggenerátor minden 459. állapotot mintavételezi, és az lesz az új kimenet. Mivel a 459 (3 * 3 * 3 * 17) és 15 (3 * 5) legnagyobb közös osztója 3, ezért a 15 bites mintából valójában csak minden harmadik bit fordul elő a kimeneten, azaz csak 15 / 3 = 5 bit lesz a lejátszott minta hossza. Az azonban, hogy ez melyik 5 bit a 15-ből, az "véletlenszerű", és a hanggenerátor és a polinom számláló aktuális fázisától függ, ami változhat az ugyanazt a csatornát használó KEY CLICK miatt. Ha a mintavételezés gyakorisága 15 egész számú többszöröse, akkor csak egy érték ismétlődik, tehát gyakorlatilag nincs hang.
Az 5 és 7 bites számlálóknál nincsenek ilyen "rövid" sorozatok, mert a 31 és a 127 is prím szám. De 31 illetve 127 többszöröseinél ilyenkor sincs hang.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Zeneprogramozás
« Reply #189 on: 2011.September.16. 13:01:59 »
Arra mi lehet a magyarázat, hogy pl. a SOUND PITCH 36.94,STYLE 16-nak van egy bizonyos hangzása, a PITCH 36.93-mal egyáltalán semmit nem hallani, és pl. a PITCH 37-tel megint másképp szól? STYLE 32-vel és STYLE 48-cal ez nem tapasztalható, csak STYLE 16-tal.

Ugyanaz az oka, amit az előbb leírtam. :)

Quote
Érdekes az is, hogy a lejátszás vége felé (amikor a PITCH 80-100 körül van) "belassul" a lejátszás, azaz több egymás melletti PITCH értékhez ugyanaz a hangmagasság tartozik, STYLE 16,32,48 mellett is (persze csak úgy, ha 0.1-gyel növeljük folyamatosan a PITCH értékét). Ezt minden torzítás nélkül is lehet érzékelni, akkor talán kb. 80 környékén jön ez elõ, és kb. 99-nél magasabb hang nem hallatszik. Emulátoron próbálkoztam, de talán igazi gépen is így lehet. Egyébként halvány emlékeim szerint mintha C +4-en is több lenne a mély hang, mint a magas az ilyen ciklusos próbálkozásokkor.

Ez azért van, mert a DAVE csak olyan frekvenciájú négyszögjeleket állít elő, amelyek így számíthatók:
  f = 125000 / N        (Hz, N egész szám, 2 <= N <= 4096)
A Plus/4 hasonló, csak ott 110840.47-et kell osztani, és legfeljebb 1024-el (tehát az a gép nem tud annyira mély hangokat előállítani, mint az EP).
A fenti képletből látható, hogy a magasabb frekvenciájú hangoknál csökken a felbontás, például:
  N = 10 (12500 Hz), 11 (11363.6 Hz): 12 * log(11 / 10) / log(2) = 1.65 félhang eltérés
  N = 1000 (125 Hz), 1001 (124.88 Hz): 12 * log(1001 / 1000) / log(2) = 0.017 félhang

Csak a teljesség kedvéért néhány további képlet:
  PITCH -> frekvencia
    f = 440 * 2 ^ ((P - 46) / 12)        (Hz, P=46 a normál "A" hang (440 Hz))
  frekvencia -> N (lásd fent)
    N = int(125000 / f + 0.5)        (int(x) az x egész része)
  DAVE hanggenerátor frekvencia kód
    F = N - 1
  polinom számláló mintavételezési frekvencia
    fPC = 250000 / N
« Last Edit: 2011.September.16. 13:14:31 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #190 on: 2011.September.16. 13:12:57 »
Köszönjük a magyarázatot!

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Zeneprogramozás
« Reply #191 on: 2011.September.16. 17:44:21 »
Nem semmi, köszi a magyarázatot. Sajnos kicsit magas nekem, de azért jó tudni kb. az okát.
Azt valami képlettel ki lehet számolni, hogy mely hangoknak van "normális" hangja STYLE 16-nál? Vagy összeállítani egy listát, hogy mely hangnak milyen a hangzása, melyik nem szól, stb.? (Ha csak hallás után lehet, akkor majd egyszer talán megcsinálom.)
És ez direkt van így megcsinálva, vagy ez egy bug? Mert sztem kicsit fura, hogy pl. a SOUND PITCH 50,STYLE 16 nem ad hangot. Nehéz is lett volna a Dave-et megcsinálni úgy, hogy ne ilyen legyen? Más 8 bites gépeknél is így van ez, vagy más gépeknél nincs is háromféle torzítás?

Még egy érdekesség: [ Guests cannot view attachments ] Ebben a programban a joystickkal lehet külön-külön a 0. és a 2. csatornán az egyszerre szóló hang magasságát módosítani. A két csatornán 16-os torzítás van és gyûrûmodulációval össze vannak kötve. Szerintem olyan hangzásokat lehet így kiadatni a géppel, amit eddig talán még nem nagyon hallottunk az EP-bõl. Legalábbis én elég soká jöttem rá, hogy alacsony torzítás mellé gyûrûmodulációt is bedobjak. Nem olyan különös hangzások ezek, de nem emlékeszem, hogy valamelyik program használna ilyeneket. A "normálisabb" hangzásokat talán össze lehetne írni, hátha késõbb fel lehet majd használni valamilyen játékban...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Zeneprogramozás
« Reply #192 on: 2011.September.16. 18:05:15 »
Azt valami képlettel ki lehet számolni, hogy mely hangoknak van "normális" hangja STYLE 16-nál?

Igen, a fent leírt módon számítható N alapján lehet eldönteni:
  - ha osztható 15-el, akkor nincs hang (a kimenet folyamatosan 0 vagy 1)
  - ha 3-al osztható, akkor 15 helyett csak 5 lesz az ismétlődő bitsorozat hossza
  - ha 5-el osztható, akkor 15 helyett csak 3 lesz az ismétlődő bitsorozat hossza, de azt hiszem, 33% valószínűséggel az is előfordulhat, hogy nincs hang
  - ha nem osztható 3-al és 5-el sem, akkor a teljes, 15 bites sorozat az eredmény (azonban a frekvencia változása "megkeverheti" a bitek sorrendjét, tehát kissé változhat a hang)

5 bites számlálónál (STYLE 32) csak a 31-el való oszthatóságot kell ellenőrizni, amely esetben nincs hang, 7 bitesnél (STYLE 48) pedig a 127-el osztható N eredményezi a "hibát".

A torzított hang frekvenciája így változik a négyszögjelhez képest:
  - 4 bites, N osztható 3-al: f / 2.5 (egy oktávval és 4 félhanggal mélyebb)
  - 4 bites. N osztható 5-el: f / 1.5 (7 félhanggal mélyebb)
  - 4 bites, N nem osztható 3-al és 5-el sem: f / 7.5 (2 oktávval és 11 félhanggal mélyebb)
  - 5 bites: f / 15.5
  - 7 bites: f / 63.5

Quote
És ez direkt van így megcsinálva, vagy ez egy bug?

Valószínűleg direkt, de nem azért, mert ez zeneileg előnyös valamilyen módon, hanem mert így egyszerűbb/olcsóbb lehetett az áramkör. :)

Quote
Mert sztem kicsit fura, hogy pl. a SOUND PITCH 50,STYLE 16 nem ad hangot.

A fenti képletek alapján:
  f = 554.365 Hz
  N = 225 (= 3 * 3 * 5 * 5)
Mivel N osztható 15-el, nincs hang.

Quote
Más 8 bites gépeknél is így van ez, vagy más gépeknél nincs is háromféle torzítás?

Kifejezetten ugyanilyen (frekvenciától függően változó hangú) torzításról, mint amilyen EP-n van, nem tudok, de csak néhány 8 bites gépet ismerek :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Zeneprogramozás
« Reply #193 on: 2011.September.16. 18:14:35 »
Vagy összeállítani egy listát, hogy mely hangnak milyen a hangzása, melyik nem szól, stb.? (Ha csak hallás után lehet, akkor majd egyszer talán megcsinálom.)

A BASIC PITCH esetében egészen biztosan csak kipróbálással lehet tudni, mert néha előfordulhat, hogy nem pontosan konvertál a kerekítési hiba miatt.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #194 on: 2011.September.16. 20:20:22 »
Nem olyan különös hangzások ezek, de nem emlékeszem, hogy valamelyik program használna ilyeneket.
Nekem erõs a gyanúm, hogy ezeket az extra Dave képességeket egyetlen egy program se használja ki :-(

Quote
A "normálisabb" hangzásokat talán össze lehetne írni, hátha késõbb fel lehet majd használni valamilyen játékban...
Így elsõ hallásra egész jó robbanás vagy motorhangokat lehetne kihozni ebbõl.

Gondoltam már arra, hogy kéne egy olyan program, amivel a Dave összes hangparaméterét lehetne állítgatni, és azzal egy zenéhez értõ ember (Pl. Szipucsu :-) ) kikísérletezhetne jó kis hangzásokat.
Én már ezeken a kis BASIC programokon is csodálkozom, hogy miket lehet kihozni!