Welcome, Guest. Please login or register.


Author Topic: MIDI (Read 46219 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #90 on: 2017.August.17. 00:42:58 »
Nem gondolom, hogy a midiplay-vel lenne gond. Az emulátor újraindítása után annak jónak kéne lennie, mert elölről kezdi a futását.

Ha a hiba csak bizonyos MIDI adatnál jelentkezik, de megismételhetően, akkor még lehet midiplay.com bug. Azért gyanítom ennek a lehetőségét, mert Windowson loopMIDI-s tesztelésnél már előfordult, hogy bizonyos hangok (például csak az A#, vagy hajlítás közben csak egy-egy pillanatra) magassága teljesen rossz lett, mintha a program a frekvencia táblázatba szemetelt volna. Ilyennek hibás bemenetnél sem lenne szabad előfordulnia.

Quote
A Xorgame-hez a Slowland.mid-ben elfér a két csatornára két külön midi hangszer is, vagy ugyanaz kéne mindkettőbe?

Ha csak azokat a hangszereket használja, amelyek már most is megtalálhatók a játékban (Torzy, Freeee, Dreamland bal és jobb csatorna), akkor lehet külön hangszer is. Egyébként már a dobok is elfogyasztanák a maradék 1.1 másodperc burkológörbe területet, valószínűleg a legjobb lenne egyszerűen növelni a méretét és módosítani a lejátszó rutint.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #91 on: 2017.August.17. 14:26:06 »
Lehet a teljes MIDI formátum lenne az igazi, akkor midiként is lejátszható lenne, igaz a mérete is nagyobb lenne, vagy arra gondoltál, hogy az ep-re írt midit lebutítani direkt a lejátszóhoz? Ha igen, ez a legszimpatikusabb :)

A file konvertálás már működik, bár lehet, hogy még bugos. Ez az eredeti file:
* slowland4.mid (5.26 kB - downloaded 60 times.)
konvertálva ilyen lett:
* mididata.bin (3.93 kB - downloaded 60 times.)
A megszakítás frekvenciája állítható konvertáláskor. A formátum hasonló a szabványoshoz, csak fejléc nélkül. Lehetne hatékonyabb is, például az események között 0 időtartamot 1 byte helyett csak 1 biten tárolva.

Módosított midiplay.com változat, amely le tudja játszani a mididata.bin-t:
* midiplay.com (5.05 kB. 39x20 - viewed 61 times.)

Offline nyuzga

  • EP addict
  • *
  • Posts: 1954
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
Re: MIDI
« Reply #92 on: 2017.August.17. 16:30:11 »
Módosított midiplay.com változat, amely le tudja játszani a mididata.bin-t:

Szépen szól. :)

Offline nyuzga

  • EP addict
  • *
  • Posts: 1954
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 54.0 Firefox 54.0
    • View Profile
Re: MIDI
« Reply #93 on: 2017.August.17. 17:15:16 »
3 zene, ami átalakítás nélkül is szépen szól.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 60.0.3112.90 Chrome 60.0.3112.90
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: MIDI
« Reply #94 on: 2017.August.17. 17:25:15 »
konvertálva ilyen lett:
Jól működik!
Hogyan lehet midi fájlt így átkonvertálni?
A Slowlandon kicsit módosítottam, talán végleges verzió:
* slowlan5.mid (3.75 kB - downloaded 25 times.)

Az envelope, látom a freeee fedőnevű zenéből van hozzá. Ezt az envelope-t meg lehetne változtatni a következőre? A Slowland-ban egyes (főleg mélyebb) hangok tovább kéne, hogy szóljanak, de mivel rövid az envelope, előbb lecsengenek. Ezért kicsit jó lenne megnyújtani a végét:
ENVELOPE NUMBER 1;0,63,63,3;0,0,0,5;0,-63,0,5;0,60,-63,5;0,-60,60,5;0,57,-60,5;0,-57,57,5;0,55,-57,5;0,-55,55,5;0,50,-55,5;0,-50,10,40;0,0,-10,20
(A freeee-ben ennek nincs jelentősége, mert ott nincsenek túl hosszú hangok.)
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: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #95 on: 2017.August.17. 17:31:43 »
Felhasználó által definiálható burkológörbék, ez is még hibás lehet:
* mididata.bin (3.93 kB - downloaded 57 times.)
* envelope.txt (1.12 kB - downloaded 60 times.)

Az envelope.txt formátuma talán nagyjából érthető a file alapján, egy "hangszer" definíciója így néz ki:

HANGSZER {
  IDŐTARTAM, BAL, JOBB, HAJLÍTÁS, TORZÍTÁS;
  ...
}


Több hangszer is használhatja ugyanazt a burkológörbét, több számot megadva vesszővel elválasztva. A hangszer száma vagy 0 és 127 közötti a normál csatornákhoz, vagy -1 és -127 közötti a dobokhoz.

Az időtartam (ami video megszakítás egységekben adható meg, 0 esetén a paraméterek változása azonnali) előtt az 'S' karakter azt jelenti, hogy az adott szegmens kezdete "sustain" pozíció, ahonnan a lejátszó csak a billentyű elengedésekor lép tovább. Ennek doboknál nincs értelme.

