Enterprise Forever

:HUN => SOUND: => Topic started by: IstvanV on 2017.October.24. 14:52:37

Title: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 14:52:37
Valamennyire működő SIDBASIC alapú midiplay, valószínűleg még sokat kell javítani, de már van hang:
[attachurl=1]

A helyes működéséhez 10 MHz-es konfigurációra van szükség (CPU frequency = 10000000, Sound clock frequency = 1250000), normál sebességnél kilép az EP logóhoz. Az envelope.txt formátuma az itt (https://enterpriseforever.com/egyeb-temak/mi-az-aminek-meg-meg-kell-szuletnie-ep-n/msg67436/#msg67436) leírt módon változott, a burkológörbe frekvencia elvileg 100 Hz-es, a lejátszás pedig 12626 Hz ha az órajelek jól vannak beállítva. File lejátszás nem támogatott.
Title: Re:Bővített Midiplay
Post by: geco on 2017.October.24. 15:03:50
A bemenete normál EPM file-ok?
Title: Re:Bővített Midiplay
Post by: IstvanV on 2017.October.24. 15:09:30
A bemenete normál EPM file-ok?

Jelenleg csak MIDI port lehet a bemenet, a file puffer helyére kerültek a hangminta táblázatok. :oops: File konvertálásra valószínűleg a midiconv módosított változata lenne használható, amely .mid-ből és envelope.txt-ből M64-et hoz létre.
Title: Re:Bővített Midiplay
Post by: geco on 2017.October.24. 15:16:15
Jelenleg csak MIDI port lehet a bemenet, a file puffer helyére kerültek a hangminta táblázatok. :oops: File konvertálásra valószínűleg a midiconv módosított változata lenne használható, amely .mid-ből és envelope.txt-ből M64-et hoz létre.
Értem, akkor majd mid-del próbálom ki :)
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 17:43:22
Mindjárt letesztelem! Nem lehetne Midiplay helyett valami más nevet adni ennek a programnak? A Midiplay a normál Dave képességeket használó változat. (Lehetne mondjuk mid2play.com, ha jobb ötlet nincs.)

Létrehoztam külön topikot neki.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 18:08:08
Néhány hibát már javítottam:
[attachurl=1]
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 18:27:43
A Wikin elkezdtem írni róla ismertetőt. (https://wiki.enterpriseforever.com/index.php?title=SID-del_b%C5%91v%C3%ADtett_MIDI)
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.24. 18:33:00
Én meg megpróbáltam módosítani a régi envelope Txt-t, de syntax error lett a vége, valaki hozzáértőbb megvizslathatná :)

Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 18:41:45
Én meg megpróbáltam módosítani a régi envelope Txt-t, de syntax error lett a vége, valaki hozzáértőbb megvizslathatná :)
Tipp:
1. A D paraméter nem támogatott, de benne maradt.
2. envelope1.txt helyett envelope.txt név?

Egyébként lehetne más a file neve. Az envelope.txt legyen a régi Dave-es midiplay-hez való, a sid_midi-hez pedig... nem tudom, talán sidenv.txt? És akkor ránézésre is tudjuk, melyik lejátszóhoz való.

Én most egyelőre egyetlen hangszert próbálok beletenni, kíváncsi vagyok, sikerül-e. :D
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 18:48:36
Ez a hangszer pl. működik, az Acoustic Grand Piano-ra tesz be háromszögjelet, aminek a pwm-je a lecsengéssel szépen "eloszlik" elvileg. Szólni szól, csak az egyik oldalról, nyilván két oldalról nem is lehet:

0 {                        # Acoustic Grand Piano
   0, 30, 0, 0, 0;
  35,  0,  0, 255, 0;
}

UI: Közben rájöttem, háromszögjelnél nincs pwm, de majd belejövök. :D De akkor is szólt.
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.24. 19:00:39
Tipp:
1. A D paraméter nem támogatott, de benne maradt.
2. envelope1.txt helyett envelope.txt név?

Egyébként lehetne más a file neve. Az envelope.txt legyen a régi Dave-es midiplay-hez való, a sid_midi-hez pedig... nem tudom, talán sidenv.txt? És akkor ránézésre is tudjuk, melyik lejátszóhoz való.

