Welcome, Guest. Please login or register.


Author Topic: DTM és MBM file-okról infó (Read 66518 times)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
DTM és MBM file-okról infó
« on: 2009.March.27. 15:16:58 »
Nincs valakinek leírása,vagy infója az enterprise-os MOD zenék felépítéséről?
Eddig erre sikerült rájönni:
dtm
0000-0007   type text
0008-000f   length of pattern part   (1st 2 bytes)
0010-002f   song name
0030-xxxx   patterns   xxxx=30+length of pattern part
xxxx-+2e8   sample lengths and sample names
+2e8-end   samples

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #1 on: 2009.March.30. 17:09:57 »
Nincs valakinek leírása,vagy infója az enterprise-os MOD zenék felépítéséről?
Új lejátszó készül ? :)

Quote
Eddig erre sikerült rájönni:
dtm
0000-0007   type text
0008-000f   length of pattern part   (1st 2 bytes)
0010-002f   song name
0030-xxxx   patterns   xxxx=30+length of pattern part
xxxx-+2e8   sample lengths and sample names
+2e8-end   samples

DTM-hez pattern adatok formátuma (a parancskódok teljes listája még nincs kész, de a lényeges információk már megvannak, és viszonylag könnyen ki lehet egészíteni):

C000h: újrakezdés címe: 2 byte (első pattern: C004h)
C002h: patternek száma: 1 byte
C003h: újrakezdéskor lejátszandó patternek száma: 1 byte

C004h: patternek kezdőcímei: patternek száma * 4 * 2 byte
  C004h: első pattern bal csatorna 1 (2 byte)
  C006h: első pattern bal csatorna 2 (2 byte)
  C008h: első pattern jobb csatorna 1 (2 byte)
  C00Ah: első pattern jobb csatorna 2 (2 byte)
  C00Ch: második pattern bal csatorna 1 (2 byte)
  C00Eh: második pattern bal csatorna 2 (2 byte)
  C010h: második pattern jobb csatorna 1 (2 byte)
  C012h: második pattern jobb csatorna 2 (2 byte)
  C014h: ...

C004h + (nPatterns * 8 ) -: pattern adatok:
  három lehetséges esemény típus van: hangjegy, várakozás (szünet), és parancs

  hangjegy + 1 időegység várakozás: 2 byte; hangmagasság, hangmina
    hangmagasság félhangban: (18: eredeti magasság 11025 Hz-en)
                             ha nulla, akkor nincs hang
    hangminta száma * 4 (4: első, 8: második, stb.)

  várakozás: 1 byte
    C0h + (időegységek száma - 1)

  parancs: 2 byte; parancskód, paraméter (N)
    80h + parancskód: a parancs után hangjegy következik várakozás nélkül
    90h + parancskód: 1 időegység várakozás a parancs után
    parancskódok:
      0: sebesség beállítása (alapértelmezés: 60)
         egy időegység hossza = N / 500 másodperc
      1: pattern vége a következő időegységben
      2: track vége
      3: hangmagasság növelése (mértékegység ?)
      4: hangmagasság csökkentése
      5: ?
      6: ?
      7: ?
      8: ?
      9-15: érvénytelen

egy pattern teljes időtartama: 64 időegység

« Last Edit: 2009.March.31. 13:10:31 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: DTM és MBM file-okról infó
« Reply #2 on: 2009.March.30. 19:38:24 »
Új lejátszó készül ? :)
Én azt remélem, hogy az SNDPLAY tudni fogja ezt is  :oops:

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: DTM és MBM file-okról infó
« Reply #3 on: 2009.March.31. 09:10:36 »
Köszönöm szépen :) ,én is bízom az SNDPLAY-ben. :D
Olyan apró terveim vannak, hogy kilopom a DTM playerből a lejátszó rutint, és az újonnan készült átiratokat megpróbálom feldobni egy kis zenével. :D
A DTM formátumot meg azért kezdtem el nézegetni, hogy megtudjam a konverter hogyan alakítja át a MOD-okat. :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: DTM és MBM file-okról infó
« Reply #4 on: 2009.March.31. 09:18:37 »
Ez bonyolultabb, mint ahogy gondoltam  :oops:, azt hittem, hogy ugyanazon adatok kerülnek kiadásra mindig, pl első fél byte hangszermita, második hangerő, 2. byte meg hangmagasság, 3. byte meg egyéb vezérlő funkciók. Valami ilyen elképzelésem volt.
Jól mellétippeltem. :D

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #5 on: 2009.March.31. 13:20:28 »
További DTM formátum információ:

A hangminták táblázatában a név előtti 8 byte:
  0:   ha nem 0, akkor a hangminta nem használt
  1:   0 |
  2:   0 | (nem használt byte-ok ?)
  3:   0 |
  4-5: hangminta teljes hossza
  6-7: loop kezdete (ha ugyanaz, mint a teljes hossz, akkor nincs loop)


A hangmagasság növelésénél és csökkentésénél egy 10 bites frekvencia érték változik, amelyből a mintavételezési frekvencia így számítható (N >= 113):
  f = 3517867 / (N - 1)    (Hz)
A 3-as parancskód tehát kivonja a paramétert a 10 bites frekvencia kódból, a 4-es pedig hozzáadja, mert a kisebb érték jelent magasabb hangot. A lejátszó rutin valójában csak 9 bites felbontással tudja változtatni a frekvenciát, tehát a fenti képlet csak közelítő értéket ad.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #6 on: 2009.March.31. 13:29:27 »
  parancs: 2 byte; parancskód, paraméter (N)
