home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / SND_TOOL / HSC15ECR.ZIP / HSCTRACK.DOC < prev    next >
Encoding:
Text File  |  1994-05-24  |  10.1 KB  |  263 lines

  1.  
  2.                           HSC-Tracker V1.5
  3.  
  4.                (C)1993/94 by Zwerg Zwack and Chicken
  5.      Soundroutine (C) 1992/93 by NEO Software Produktions GmbH
  6.     Home of HSC-Tracker: The Lycaeum +41 41-762-989 (v32b,v42b)
  7.    HSC DistSite Germany: Undercover +49 2323 450 850 (v32b,v42b)
  8.  
  9.                          Registered to you!
  10.  
  11.  
  12.      ----------------------------------------------------------
  13.  
  14.  
  15. WHAT IS HSC-TRACKER GOOD FOR ?
  16.  
  17. Once, we looked for an fm-editor able to do a bit more than this ugly
  18. CMF shit. But there was nothing, really nothing! So Chicken took the
  19. next adlib-player and disassembled it. (bad luck for Neo Software, that
  20. it was theirs, sorry) After playing around and doing some major speed
  21. -ups, he persuaded Zwerg Zwack to do an editor for it (it's useful to
  22. have some code slaves harhar).
  23.  
  24. Ladies and Gentlemen, here it is: The HSC-Tracker Package. It comes
  25. complete with an editor, a tsr-player and last but not least, an
  26. object/driver to include in your own codes!
  27.      
  28.  
  29.      ----------------------------------------------------------
  30.  
  31.  
  32. THE HSC-TRACKER :
  33.  
  34. Huh? what to say? Just start HSCTRACK.EXE an press F1 to get the
  35. help-screen. It is self-explaining (as our codes :) ).
  36.  
  37. To override the autodetect start HSCTRACK.EXE with option /axxx
  38. where xxx is the adlib port.
  39.  
  40. Take a look at the examples to learn how to get the best (?) results
  41. out of the adlib.
  42.  
  43. Ah, btw, something 'bout the settings when starting the tune. The
  44. player always starts with speed two and the first nine instruments
  45. loaded into correspondending channels.
  46.  
  47. And don't ask us, how to define cool instruments. We never succeed
  48. neither.
  49.  
  50.  
  51.      ----------------------------------------------------------
  52.  
  53.  
  54. THE HSC-PLAYER :
  55.  
  56. Just a little silly player running in background. Start it with the
  57. filename (with extension) as parameter. To Stop the music, execute it
  58. again.
  59.  
  60. Disclaimer: Chicken refuses any responsibility for damages to your
  61. system during serious crashes.
  62.  
  63. Well, if the player works and the tracker doesn't and vice versa, the
  64. player has no autodetect. (this 'bout proper programming)
  65.  
  66.  
  67.      ----------------------------------------------------------
  68.  
  69.  
  70. THE HSC-OBJECT :
  71.  
  72. This object gives you the possibility, to include adlib-music in your
  73. own codes. Link the HSCOBJ together with your source and declare the
  74. HscPlayer and the globals as EXTRN. The object is written on TASM 3.1,
  75. if some problems appear, try to link with Borland's TLINK.
  76. As we had several problems to link OBJ's into our codes, we added a
  77. binary with the same routines. Patch it at offset 0 in an own segment.
  78. The function HscPlayer starts at offset 0.
  79. Here te solution of the general OBJ problem: define the extern functions
  80. before ANY segment declarations, and fixup overflows are gone forever.
  81. (hopefully)
  82.  
  83. All routines are called through the funktion HscPlayer. You have to call
  84. it as FAR. In AH is the number of the function called.
  85.  
  86. ah = 0  start music             call this routine when you
  87.                                 start a new tune.
  88.  
  89.         bl      play mode       when 0 the music will play in
  90.                                 background, using the timer
  91.                                 interrupt.
  92.                                 1 is polling-mode. this means,
  93.                                 that the irq will only manage
  94.                                 the correct speed, but the
  95.                                 main playing is done when you
  96.                                 call function 1 (poll).
  97.  
  98.         if you use the timer-irq (08h or 1Ch) for own purposes,
  99.         check out, that INT 1Ch is called 18 times per second.
  100.  
  101.         bh      dos irq         0 will include the old int 1Ch
  102.                                 (probably used by another pro-
  103.                                 gram) into the playing irq.
  104.                                 1 will cut it off.
  105.  
  106.         es:si   music data      points to the music data loaded
  107.                                 into memory.
  108.  
  109.  
  110. ah = 1  poll music              when in polling mode, you have
  111.                                 to call this function at least
  112.                                 18 times per second. it will
  113.                                 play the music.
  114.  
  115. ah = 2  stop music              stops music.
  116.  
  117. ah = 3  fade out                fades out the music.
  118.  
  119. ah = 4  detect/reset            searches for an adlib or
  120.                                 compatible soundcard. returns
  121.                                 with carry set when an error
  122.                                 occurs, otherwise ax contains
  123.                                 the port found. this has to
  124.                                 be started one time to reset
  125.                                 the soundcard.
  126.  
  127.          bx     adlib port      put this to 0 if you want to
  128.                                 run the autodetect.
  129.  
  130.          The detect sometimes fails, so give your users the pos-
  131.          sibility to override the detection. The savest value is
  132.          SoundBlaster-baseport + 8 (eg. 220h -> 228h).
  133.  
  134. ah = 5  rasterbar               will turn on/off a rasterbar
  135.                                 to show the time used by the
  136.                                 player. works not in polling
  137.                                 mode.
  138.  
  139. ah = 6  user irq                you can link in an user-irq,
  140.                                 which gets called every time
  141.                                 the play-routine is executed.
  142.                                 (e.g. equalizers)
  143.  
  144.         bl = 0                  remove user irq
  145.  
  146.         bl = 1                  link irq to ds:dx.
  147.                                 the user irq has to end with
  148.                                 a retf.
  149.  
  150. ah = 7 get player state         dumps some information about the
  151.                                 player status into an array.
  152.  
  153.         es:si                   pointer to an array of 40 bytes
  154.  
  155.         the structure of the array is: (label refers to the names used
  156.         in old versions)
  157.  
  158.         label         offset  bytes
  159.  
  160.         hsc_note         0      9       actual notes (1 byte per channel)
  161.         hsc_instr        9      9       actual instruments
  162.         hsc_equalizer   18      9       equalizer value (ffh-0fh)
  163.         hsc_playing     27      9       equalizer peaks (ffh = peak)
  164.  
  165.         hsc_pattern     36      1       actual pattern
  166.         hsc_track       37      1       actual track
  167.         hsc_position    38      1       actual position
  168.                         39      1       play on/off (0/1)
  169.  
  170.         take a look at the example source or contact the authors to
  171.         get more info. (or return to your joystick and give up coding)
  172.  
  173. And remember: commercial use only with... blabla, ya know!
  174.  
  175.  
  176.      ----------------------------------------------------------
  177.  
  178.  
  179. REVISION HISTORY ...
  180.  
  181. April'93 First beta, or was it even pre-alpha ?
  182. 10.05.93 Release of version 1.0
  183. 07.06.93 Release of version 1.1
  184.                 -bugfixes in polling-mode
  185.                 -minor bugfixes in the editor
  186.                 -correct copyrights for the soundroutines
  187. 13.08.93 Release of version 1.2
  188.                 -bugfix function shift-f8 in the editor
  189.                 -added object as binary 'coz of general inability :)
  190.                 -added /a option to the editor to skip autodetect
  191. 28.08.93 Release of version 1.3
  192.                 -bugfix auto-detect (i wonder how this ever worked) now
  193.                  it's working even on systems with sb + gus
  194.                 -added jump command to pattern table
  195. 22.03.94 Release of version 1.4
  196.                 -cleaned up the autodetect code and added a port override
  197.                  (and object gots 10% smaller)
  198.                 -renamed function call to _HscPlayer as this gives less
  199.                  problems in C
  200.                 -added a function to get playing/equalizer information
  201.                  and removed the global vars as they caused some major
  202.                  problems in C and Pascal
  203.                 -added some examples how to use HSC
  204. 24.05.94 Release of version 1.5
  205.                 -fixed division overflow bug in the replay routine
  206.                  (it was a stupid bug! doing a good act for intro coders
  207.                  by removing thefrequency table and then this...)
  208.                 -added example for TP7.0 by Ray/Radical Rhythms
  209.  
  210.  
  211.      ----------------------------------------------------------
  212.  
  213.  
  214. CONTACT THE AUTHORS !
  215.  
  216. If you got an idea for some features, dig it :).
  217. But for chitchat, little donations (dreamin'?), your coolest tunes done
  218. with HSC-Tracker,
  219.  
  220. write to:       Christian Kündig        Adrian Studer
  221.                 Lindenhofrain 12        Hauptstrasse 52
  222.              CH-8708 Männedorf       CH-6170 Schüpfheim
  223.                 Switzerland             Switzerland
  224.  
  225. or call The Lycaeum +41 41-762-989 and write a message to sysop,
  226. or email via InterNet chicken@ezinfo.vmsmail.ethz.ch
  227.  
  228.  
  229.      ----------------------------------------------------------
  230.  
  231.  
  232. COPYRIGHTS:
  233.  
  234. HSC-Tracker is copyright of the authors. The authors allow to: use
  235. software, make copies of it, give copies to anybody and distribute it
  236. through electronic media.
  237.  
  238. It is not allowed to ask for money or donations for any copy or copies
  239. of the program, neither distribute the software and/or documentation
  240. with commercial products.
  241.  
  242. live2.hsc (c) by Blackbird/S!P,
  243. smjoop.hsc, smkerem.hsc (c) by Silent Mode/S!P,
  244. crystal2.hsc (c) by Chris Korte/Xography,
  245. all the other tunes (c) by NEO Software.
  246.  
  247. It is not allowed to use this soundroutine in commercial products with-
  248. out previous written acknowledgement of Neo Software Produktions GmbH.
  249.  
  250.                 NEO Software Produktions GmbH
  251.                 A-2552 Hirtenberg
  252.                 Dobrischgasse 10
  253.                 0043/2256/82294
  254.  
  255. If you bought NEO Softwares soundroutine, you got NO rights to use the
  256. editor, player, sources and examples included in this package in any
  257. commercial products. Contact Christian or Adrian if you still want to
  258. use one of these files.
  259.  
  260.  
  261.      ----------------------------------------------------------
  262.                         sorry for bad english!
  263.