Én most egyelőre egyetlen hangszert próbálok beletenni, kíváncsi vagyok, sikerül-e. :D
1. jogos :)
2. envelope.txt volt, csak a letöltés mappámban már volt egy, és nem akartam felülcsapni :)
Jó ötlet a más fájlnév, envmidi.txt?
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.24. 19:09:14
Működik a módosított változat, sok köszönetet ne várjatok, a hangerő még jó, ott felztem, de PWM mindenhol 255, és a hullámformák is csak ki lettek cserélgetve, ahol nem 0 volt :D
Érdekesen szól 1-2 mid :D ,a profi envelope.txt-vel meg tuti ütős lesz :)
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 19:16:12
1. A D paraméter nem támogatott, de benne maradt.

Pontosabban a P nem támogatott, a D elvileg igen, ha nem működik, az újabb bug. :oops:
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 19:34:52
Kikísérleteztem néhány hangszert, működnek:

0 {                        # Acoustic Grand Piano (négyszögjel dinamikus pwm, lecseng)
   0, 30, 0, 64, 64;
  50,  0,  0, 0, 64;
}

1 {                        # Bright Acoustic Piano (normál négyszögjel lecseng)
   0, 30, 0, 0, 64;
  50,  0,  0, 0, 64;
}

2 {                        # Electric Grand Piano (háromszögjel lecseng)
   0, 30, 0, 0, 0;
  50,  0,  0, 0, 0;
}

3 {                        # Honky Tonk Piano (fűrészjel lecseng)
   0, 30, 0, 0, 32;
  50,  0,  0, 0, 32;
}

De úgy az igazi, hogy ha miközben a négyszögjel szól, a 74-es vezérlőn arra az időre beállítjuk, hogy az elején 0 legyen az érték, a végén meg 64, és fokozatosan átmegy. Ezt a fenti hangszerek alapján az 1-es hangszerre érdemes kipróbálni.

De megnézem mindjárt Geco envelope-ját.

Még azt vettem észre, hogy a pwm értéke a 74-es vezérlőn pont fordítva működik, mint az envelope.txt-ben. De biztos azért, mert a kettő együtt adja meg, hogy mi szóljon.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 19:39:05
A vezérlőkről bővebben:

74: ezzel a PWM módosítható, 64 (alapértelmezett) esetén a burkológörbe érték változatlan marad, ha 0, akkor -50%, ha 127, akkor pedig valamivel kevesebb mint +50%. Azaz egészen pontosan a ténylegesen használt érték (ENV_PWM + CTL74*2 + 128) & 255.
71, 76: a hullámformát és gyűrűmodulációt állítja: 0 = háromszög, 8 = fűrész, 16 = négyszög, 24 = zaj, +32 = gyűrűmoduláció. A vezérlő és a burkológörbe között XOR művelet történik.
70, 77: csatorna foglalás vezérlése, ez többet tud, de bonyolultabb is mint a DAVE-es lejátszóban. Mind a 7 bit használt:
- b5, b6: az elsőnek próbált (legmagasabb prioritású) csatorna, 0..3
- b2..b4: a másodiknak próbált csatorna (csak akkor foglalja ezt, ha jobb az elsőnél), 0..7
- b0, b1: a harmadiknak próbált csatorna & 3, 0..3 ha a második < 4, 4..7 ha a második >= 4
Az alapértelmezés csatornánként változik:
MIDI csatorna 1: 06h = 00 001 10b = 0, 1, 2
MIDI csatorna 2: 28h = 01 010 00b = 1, 2, 0
MIDI csatorna 3: 41h = 10 000 01b = 2, 0, 1
és ez a minta ismétlődik, kivéve a 10-esnél, ami alapértelmezés szerint mindig a 2-es csatornát használja (4Ah). A 3..7. "SID csatornák" a tényleges fizikai csatornákkal (0-2.) osztva használhatók:
- 0, 4, 6
- 1, 5, 7
- 2, 3
Tehát például az 1-es csatorna osztásához 01 101 11b = 37h = 55 értékre kell állítani a vezérlőt.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 19:52:11
A Dave-en négyszögjelből 3+1 szólhat alapból. A SID-es változatban egyszerre hány hang szólhat maximum?
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 19:56:43
A Dave-en négyszögjelből 3+1 szólhat alapból. A SID-es változatban egyszerre hány hang szólhat maximum?