Itt a sebesség beállítása, pattern vége, és track vége globális (minden csatornára vonatkozik), a többi parancs, amelyek a hangmagasságot változtatják, pedig csak az adott csatornára érvényes.

Quote
      5: ?
      6: ?
      7: ?
      8: ?
A 8-as a hangmagasságot változtatja -14 - +14 tartományban a paraméter által meghatározott sebességgel, de csak egyszer. Sokszor egymás után kiadva gyakorlatilag FM (vibrátó) effektust eredményez.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #7 on: 2009.March.31. 13:32:07 »
Ez bonyolultabb, mint ahogy gondoltam  :oops:, azt hittem, hogy ugyanazon adatok kerülnek kiadásra mindig, pl első fél byte hangszermita, második hangerő, 2. byte meg hangmagasság, 3. byte meg egyéb vezérlő funkciók. Valami ilyen elképzelésem volt.
Jól mellétippeltem. :D

A MOD formátum funkcióinak nagy részét a DTM nem tudja, mert a lejátszó rutin csak a hangmagasságot tudja változtatni, hangerő, szűrő, stb. nincsen. Annak ellenére, hogy a DTM file-ok általában MOD-ok konverziói, a két formátum között csak kevés hasonlóság van.
« Last Edit: 2009.March.31. 13:37:45 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #8 on: 2009.March.31. 13:35:21 »
Én azt remélem, hogy az SNDPLAY tudni fogja ezt is  :oops:
Nem valószínű, hogy a már meglevő lejátszónál sokkal jobbat sikerülne készíteni :oops:

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: DTM és MBM file-okról infó
« Reply #9 on: 2009.March.31. 16:25:11 »
A hangerő változtatását nem lehet megoldani?
Ha jól sejtem, akkor a 8 bites samplék a frekvenciaértékeket tárolják, nem lehet ezeket az értékeket átalakítással az A0-A5 protokon keresztül megszólaltatni, egy 8khz-es megszakításból? Akkor lehetne a volume értékekkel játszani.
Amit láttam eddig a lejátszóból, az az, hogy a átbillenti az A8-at és az AC-t D/A-ba és erre tolja ki a négy csatornát, kettőt A8-ra, és a másik kettőt AC-re, gondolom ezért nem lehet a hangerővel játszani, mert az fix, viszont, ha az első megoldás is működőképes, akkor már a hangerőt is lehet módosítgatni.
De ez csak az én agyament elképzelésem, bizti valamit nagyon rosszul képzeltem el. :D

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: DTM és MBM file-okról infó
« Reply #10 on: 2009.March.31. 16:36:44 »
Nem valószínû, hogy a már meglevõ lejátszónál sokkal jobbat sikerülne készíteni :oops:
Ha kicsit jobb az is jó :-) az SNDPLAY-ban már úgyis kikísérletezted, hogyan lehet maximálisan kihajtani Dave bátyót :-)
Ami alapvetõen jó lenne, ha egy program tudna minden elképzelhetõt lejátszani. Az már 17 éve is zavart, hogy a szebb DTM Player nem tudja az MBT zenéket lejátszani.
A vinyó miatt pedig amúgy is hozzá kéne nyúlni ezekhez.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #11 on: 2009.March.31. 17:46:59 »
A hangerő változtatását nem lehet megoldani?
Gondolom, arra már nem volt elég CPU idő :)
Quote
Ha jól sejtem, akkor a 8 bites samplék a frekvenciaértékeket tárolják,
Nem, egyszerű 11025 Hz-es digitalizált hang, amelyet (6 bitre konvertálva és a csatornákat keverve) a lejátszó kiír az A8h/ACh portokra. A hangerő változtatásához a hangmintákat szorozni kellene a hangerő értékkel.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: DTM és MBM file-okról infó
« Reply #12 on: 2009.March.31. 17:48:54 »
Ha kicsit jobb az is jó :-) az SNDPLAY-ban már úgyis kikísérletezted, hogyan lehet maximálisan kihajtani Dave bátyót :-)
Ami alapvetõen jó lenne, ha egy program tudna minden elképzelhetõt lejátszani. Az már 17 éve is zavart, hogy a szebb DTM Player nem tudja az MBT zenéket lejátszani.
A vinyó miatt pedig amúgy is hozzá kéne nyúlni ezekhez.
Ha nincs meg a DTM lejátszó forráskódja, akkor érdemes lenne visszafejteni lefordítható assembler formátumba ?

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: DTM és MBM file-okról infó
« Reply #13 on: 2009.March.31. 17:54:23 »
Ha nincs meg a DTM lejátszó forráskódja, akkor érdemes lenne visszafejteni lefordítható assembler formátumba ?

Ezt bevállalhatom, elkezdtem nézegetni, és kommentezni is, bár pár dolog biztosan nem stimmel. :D

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: DTM és MBM file-okról infó
« Reply #14 on: 2009.March.31. 17:57:39 »
Gondolom, arra már nem volt elég CPU idő :)
Gyanús, megnéztem a SWAP-ot, az megszakításból játsza le a zenét, minden megszakítás után van egy várakozás a következő megszakításra, és nem sok időt kell ott eltöltenie :D, párszor megy végig csak a várakozási cikluson.