Az EXOS-tól eltérően a hangerők abszolút értékek 0 és 63 között, azt adják meg, hogy mi lesz az új hangerő a következő szegmens elején, amit lineáris interpolációval ér el. Lehetőség van azonban exponenciális burkológörbék definiálására is, ha a hangerő érték előtt '*' karakter található, akkor a megadott szám / 128-al szorzódik a hangerő minden megszakításnál. Tehát például *96 esetén 0.75 a szorzó, *128-nál nem változik a hangerő, stb. A hajlítás egy -128 és +127 közötti egész, 64 felel meg egy zenei félhangnak. Itt is lineáris interpoláció történik (szerk.: ebben a verzióban ez bugos), és a megadott értéket a következő szegmens elejére éri el. Dobokat nem lehet hajlítani.

A torzítás (STYLE) a többi paraméterrel ellentétben nem interpolálható, hanem az értéke azonnal módosul, erre figyelni kell ha változik a hang közben.

Szóközök, Tab karakterek és új sorok tetszőlegesen használhatók, a program ezeket figyelmen kívül hagyja. '#' karakter esetén a sor további részét megjegyzésnek tekinti és szintén figyelmen kívül hagyja.
« Last Edit: 2017.August.17. 17:44:58 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #96 on: 2017.August.17. 17:33:05 »
Hogyan lehet midi fájlt így átkonvertálni?

A konvertáló programot hamarosan kiadom, illetve készítek valós idejű midiplay verziót a szöveges burkológörbe formátum támogatásával.

Szerk.: a hajlítás és a frekvencia táblázat hibája javítva:
* midiplay.com (5.8 kB. 39x23 - viewed 61 times.)
« Last Edit: 2017.August.17. 17:59:53 by IstvanV »

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • 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: MIDI
« Reply #97 on: 2017.August.17. 17:41:44 »
A konvertáló programot hamarosan kiadom, illetve készítek valós idejű midiplay verziót a szöveges burkológörbe formátum támogatásával.

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

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #98 on: 2017.August.17. 18:31:42 »
A file konvertáló program, amint említettem, könnyen előfordulhat, hogy még hibás: :oops:
* midiconv.zip (269.97 kB - downloaded 71 times.)

A használata:
midiconv INFILE.MID OUTFILE.BIN [IRQFREQ]

Alapértelmezés szerint az IRQFREQ 50.0363 Hz. Ha a zene tempója 125 vagy 150 BPM, vagy más érték ahol a negyedhangok időtartama 20 ms pontos többszöröse, akkor célszerűbb lehet 50-re állítani.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 60.0.3112.90 Chrome 60.0.3112.90
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: MIDI
« Reply #99 on: 2017.August.17. 20:53:19 »
A file konvertáló program, amint említettem, könnyen előfordulhat, hogy még hibás
Látszólag működik.
* 4boci.bin (7.84 kB - downloaded 29 times.)
* livideo.bin (8.95 kB - downloaded 30 times.)

UI: Teszek fel snapshotot az egyikről, hogy könnyebb legyen megnyitni. Kicsit félkész még:
* Livideo1.ep128s (48.49 kB - downloaded 35 times.)
« Last Edit: 2017.August.17. 21:02:26 by szipucsu »
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: 6754
  • 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: MIDI
« Reply #100 on: 2017.August.17. 21:22:55 »
durva :)
nyitva az út a tök jó mid zenék konvertálásához
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #101 on: 2017.August.17. 22:29:30 »
* midiplay.zip (21.06 kB - downloaded 60 times.)

Nem sokat teszteltem, de elvileg ezeket tudja:
- burkológörbe definíciók az envelope.txt alapján (a csomagban található file csak egy példa, a hangszereket még át kell írni ilyen formátumra vagy újakat készíteni, és ez még rossz is, mert a hajlítás tesztelésére használtam :))
- mididata.bin használata ha létezik ilyen file, egyébként valós idejű bemenetre vár a MIDI portról
- néhány EP billentyű használható vezérlésre:
F1: a program újraindítása, újraolvassa az envelope.txt-t és (ha van) a mididata.bin-t
F4: minden hang kikapcsolása, hasznos "beragadt" hang esetén
F6: teljes MIDI reset, a vezérlőket, hajlítást és hangszereket is alaphelyzetbe állítja
F8: kilépés

Szerk.: a frissített és javított envelope.txt file itt található.
« Last Edit: 2017.August.18. 13:04:56 by IstvanV »

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: MIDI
« Reply #102 on: 2017.August.17. 23:13:00 »
Sajnos túl nagy lett a fájl, nem akarta lejátszani, így a végét külön csináltam meg:
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: 6754
  • 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: MIDI
« Reply #103 on: 2017.August.17. 23:15:51 »
Sajnos túl nagy lett a fájl, nem akarta lejátszani, így a végét külön csináltam meg:

mondjuk ezek tök unalmasak, valami érdekesebbet és érdekesebb hangzásút konvertáljatok, érdekes envelope-okkal :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: MIDI
« Reply #104 on: 2017.August.18. 10:16:27 »
Sajnos túl nagy lett a fájl, nem akarta lejátszani, így a végét külön csináltam meg:

A maximális file méretet még lehetne növelni, jelenleg ez 16K az envelope.txt és a mididata.bin számára is (ugyanazt a puffert használják, az utóbbi felülírja a szöveges burkológörbe adatot a konvertálása után), és 8K a lefordított bináris burkológörbe adatnak (1 másodperc burkológörbe = 200 byte 50 Hz-es megszakításnál, tehát 40 másodpercnek van hely). Van még ~20K kihasználatlan memória, ebből lehetnének nagyobb pufferek, de valamennyit az esetleges későbbi fejlesztésekre is fenn kell tartani.
« Last Edit: 2017.August.18. 10:21:15 by IstvanV »