Welcome, Guest. Please login or register.


Author Topic: MIDI (Read 400129 times)

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #840 on: 2018.August.05. 13:12:11 »
nem semmi vagy!

akkor jól értem, hogy ez a .com fájl nem a MIDI-t játsza le, hanem a kimentett DAVE regisztereket? (és ezáltal gondolom kevesebb CPU-t is használ?)
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: MIDI
« Reply #841 on: 2018.August.05. 13:12:44 »
akkor jól értem, hogy ez a .com fájl nem a MIDI-t játsza le, hanem a kimentett DAVE regisztereket? (és ezáltal gondolom kevesebb CPU-t is használ?)

Igen.

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #842 on: 2018.August.05. 13:13:20 »
A forráskóddal kapcsolatban talán említést érdemel még, hogy hogyan lehet az asm lejátszó rutint más programban használni (ha nem is tűnik valószínűnek, hogy lesz ilyen). Ehhez csak az .s kiterjesztésű file-okra van szükség a loader.s kivételével, és a dave_play rutint kell hívni 50 Hz-es megszakításban. Ez hívja a midi_port_read változóban tárolt című rutint a bemenet (file vagy port) olvasására, és frissíti az összes DAVE hang regisztert. A DAVE regiszterek írása tulajdonképpen lehetne az elején is, így ugyan nagyobb a késés (ami file lejátszásnál nem probléma), viszont egyenletesebb az időzítés.

Inicialzáláskor a dave_init hozza létre a frekvencia és egyéb táblázatokat, a midi_reset pedig a MIDI csatornák állapotát hozza alaphelyzetbe. File lejátszáshoz a következőkre van szükség:
* a burkológörbe adat (envelope.bin) a midi_pgm_layer2-től kezdődő területre legyen betöltve, a MIDI adat (fejléc nélküli mididata.bin) pedig a file_buf-ba
* a midi_port_read a midi_read_file-ra mutasson (csak file lejátszást tudó programnál ez akár lehet fix cím is, a port olvasó rutin pedig törölhető)
* file pozíció és egyéb változók beállítása:
- midi_file_buf = file_buf
- midi_file_end = file_buf + adat mérete
- midi_file_ptr = file_buf
- midi_delta_time = 0
- midi_prv_status = 0
A csatornaüzeneteket feldolgozó rutinok (pl. midi_note_on) külön is hívhatók 50 Hz-es megszakításban, így például használhatók effektusok lejátszására.

Ezt a leírást találtam a fórumban. Az itt leírtak még mindig érvényesek? (letöltöttem, nézegettem a forrásokat, de még nem volt időm játszani vele)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #843 on: 2018.August.05. 13:19:30 »
használható lenne helyette a midiconv is -render módban, de ahhoz kellene az eredeti MIDI file és envelope.txt

bocs, még egy hülye kérdés... :oops: (annó nem igazán követtem a MIDI player-es topic-ot)

akkor ezek szerint normál MIDI-ből (nyilván lebutítva max 3+1 szólamra, ugye?) és az envelope.txt-vel tudok DAVE zenét gyártani?

Ha jól látom, a lejátszója meg eléggé egyszerű kis music box player szerű cucc, amit 50Hz-es megszakításban hívok.

(Hú, ezekből kéne valami jó kis step-by-step leírás, ha lesz időm, és kitapasztaltam, lehet, h megírom)
« Last Edit: 2018.October.21. 21:20:24 by szipucsu, Reason: Rosszul beszúrt idézet javítása »
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: MIDI
« Reply #844 on: 2018.August.05. 13:34:09 »
Ezt a leírást találtam a fórumban. Az itt leírtak még mindig érvényesek? (letöltöttem, nézegettem a forrásokat, de még nem volt időm játszani vele)

A leírásban említett változók és rutinok továbbra is ugyanazok az aktuális verzióban.

akkor ezek szerint normál MIDI-ből (nyilván lebutítva max 3+1 szólamra, ugye?) és az envelope.txt-vel tudok DAVE zenét gyártani?

Igen. A daveconv4 bemenete pedig bármilyen DAVE zene lehet, például BASIC programról készült felvétel is, de a formátum korlátai miatt túl bonyolult burkológörbék esetén sikertelen lehet a konverzió. Az optimális paraméterek megtalálása kísérletezést igényel. Azonban ha működik ez a módszer, akkor hatékonyabb mint a teljes MIDI lejátszó beépítése.

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #845 on: 2018.August.05. 13:53:45 »
Na, olló és cellux segítségével elkészült a 0. verziója a Nyan cat-nak: :-)

Zene: Szipucsu
zenelejátszó és konverter: Istvan
LPT: geco
kép: youtube-ról, amit a kollégám szedett ki frame-enként.
video szegmens kereső rutin pedig Zozótól (azt hiszem a "namivan" címke örökké beleégett minden EP forrás kódba :-))