Csak 3 csatorna, nincs külön a zaj számára. A gyűrűmoduláció az eggyel kisebb számú csatornával történik.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.24. 20:29:32
Próbálgattam a Dave-hez alakított midiket. Sokszor van, hogy nem szól egyszerre a két hang sem (pl. Slowland, még ha a dobokat ki is kapcsoltam). Ennek az eltérő csatornafoglalási módszer lehet az oka? Viszont elkezdtem írni egy új midi fájlt, amiben a hangzásokat próbálgattam, ott szólt egyszerre három hang is, pl. négyszögjelből 2, mellé még valami más hullámforma is. A Slowland-ben most a Tubular Bells hangszernek 0-ás hullámforma (háromszögjel) van beállítva. Lehet, a háromszögjelből csak egy szólhat egyszerre, négyszögjelből több is?

71, 76: a hullámformát és gyűrűmodulációt állítja: 0 = háromszög, 8 = fűrész, 16 = négyszög, 24 = zaj, +32 = gyűrűmoduláció. A vezérlő és a burkológörbe között XOR művelet történik.
A Wikire a tegnapi hozzászólásod alapján a következőt írtam, akkor ez változott, vagy mindkettő jó?
Quote
A hullámforma:
0 háromszögjel
32 fűrészjel
64 négyszögjel
96 zaj
128 hozzáadása engedélyezi a gyűrűmodulációt.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.24. 21:15:39
Próbálgattam a Dave-hez alakított midiket. Sokszor van, hogy nem szól egyszerre a két hang sem (pl. Slowland, még ha a dobokat ki is kapcsoltam).

Ha a MIDI tartalmaz 70/77-es vezérlőt, akkor annak az eltérő értelmezése okozhat ilyen problémát. Az eredetileg alapértelmezett 0 például csak a 0. csatornát használja.

A Wikire a tegnapi hozzászólásod alapján a következőt írtam, akkor ez változott, vagy mindkettő jó?

A vezérlőnél kisebbek az értékek (mint a másik lejátszónál is), mert ott csak 0-127 használható, tehát nem lehet 128 például a gyűrűmoduláció.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.25. 12:17:09
Azt meg lehet csinálni az emulátorban, hogy a sid midihez gyorsított beállítás és a normál beállítás között könnyen lehessen váltani?

Nekem túl halknak tűnik a sid-es verzió a régebbi Dave-es verzióhoz képest.

Gyűrűmoduláció lehet bármely két csatorna között? Tehát pl. négyszögjel és fűrészjel között is?

Quote
b5, b6: az elsőnek próbált (legmagasabb prioritású) csatorna, 0..3
b2..b4: a másodiknak próbált csatorna (csak akkor foglalja ezt, ha jobb az elsőnél), 0..7
b0, b1: a harmadiknak próbált csatorna & 3, 0..3 ha a második < 4, 4..7 ha a második >= 4
Itt a b5, b6, b2 stb. helyett meg tudnád adni a konkrét értékeket? Kicsit magas nekem még ez a bites foglalás.
Title: Re: Bővített Midiplay
Post by: ergoGnomik on 2017.October.25. 12:40:57
Itt a b5, b6, b2 stb. helyett meg tudnád adni a konkrét értékeket? Kicsit magas nekem még ez a bites foglalás.
De hát ezeket te magad is könnyen ki tudnád számolni. A bit száma (b0..b7) a kettes számrendszerbeli kitevőt jelöli, ami meghatározza a helyiértéket. A b0-ban a nulla azt jelenti, hogy 2 a nulladik hatványon értéket jelöl, azaz az 1-et. A b1-ben az egy a 2 az első hatványont, vagyis 2-őt. A B5-ben az öt a 2 ötödik hatványát, 32-őt. Az egymás melletti 2, 3, 4 stb. bit 2 a másodikon (=4), harmadikon (=8), negyediken (=16) stb. elemű tartományt jelöl, amit nullától kezdünk számozni a 2 hatványa minusz egy értékig. Hogy ennek a decimális értékét megkapjad, a tartományba (pl.: 0..7) eső értéket (legyen mondjuk 3) meg kell szorozni a "bitmező" (b6, b5, b4) legalsó helyiértékű bitjének decimális értékével (esetünkben kettő a negyediken, azaz tizenhat), így kapod meg az értéket (48-at). A lehetséges értékek: 0=0, 1=16, 2=32, 3=48, 4=64, 5=80, 6=96, a hetet pedig rád bízom.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.25. 15:48:23
Azt meg lehet csinálni az emulátorban, hogy a sid midihez gyorsított beállítás és a normál beállítás között könnyen lehessen váltani?

