Enterprise Forever  |  :HUN  |  SOUND:  |  Topic: DTM és MBM file-okról infó
Author Topic: DTM és MBM file-okról infó  (Read 16636 times)« previous next »
geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.7


View Profile
New Posts
« 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
Logged

Enterprise Forever
« on: 2009.March.27. 15:16:58 »

 Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Konqueror 3.5.9


View Profile
New Posts
« 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 ? Smiley

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 » Logged

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5629


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile WWW
New Posts
« Reply #2 on: 2009.March.30. 19:38:24 »

Új lejátszó készül ? Smiley
Én azt remélem, hogy az SNDPLAY tudni fogja ezt is  ds_icon_redface
Logged


geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile
New Posts
« Reply #3 on: 2009.March.31. 09:10:36 »

Köszönöm szépen Smiley ,én is bízom az SNDPLAY-ben. Cheesy
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. Cheesy
A DTM formátumot meg azért kezdtem el nézegetni, hogy megtudjam a konverter hogyan alakítja át a MOD-okat. Smiley
Logged

geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile
New Posts
« Reply #4 on: 2009.March.31. 09:18:37 »

Ez bonyolultabb, mint ahogy gondoltam  ds_icon_redface, 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. Cheesy
Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Firefox 3.0.3


View Profile
New Posts
« 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.
Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Firefox 3.0.3


View Profile
New Posts
« 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.
Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Firefox 3.0.3


View Profile
New Posts
« Reply #7 on: 2009.March.31. 13:32:07 »

Ez bonyolultabb, mint ahogy gondoltam  ds_icon_redface, 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. Cheesy

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 » Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Firefox 3.0.3


View Profile
New Posts
« Reply #8 on: 2009.March.31. 13:35:21 »

Én azt remélem, hogy az SNDPLAY tudni fogja ezt is  ds_icon_redface
Nem valószínű, hogy a már meglevő lejátszónál sokkal jobbat sikerülne készíteni ds_icon_redface
Logged

geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile
New Posts
« 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. Cheesy
Logged

Zozosoft
EP addict
*
Offline Offline

Hungary

Posts: 5629


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile WWW
New Posts
« 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 ds_icon_redface
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.
Logged


IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Konqueror 3.5.9


View Profile
New Posts
« 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ő Smiley
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.
Logged

IstvanV
EP addict
*
Offline Offline

Posts: 2111

OS:
Linux (Suse)
Browser:
Konqueror 3.5.9


View Profile
New Posts
« 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 ?
Logged

geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile
New Posts
« 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. Cheesy
Logged

geco
EP addict
*
Offline Offline

Hungary

Posts: 1170


OS:
Windows XP
Browser:
Firefox 3.0.8


View Profile
New Posts
« Reply #14 on: 2009.March.31. 17:57:39 »

Gondolom, arra már nem volt elég CPU idő Smiley
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 Cheesy, párszor megy végig csak a várakozási cikluson.
Logged

Enterprise Forever
« Reply #14 on: 2009.March.31. 17:57:39 »

 Logged
Tags:
Enterprise Forever  |  :HUN  |  SOUND:  |  Topic: DTM és MBM file-okról infó

Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks

Template made by Mr.Prise
Page created in 0.129 seconds with 25 queries.
Google visited last this page 2012.May.17. 03:53:53
Follow ep4ever_news on Twitter