Ich hatte mal ein altes Tool gemacht, mit dem man ganze Verzeichnisse nach MODs absuchen konnte, rekursiv.
Da letztens im EAB Forum die Frage aufkam, wie man an die Samples kommt, hier mal als Erstes zum Einstieg die Aufdröselung der Samples, noch ohne die eigentlichen Daten, die sind am Ende nach den Patterns.
Hoffe, das hilft jemandem:
Aufrufen der Funktion mit 
 
   
Für mehr braucht man eigentlich nur die 'ptmodformat' Dokumentation, oder z.B:
https://githup.com/raspi/trackermod
Man sollte aber natürlich Grundkenntnisse haben, das hilft.
Hier noch schnell die Executables.
	
Da letztens im EAB Forum die Frage aufkam, wie man an die Samples kommt, hier mal als Erstes zum Einstieg die Aufdröselung der Samples, noch ohne die eigentlichen Daten, die sind am Ende nach den Patterns.
Hoffe, das hilft jemandem:
Code:
Dim mtyp$(5)
mtyp$(1)="ProTr"
mtyp$(2)="SoundTr"
mtyp$(3)="NoiseTr"
mtyp$(4)=""
mtyp$(5)="?(PPack)"
DEFTYPE.l
#typoffset=$438    ;=1080
c$=Chr$(10)
Function.w checkmod{f$}
result.b=0:real$=""
fhand.l=Open_(f$,1005)
If fhand>0
  buf.l=AllocMem_($500,#MEMF_PUBLIC|#MEMF_CLEAR)
  If buf>0
    Read_ fhand,buf,$500
    Close_ fhand
    If Mkl$(Peek.l(buf))="PP20"
      result=5
    Else
      md$=Mkl$(Peek.l(buf+#typoffset))
      Select md$
        Case"M.K.":result=1
          real$=Left$(Peek$(buf),20)
          NPrint "-------------- ",f$," --------------"
          NPrint "name: ",real$
          Gosub getsamp
        Case"FLT4":result=2
        Case"M&K!":result=3
      End Select
    EndIf
    FreeMem_ buf,$500
  Else
    result=0:Close_ fhand:Goto ex
  EndIf
Else
  result=0;:Goto ex
EndIf
ex:Function Return result
getsamp:
  NPrint"Samples:"
  ssize.w=30 ;sample info block size
  snums.w=30 ;
  spos.w  =20  ;start sib`s
  For n.w=0 To snums  ;#=31
    dum$=PeekToStr(buf+spos,0,22)
    dsz.w=Peek.w(buf+spos+22) *2   ;size in bytes
    Format"#0":Print Str$(n),": "
    Format""
    If dum$<>""
      NPrint LSet$(dum$,23)," > ",Str$(dsz)
    Else
      NPrint LSet$("<noname>",23)," > ",Str$(dsz)
    EndIf
    spos + ssize
  Next
  Format""
Return
End FunctionCode:
typ = checkmod {"path/filename"}
nprint mtyp$(typ)Für mehr braucht man eigentlich nur die 'ptmodformat' Dokumentation, oder z.B:
https://githup.com/raspi/trackermod
Man sollte aber natürlich Grundkenntnisse haben, das hilft.
Hier noch schnell die Executables.

 

 