A beállítások menthetők "quick configuration"-ként, és utána a Page Up és Page Down billentyűkkel bármikor válthatók. De a következő verzióban megpróbálom továbbfejleszteni a frekvencia tesztet hogy működjön bármilyen DAVE és Z80 órajellel ha az utóbbi elég gyors. Lehetne még nagyobb lejátszási frekvencia is, a 12.6 kHz nem túl jó minőségű (de 4 MHz-es gépen a későbbi M64 file sem lenne jobb), 16 MHz-es Z80 esetén nem lenne probléma a 25 kHz.

Quote
Nekem túl halknak tűnik a sid-es verzió a régebbi Dave-es verzióhoz képest.

Ez lehet, hogy bug, de például a háromszögjel valóban halkabb az azonos amplitúdójú négyszögjelnél. A hangerőt az is csökkenti, hogy csak az egyik oldal (bal vagy jobb) szól.

Quote
Gyűrűmoduláció lehet bármely két csatorna között? Tehát pl. négyszögjel és fűrészjel között is?

Igen. De az eredménye csak akkor igazán helyes, ha a modulátor 50%-os négyszögjel, a modulált csatornán pedig ugyanez vagy háromszögjel szól. Természetesen az effektus hangzása ennek ellenére más esetekben is jó lehet. :)

Quote
Itt a b5, b6, b2 stb. helyett meg tudnád adni a konkrét értékeket? Kicsit magas nekem még ez a bites foglalás.

Az alábbi példák mind 0..127 közötti tartományt tételeznek fel, remélhetőleg nem hibásak:

0: csak a 0. csatorna
37: csak az 1. csatorna
74: csak a 2. csatorna
6: dinamikus foglalás 0, 1, 2 sorrendben
40: dinamikus foglalás 1, 2, 0 sorrendben
65: dinamikus foglalás 2, 0, 1 sorrendben
5: csak a 0. és 1. csatorna
10: csak a 0. és 2. csatorna
42: csak az 1. és 2. csatorna
18: 0. csatorna 50 Hz-en osztva (0, 4, 6)
55: 1. csatorna osztva (1, 5, 7)
79: 2. csatorna osztva (2, 3)
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.25. 20:06:38
a modulátor 50%-os négyszögjel, a modulált csatornán pedig ugyanez vagy háromszögjel szól
Mit jelent az 50%-os négyszögjel? Valamilyen pwm értékre utal?

Quote
18: 0. csatorna 50 Hz-en osztva (0, 4, 6)
55: 1. csatorna osztva (1, 5, 7)
79: 2. csatorna osztva (2, 3)
A zárójelbe tett számok mit jelentenek a sorok végén?

Egyébként miért van itt szükség ilyen sokféle dinamikus foglalásra?

Több kérdésem (egyelőre) nincs. :D

Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.25. 22:32:01
[attachurl=1]

- envelope.txt átnevezve sid_midi.env-re (ez még változhat)
- lejátszási frekvencia állítása a Z80 órajeltől függően: 7-9 MHz: 8 kHz, 9-14 MHz: 12.5 kHz, > 14 MHz: 25 kHz (a pontos értékek kissé eltérhetnek). 7 MHz alatt kilépés
- a hang órajel tetszőleges lehet a szabványos értékek közül, elég csak a Z80-at állítani