lehetne még tömöríteni (zenét és frame-eket is), meg lehetne variálni a zenén, hogy az intro ne ismétlődjön többet, vagyis talán két külön MIDI-be kéne vágni az eredetit, egy csak az intro-t tartalmazza, a másik pedig a maradékot, ami mehet végtelen ciklusban)

kéne még valami scrollozó szöveg, vagy valami... aztán mehetne Árok partira, a C+4 verzió a 2. lett :-) mondjuk abban digi hang volt :-)

szerk.: talán még kéne plusz egy halt a frame-ek között, úgy nem lóbálja olyan gyorsan a farkát :-)
« Last Edit: 2018.August.05. 14:15:25 by Povi »
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 7069
  • Country: hu
    • Támogató Támogató
Re: MIDI
« Reply #846 on: 2018.August.05. 14:36:52 »
szerk.: talán még kéne plusz egy halt a frame-ek között, úgy nem lóbálja olyan gyorsan a farkát :-)
Az szerintem jó lenne, leteszteltem, 3-mal sztem ideális, 4-gyel meg már lassú.
Én még variálnék annyit, ha még szeretnél beletenni valamit, ami CPU igényesebb, hogy betölteném az összes frame-et az FC-FE szegmensre, FF szegmens elején lenne az LPT (0400h byte, az még bőven belefér az EXOS határba), és akkor LPT update-tel kéne csak a címeket váltani, sőt a lapozás is megszűnne.
Az LPT update kevesebb, mint 1% CPU-t fogyasztana, szemben a mostani kb 90%-kal a kirajzoló frame-ben.
Esetleg még azt is meglehetne csinálni, hogy valami rövid feliratot néha bevillantasz a képre, ide-oda, mondjuk a POVI-t, vagy ha benevezed az Árokra, akkor AROK 2019-et :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: MIDI
« Reply #847 on: 2018.August.05. 15:00:18 »
neten van amúgy 1k-s javascript nyan kód :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: MIDI
« Reply #848 on: 2018.August.05. 15:40:57 »
(használható lenne helyette a midiconv is -render módban, de ahhoz kellene az eredeti MIDI file és envelope.txt :oops:)
Itt megvan az is.
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: MIDI
« Reply #849 on: 2018.August.05. 16:39:50 »
Itt megvan az is.

Ebből így készíthető nyancat.bin (ez 0.22 másodperccel hosszabb, ami valószínűleg szünet a zene végén):

midiconv NYANCAT1.MID nyancat.bin envelope.txt -render

Ilyenkor is használható a -quant és egyéb paraméterek.

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1286
  • Country: hu
  • Stray cat from Commodore alley
Re: MIDI
« Reply #850 on: 2018.August.05. 17:27:53 »
Na, olló és cellux segítségével elkészült a 0. verziója a Nyan cat-nak: :-)
Emulátorban milyen konfigurációval próbálkozzak vele? Eddig FileIO-ssal próbáltam, de csak a keretet csíkozza.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: MIDI
« Reply #851 on: 2018.August.05. 19:17:38 »
talán még kéne plusz egy halt a frame-ek között, úgy nem lóbálja olyan gyorsan a farkát :-)
Jó lett ez, talán tényleg kicsit lehetne lassítani az animáción!
Akkor majd kettészedem a midit.
Nekem elindult epfileIO.rom-mal. (exos21.rom és basic21.rom volt még bent)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1286
  • Country: hu
  • Stray cat from Commodore alley
Re: MIDI
« Reply #852 on: 2018.August.05. 19:55:35 »
Elfelejtettem beállítani a working directory-t. :facepalm:

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #853 on: 2018.August.05. 21:48:53 »
Jó lett ez, talán tényleg kicsit lehetne lassítani az animáción!
Akkor majd kettészedem a midit.
Itt a lasított anim (3 halt a frame-k között), ezen szinte pont ritmusra lóbálja a farkát! :-) (csak a .com fájl, a frames.all kell neki továbbra is)

Akkor majd kettészedem a midit.

Ó, az tök jó lenne! Azt néztem (hallgattam), hogy a szerkezet a következő:
intro - A - B - A - vége

ezt kéne úgy kettészedni, hogy:
1., intro
2., A - B

innentől utána úgyis a 2. menne végtelen ciklusban, szóval fölösleges a visszatérés, és a végén lévő lezáró ütem se kell :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 2287
  • Country: hu
    • http://povi.fw.hu
Re: MIDI
« Reply #854 on: 2018.August.06. 10:23:06 »
egyébként az jutott eszembe (mint lehetséges probléma) a MIDI kettévágása miatt:

hogy vajon hogyan lehet megállítani a zenét? (hogy ne ismételje végtelenségig az intrót, hanem csak egyszer játssza le?)
megállítani bárhol gondolom úgy lehet, hogy a megszakítási rutinból törlöm a musicPlay hívást, de hogy tudom azt beállítani, hogy ne loop-oljon?

és ezután hogyan lehet elindítani a 2. MIDI-t? Átírom a musicData, envelopeData, noteParamTable stb. értékeit, és hívok egy új musicInit-et, majd engedélyezem a megszakítást?
*** Speicherplatz zu klein