?login_element?

Subversion Repositories NedoOS

Rev

Rev 731 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. SMPLINE=7
  2.  
  3. _0=1+'0'-'0'
  4. _1=1+'1'-'0'
  5. _2=1+'2'-'0'
  6. _3=1+'3'-'0'
  7. _4=1+'4'-'0'
  8. _5=1+'5'-'0'
  9. _6=1+'6'-'0'
  10. _7=1+'7'-'0'
  11. _8=1+'8'-'0'
  12. _9=1+'9'-'0'
  13. _a=1+10+'a'-'a'
  14. _b=1+10+'b'-'a'
  15. _c=1+10+'c'-'a'
  16. _d=1+10+'d'-'a'
  17. _e=1+10+'e'-'a'
  18. _f=1+10+'f'-'a'
  19. _g=1+10+'g'-'a'
  20. _h=1+10+'h'-'a'
  21. _i=1+10+'i'-'a'
  22. _j=1+10+'j'-'a'
  23. _k=1+10+'k'-'a'
  24. _l=1+10+'l'-'a'
  25. _m=1+10+'m'-'a'
  26. _n=1+10+'n'-'a'
  27. _o=1+10+'o'-'a'
  28. _p=1+10+'p'-'a'
  29. _q=1+10+'q'-'a'
  30. _r=1+10+'r'-'a'
  31. _s=1+10+'s'-'a'
  32. _t=1+10+'t'-'a'
  33. _u=1+10+'u'-'a'
  34. _v=1+10+'v'-'a'
  35. _w=1+10+'w'-'a'
  36. _x=1+10+'x'-'a'
  37. _y=1+10+'y'-'a'
  38. _z=1+10+'z'-'a'
  39. _A=1+10+26+'A'-'A'
  40. _B=1+10+26+'B'-'A'
  41. _C=1+10+26+'C'-'A'
  42. _D=1+10+26+'D'-'A'
  43. _E=1+10+26+'E'-'A'
  44. _F=1+10+26+'F'-'A'
  45. _G=1+10+26+'G'-'A'
  46. _H=1+10+26+'H'-'A'
  47. _I=1+10+26+'I'-'A'
  48. _J=1+10+26+'J'-'A'
  49. _K=1+10+26+'K'-'A'
  50. _L=1+10+26+'L'-'A'
  51. _M=1+10+26+'M'-'A'
  52. _N=1+10+26+'N'-'A'
  53. _O=1+10+26+'O'-'A'
  54. _P=1+10+26+'P'-'A'
  55. _Q=1+10+26+'Q'-'A'
  56. _R=1+10+26+'R'-'A'
  57. _S=1+10+26+'S'-'A'
  58. _T=1+10+26+'T'-'A'
  59. _U=1+10+26+'U'-'A'
  60. _V=1+10+26+'V'-'A'
  61. _W=1+10+26+'W'-'A'
  62. _X=1+10+26+'X'-'A'
  63. _Y=1+10+26+'Y'-'A'
  64. _Z=1+10+26+'Z'-'A'
  65.  
  66.         STRUCT chip
  67. retriggers BYTE ;A,B,C
  68. Atonefrq WORD
  69. Btonefrq WORD
  70. Ctonefrq WORD
  71. noisefrq BYTE
  72. masks   BYTE ;!AT,!BT,!CT,!AN,!BN,!CN
  73. Avolume BYTE
  74. Bvolume BYTE
  75. Cvolume BYTE
  76. envfrq  WORD
  77. envtype BYTE ;+retrigenvbit
  78.         ENDS
  79.  
  80. CHNTYPEMASK=0x7f
  81. CHNTYPE_ORDER=0 ;цифры, которые означают начало i-го фрагмента (для привязанных к ордеру каналов)
  82. CHNTYPE_FILTER=1 ;цифры, между которыми эффект плавно изменяется. эффект влияет на предыдущий канал
  83. CHNTYPE_NOTES=2 ;буквы нот (3 октавы)
  84. CHNTYPE_SAMPLES=3 ;буквы сэмплов
  85.  
  86.         macro CHNTYPE chntype,usedorder;,addr
  87.         db chntype ;+0x80=надо перерисовать
  88.         db usedorder ;0=не привязан к ордеру
  89.         ;dw addr ;описатель канала
  90.         chn
  91.         endm
  92.  
  93. ;masks (T,N,E,hole,outerenv,retrigtone)
  94. ;+-96 semitone shift
  95. ;+-96 env semitone shift (fair tone ratio guaranteed for 1:1, 3:4, 1:2, 1:4, 3:1, 5:2, 2:1, 3:2 + 4:1)
  96. ;+-4095 tonefrq shift
  97. ;16 volume
  98. ;32 noisefrq
  99. ;16*2 envtype +retrigenvbit
  100. ;в этой структуре накопления запрещены!
  101.         STRUCT chn
  102. tonefrq WORD ;0..32767 (cut to 0..4095)
  103. masks   BYTE ;T,N,E,hole,outerenv,retrigtone ;дырка управляется отдельно!!! т.к. уровень для !T!N отличается от T vol 0
  104. keepme  BYTE ;priority for keep on top (bigger is more priority)
  105. volume  BYTE ;volume = +-127 (cut to 0..15)
  106. noisefrq BYTE ;noise = 0..255 (cut to 0..31)
  107. envtype BYTE ;+retrigenvbit
  108. envfrq  WORD
  109. ;эти не копировать!!!
  110. channel_in BYTE ;0..2
  111. note_in BYTE
  112. oldnote_in BYTE
  113. keepme_in BYTE ;priority for keep on top (bigger is more priority)
  114. volume_in BYTE ;громкость из параметров трека
  115. par1_in BYTE
  116. par2_in BYTE
  117. par3_in BYTE
  118. smp_in  WORD
  119. smpcuraddr  WORD
  120. curgliss WORD
  121. glissspeed_in WORD
  122. handler WORD ;для фильтра
  123. curvalue BYTE ;для фильтра. рассчитано интерполяцией
  124.         ENDS
  125.  
  126. MASKBIT_T=0
  127. MASKBIT_N=1
  128. MASKBIT_E=2
  129. MASKBIT_HOLE=3
  130. MASKBIT_OUTERENV=4
  131. MASKBIT_RETRIGTONE=5
  132.  
  133. retrigenvbit=7
  134.  
  135. chnsstep=2+chn
  136.