Mit jelent az 50%-os négyszögjel? Valamilyen pwm értékre utal?

Egyszerű négyszögjelet 50%-os kitöltési tényezővel, azaz ami például a DAVE hanggenerátoraival általában előállítható.
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.26. 08:52:26
- envelope.txt átnevezve sid_midi.env-re (ez még változhat)
- lejátszási frekvencia állítása a Z80 órajeltől függően: 7-9 MHz: 8 kHz, 9-14 MHz: 12.5 kHz, > 14 MHz: 25 kHz (a pontos értékek kissé eltérhetnek). 7 MHz alatt kilépés
- a hang órajel tetszőleges lehet a szabványos értékek közül, elég csak a Z80-at állítani
Nekem az új envelope név szimpatikus. :)
Ezek szerint a lejátszó frekvenciája nem megszakításvezérelt? :)
Title: Re: Bővített Midiplay
Post by: Zozosoft on 2017.October.26. 09:34:49
7 MHz alatt kilépés
Akkor 7.12-es gép már jó neki?
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.26. 10:48:11
Ezek szerint a lejátszó frekvenciája nem megszakításvezérelt? :)

Megszakításvezérelt, de a frekvenciát a Z80 alapján választja. 100 Hz-es vezérlés nélkül lehetne magasabb is, bár ennek emulátoron zeneszerkesztésnél nincs nagy jelentősége.

Akkor 7.12-es gép már jó neki?

Igen, de valódi gépen jelenleg nem sokra lehet használni MIDI port nélkül.
Title: Re: Bővített Midiplay
Post by: Zozosoft on 2017.October.26. 11:10:09
Igen, de valódi gépen jelenleg nem sokra lehet használni MIDI port nélkül.
De remélem, hogy előbb-utóbb lesznek konvertált fájlból tölthető zenék :oops:
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.26. 11:18:32
De remélem, hogy előbb-utóbb lesznek konvertált fájlból tölthető zenék :oops:

Erre a célra a már meglevő SIDBASIC program lesz használható (akár Spectrumon vagy Plus/4-en is), csak a midiconv-ot kell módosítani hogy M64 formátumra konvertáljon. Az Exorcist zene csomagban már most is található olyan változat, amely DAVE regiszter mentést készít (gyakorlatilag tartalmazza az EP-s lejátszót), ezt kell SID-esíteni.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.26. 21:59:39
A 10-es csatorna itt ugyanolyan, mint a többi? Nincsenek a dobok különleges bánásmódban részesítve? :D
Dobhanghoz a zajcsatornát érdemes használni, vagy lehet kísérletezni a többi hullámformával is dobhangzáshoz? Ha jól sejtem, itt mindennek változtatható a magassága, és ha a 10-es csatornán van valami eredetileg, azt teljesen át kell írni.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.26. 22:53:48
A 10-es csatorna itt is a negatív számú hangszereket használja, mindegyik alapértelmezés szerint "D"-s (ez még változhat), és a hangok magasságát 60-nak (261.63 Hz-es C) tételezi fel, ami a burkológörbében a hajlítással módosítható. A hangok mindig a 2. csatornán szólalnak meg, de ez csak az alapértelmezés, a 70/77-es vezérlővel tetszőlegesen állítható. Bármilyen hullámforma használható a doboknál is.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.27. 12:25:14
Lehetne egy ravasz kér(d)ésem? Ha a pan (10-es vezérlő) úgyse kell, nem lehetne arra betenni a hullámforma állításának lehetőségét? A Cakewalkban nagyon könnyen lehetne akkor a hullámformát állítani. Még jobb lenne, ha a pwm-et is lehetne a 10-es vezérlőn állítani, tehát nem csak azt, hogy négyszögjel legyen, hanem egyúttal a számok meghatároznák a kitöltési tényezőjét is. Emellett persze megmaradhatna a 74, 71, 76 is vezérlőnek.

Én meg megpróbáltam módosítani a régi envelope Txt-t, de syntax error lett a vége, valaki hozzáértőbb megvizslathatná :)
Ezt hogyan csináltad? Egyenként átírtál kézzel mindent, vagy valami egyszerűbb megoldást vetettél be? A régi envelope.txt-ből majd sok hangszert ki lehetne venni, mert sok csak a sztereó hangzásra megy rá.

Nekem kicsit merevnek tűnik ez a C64-es hangzásvilág a Dave-es midizés után, még a sztereó hangzással sem lehet játszani. :D
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.27. 15:11:28
Lehetne egy ravasz kér(d)ésem? Ha a pan (10-es vezérlő) úgyse kell, nem lehetne arra betenni a hullámforma állításának lehetőségét?

Lehetne, csak a vezérlőnek nem az a jól ismert szabványos funkciója. :oops: Bár a 70-77-esnek sem, csak azok kevésbé ismertek/támogatottak, és viszonylag ritkán fordulnak elő nem EP-s MIDI file-okban. Egy vezérlővel egyszerre állítani a hullámformát és a PWM-et is lehetséges lenne, de akkor 4 bitre csökkenne a PWM felbontása.
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.27. 15:41:12
Ezt hogyan csináltad? Egyenként átírtál kézzel mindent, vagy valami egyszerűbb megoldást vetettél be? A régi envelope.txt-ből majd sok hangszert ki lehetne venni, mert sok csak a sztereó hangzásra megy rá.
Nem akarod tudni :D
Egyenként átírtam mindent kézzel, a hangmagasságokat egyenként feleztem, notepad++-ban van egy olyan lehetőség, hogy oszlopot jelölsz ki, ha szerencsém volt, akkor egyszerre több sor tartalmát is tudtam módosítani, vagy beszúrni az 5. értéket :D
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.27. 15:47:25
Lehetne, csak a vezérlőnek nem az a jól ismert szabványos funkciója. :oops: Bár a 70-77-esnek sem, csak azok kevésbé ismertek/támogatottak, és viszonylag ritkán fordulnak elő nem EP-s MIDI file-okban. Egy vezérlővel egyszerre állítani a hullámformát és a PWM-et is lehetséges lenne, de akkor 4 bitre csökkenne a PWM felbontása.
Igazából nem EP-seknek nem kell tudni, miket művelünk a midi fájlokkal. A konvertálásra összekészített midi fájl már úgyse hangzana túl jól normál midi lejátszóval.
A pwm felbontásának a csökkenése mit jelent? Kevesebb átmeneti állapot lenne a teljesen kitöltött és a teljesen kitöltetlen között?
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.27. 16:12:09
Igazából nem EP-seknek nem kell tudni, miket művelünk a midi fájlokkal. A konvertálásra összekészített midi fájl már úgyse hangzana túl jól normál midi lejátszóval.

A probléma az, hogy sok EP-s zene már meglevő (letöltött) MIDI alapján készül, és ezek gyakran tartalmaznak 10-es vezérlőt, akár sáv közepén is. A módosítás után ezek mind elrontanák a hullámformát.

Quote
Kevesebb átmeneti állapot lenne a teljesen kitöltött és a teljesen kitöltetlen között?

Igen.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.28. 12:36:39
A probléma az, hogy sok EP-s zene már meglevő (letöltött) MIDI alapján készül, és ezek gyakran tartalmaznak 10-es vezérlőt, akár sáv közepén is. A módosítás után ezek mind elrontanák a hullámformát.
Szerintem EP-re konvertáláskor úgyis illik törölni az eredeti fájlból a vezérlőbeállítások nagy részét, ami nem kell (a pitch bend és a volume kivételével). Valamelyiket úgy telerakják vezérlőbeállításokkal, hogy az elején, közepén, végén is annyi van, hogy kétszer akkora a midi fájl velük, mint a törlésük után. Ennyiből mindegy, milyen vezérlőket használunk. De ha nagyon zavaró a pan helyén a hullámforma, akkor nem muszáj.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.28. 16:44:46
[attachurl=1]
[attachurl=2]
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.28. 20:14:49
Tök jó lett :)
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.28. 22:26:49
Forrás file-ok az M64-hez:
[attachurl=1]
[attachurl=2]    (ezt elfelejtettem DOS formátumra konvertálni, tehát a Notepad-ben valószínűleg hibás lesz :oops:)
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.28. 22:33:32
Jó lett, érdekes a hangzása! A főszólamra milyen hullámforma van beállítva a 4bociexo-ban? Az envelope-jában mintha változna valami, de nem tudom, mi. (Szerk.: Látom, közben feltetted midiben is, ott meglesem.) Ezt csak a sidbasic játssza le? Itt egy snapshot is:
[attach=1]

A midi2sid.exe hogyan működik? Nekem a midiconv-hoz hasonló módszerrel nem konvertált. (De az .exe kiterjesztés miatt lehet, nem is így kell használni.)
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.28. 22:37:27
Jó lett, érdekes a hangzása! A főszólamra milyen hullámforma van beállítva a 4bociexo-ban?

A 22-es hangszer fűrészjel, a másik kettő PWM-es négyszög.

Ezt csak a sidbasic játssza le?

Igen.

Quote
A midi2sid.exe hogyan működik?

Ugyanúgy használható, mint a midiconv, csak SIDBASIC (.M64) formátumú a kimenete. Azonban kevesebb paramétert támogat, az alábbiakon kívül más használata hibát eredményezhet:

Usage: midi2sid INFILE.MID OUTFILE.M64 ENVELOPE.TXT [OPTIONS]
Options:
    IRQFREQ (Hz, default = 100.072651)
    -quantN (quantize IRQ / quarter note, N = 0 to 9)
    -biasN (N = 0 to 99, default = 25)


Quote
Itt egy snapshot is:

Turbós konfigurációról (itt éppen 12 MHz-es a Z80) készült snapshotot célszerűbb lehet demo (.ep128d) formátumban menteni, az tartalmazza az órajeleket is. :oops:
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.28. 23:09:14
midi2sid INFILE.MID OUTFILE.M64 ENVELOPE.TXT
Most már jó, köszi! Az envelope.bin-nel akartam megetetni először.
De a Sidbasic nem játssza le. Ez miért lehet? Ezzel fordítottam:
midi2sid start2.mid start2.m64 sid_midi.env
[attach=1]
(A "zene" nem túl értelmes, csak próbálkoztam valamivel.)
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.28. 23:48:07
Ez miért lehet?

Bugos a konvertáló program. :oops: A fejlécben (első 16 byte) a 67h-k helyére 0-t kell írni. A 4Boci esetében az eltérő zene adat miatt véletlenül nem volt hibás.

Szerk.: javítva:
[attachurl=1]
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.29. 01:13:38
[attach=1]
[attach=2]
Title: Re: Bővített Midiplay
Post by: geco on 2017.October.29. 07:55:40
Jók lettek a hangszerek benne :)
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.29. 09:52:16
Itt a dobokat likvidáltam, de van, ahol csak két szólam szól egyszerre, ott elférnének.
[attach=1]
[attach=2]
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.29. 10:43:40
Egyébként a SidBasic-es snapshothoz/demóhoz is ilyen magasabb órajel kell? Vagy arra elég a 4MHz is? Inkább csak a sid-midinek kell 12 órajel, azt állítom be alapból.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.29. 10:50:24
Egyébként a SidBasic-es snapshothoz/demóhoz is ilyen magasabb órajel kell? Vagy arra elég a 4MHz is? Inkább csak a sid-midinek kell 12 órajel, azt állítom be alapból.

A SIDBASIC működik 4 MHz-en is, de magasabb órajelen nagyobb lehet a lejátszási frekvencia és így javul a minőség. Túl magas azonban ne legyen, mert romlik a frekvencia konverzió pontossága, azaz egyre hamisabb lesz a hang. De 8-10 MHz jó, ilyen órajel valódi gépen is létezik, és itt 25-30 kHz-es lejátszás érhető el.

A sid_midi.com-ot célszerű legalább 10 MHz-en futtatni, a 100 Hz-es MIDI vezérlés C nyelven írt programmal meglehetősen magas CPU igényű. :oops: De itt is növelhető a lejátszás frekvenciája, 16 MHz-es Z80 esetén már 25 kHz-es.
Title: Re: Bővített Midiplay
Post by: endi on 2017.October.29. 10:54:00
Itt a dobokat likvidáltam, de van, ahol csak két szólam szól egyszerre, ott elférnének.
(Attachment Link)
(Attachment Link)

hát ez nem túl jó így dobok nélkül. elveszítette a dinamikáját, lendületét
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.29. 11:29:33
Fejleszteni kellene még a csatorna foglaláson, akkor megoldható lenne, hogy több hang szóljon egyszerre ugyanazt a csatornát megosztva, de ehhez valószínűleg módosítani kellene a 70/77-es vezérlő értelmezésén. Esetleg újabb vezérlőt használni a MIDI csatornák prioritásának a beállítására.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.29. 11:44:18
Fejleszteni kellene még a csatorna foglaláson, akkor megoldható lenne, hogy több hang szóljon egyszerre ugyanazt a csatornát megosztva, de ehhez valószínűleg módosítani kellene a 70/77-es vezérlő értelmezésén. Esetleg újabb vezérlőt használni a MIDI csatornák prioritásának a beállítására.
Nekem ez már kicsit magas. :D Mondjuk így sem gyenge, hogy Enterprise-on lehet készíteni midiből C64-es zenei fájlokat.

A dobokat nem tudom, mennyire lehet jól megoldani. Majd még kísérletezek dobhangzásokkal. Az a Dave-es zajcsatorna nagyon jó volt, a C64 ilyet nem tud, meg sztereó hangzást se.

UI.: A 4bociexo-ban szólt egyszerre dob is és más hang is, ha jól hallottam. Annak is majd megnézem az envelope-ját.
Ami még meglep, hogy (szerintem) a C64-es négyszögjel alig hasonlít az EP-s négyszögjelre. A háromszögjel viszont kicsit közelebb áll hozzá talán, annak meglepően finom, kellemes a hangzása.
Title: Re: Bővített Midiplay
Post by: IstvanV on 2017.October.29. 11:48:35
A Magic Ball-t lehetne úgy is szerkeszteni, hogy csak akkor amikor mind a négy sáv egyszerre szólna, a második sávban törölni a dobokkal egyidejű hangjegyeket, és a csatornákat így hozzárendelni:

Ha a harmadik sáv nem szól: az első sáv a 0. SID csatornára, a második az 1.-re, a dobok pedig a 2.-ra
Ha a második sáv nem szól: az első sáv a 0. SID csatornára, a harmadik az 1.-re, a dobok pedig a 2.-ra
Ha csak az első sáv némított: a második sáv az 1. SID csatornára, a harmadik a 0.-ra (vagy fordítva?), a dobok pedig a 2.-ra
Ha mind a négy aktív: az első sáv a 0. SID csatornára, a harmadik az 1.-re, a második és a dobok pedig a 2.-ra (vagy hangjegy törléssel, vagy a 2. csatornát átmenetileg megosztva)

Természetesen így a zene közben állítgatni kell a 77-es vezérlőt. Ezen kívül én törölném az R-eket a hangszer definíciókból, itt csak problémát okoznak.
Title: Re: Bővített Midiplay
Post by: szipucsu on 2017.October.29. 11:53:48
Úgy nem lenne jó, hogy fixen végig lefoglalva tartani a 3 csatornát a zenének? Közben a dobok megszólalnának akkor, amikor nem szól mind a három szólam (nem fix kiosztással, hanem ahol éppen talál dinamikus kiosztással helyet). Vagy ha három szólam szól egyszerre, akkor lenne bonyolult a helyzet, de akkor az egyszerűség kedvéért (lusta vagyok :D ) egyszerűen kihagynám a dobokat.
De ha gondolod, megcsinálhatod, ahogy írtad.

én törölném az R-eket a hangszer definíciókból, itt csak problémát okoznak.
Az még a Vivaldi zene miatt került oda. Rövidek a hangok abban a zenében, gyakran elhallgattak, közben kicsit "pattogott" a hang megszólalás és elhallgatás előtt, azért tettem bele az R-eket. De másik zenéhez tényleg nem fontos, csak bennemaradt.