HSC-Tracker V1.4 (C)1993/94 by Zwerg Zwack and Chicken Soundroutine (C) 1992/93 by NEO Software Produktions GmbH Home of HSC-Tracker: The Lycaeum +41 41-762-989 (v32b,v42b) Registered to you! ---------------------------------------------------------- WHAT IS HSC-TRACKER GOOD FOR ? Once, we looked for an fm-editor able to do a bit more than this ugly CMF shit. But there was nothing, really nothing! So Chicken took the next adlib-player and disassembled it. (bad luck for Neo Software, that it was theirs, sorry) After playing around and doing some major speed -ups, he persuaded Zwerg Zwack to do an editor for it (it's useful to have some code slaves harhar). Ladies and Gentlemen, here it is: The HSC-Tracker Package. It comes completly with an editor, a tsr-player and last but not least, an object/driver to include in your own codes! ---------------------------------------------------------- THE HSC-TRACKER : Huh? what to say? Just start HSCTRACK.EXE an press F1 to get the help-screen. It is self-explaining (as our codes :) ). To override the autodetect start HSCTRACK.EXE with option /axxx where xxx is the adlib port. Take a look at the examples to learn how to get the best (?) results out of the adlib. Ah, btw, something 'bout the settings when starting the tune. The player always starts with speed two and the first nine instruments loaded into correspondending channels. And don't ask us, how to define cool instruments. We never succeed neither. ---------------------------------------------------------- THE HSC-PLAYER : Just a little silly player running in background. Start it with the filename (with extension) as parameter. To Stop the music, execute it again. Disclaimer: Chicken refuses any responsibility for damages to your system during serious crashes. Well, if the player works and the tracker doesn't and vice versa, the player has no autodetect. (this 'bout proper programming) ---------------------------------------------------------- THE HSC-OBJECT : This object gives you the possibility, to include adlib-music in your own codes. Link the HSCOBJ together with your source and declare the HscPlayer and the globals as EXTRN. The object is written on TASM 3.1, if some problems appear, try to link with Borland's TLINK. As we had several problems to link OBJ's into our codes, we added a binary with the same routines. Patch it at offset 0 in an own segment. The function HscPlayer starts at offset 0. Here te solution of the general OBJ problem: define the extern functions before ANY segment declarations, and fixup overflows are gone forever. (hopefully) All routines are called through the funktion HscPlayer. You have to call it as FAR. In AH is the number of the function called. ah = 0 start music call this routine when you start a new tune. bl play mode when 0 the music will play in background, using the timer interrupt. 1 is polling-mode. this means, that the irq will only manage the correct speed, but the main playing is done when you call function 1 (poll). if you use the timer-irq (08h or 1Ch) for own purposes, check out, that INT 1Ch is called 18 times per second. bh dos irq 0 will include the old int 1Ch (probably used by another pro- gram) into the playing irq. 1 will cut it off. es:si music data points to the music data loaded into memory. ah = 1 poll music when in polling mode, you have to call this function at least 18 times per second. it will play the music. ah = 2 stop music stops music. ah = 3 fade out fades out the music. ah = 4 detect/reset searches for an adlib or compatible soundcard. returns with carry set when an error occurs, otherwise ax contains the port found. this has to be started one time to reset the soundcard. bx adlib port put this to 0 if you want to run the autodetect. The detect sometimes fails, so give your users the pos- sibility to override the detection. The savest value is SoundBlaster-baseport + 8 (eg. 220h -> 228h). ah = 5 rasterbar will turn on/off a rasterbar to show the time used by the player. works not in polling mode. ah = 6 user irq you can link in an user-irq, which gets called every time the play-routine is executed. (e.g. equalizers) bl = 0 remove user irq bl = 1 link irq to ds:dx. the user irq has to end with a retf. ah = 7 get player state dumps some information about the player status into an array. es:si pointer to an array of 40 bytes the structure of the array is: (label refers to the names used in old versions) label offset bytes hsc_note 0 9 actual notes (1 byte per channel) hsc_instr 9 9 actual instruments hsc_equalizer 18 9 equalizer value (ffh-0fh) hsc_playing 27 9 equalizer peaks (ffh = peak) hsc_pattern 36 1 actual pattern hsc_track 37 1 actual track hsc_position 38 1 actual position 39 1 play on/off (0/1) take a look at the example source or contact the authors to get more info. (or return to your joystick and give up coding) And remember: commercial use only with... blabla, ya know! ---------------------------------------------------------- REVISION HISTORY ... April'93 First beta, or was it even pre-alpha ? 10.05.93 Release of version 1.0 07.06.93 Release of version 1.1 -bugfixes in polling-mode -minor bugfixes in the editor -correct copyrights for the soundroutines 13.08.93 Release of version 1.2 -bugfix function shift-f8 in the editor -added object as binary 'coz of general inability :) -added /a option to the editor to skip autodetect 28.08.93 Release of version 1.3 -bugfix auto-detect (i wonder how this ever worked) now it's working even on systems with sb + gus -added jump command to pattern table 22.03.94 Release of version 1.4 -cleaned up the autodetect code and added a port override (and object gots 10% smaller) -renamed function call to _HscPlayer as this gives less problems in C -added a function to get playing/equalizer information and removed the global vars as they caused some major problems in C and Pascal -added some examples how to use HSC ---------------------------------------------------------- CONTACT THE AUTHORS ! If you got an idea for some features, dig it :). But for chitchat, little donations (dreamin'?), your coolest tunes done with HSC-Tracker, write to: Christian Kndig Adrian Studer Lindenhofrain 12 Hauptstrasse 52 CH-8708 M„nnedorf CH-6170 Schpfheim Switzerland Switzerland or call The Lycaeum +41 41-762-989 and write a message to sysop, or email via InterNet chicken@ezinfo.vmsmail.ethz.ch ---------------------------------------------------------- COPYRIGHTS: HSC-Tracker is copyright of the authors. The authors allow to: use software, make copies of it, give copies to anybody and distribute it through electronic media. It is not allowed to ask for money or donations for any copy or copies of the program, neither distribute the software and/or documentation with commercial products. live2.hsc (c) by Blackbird/S!P, smjoop.hsc, smkerem.hsc (c) by Silent Mode/S!P, crystal2.hsc (c) by Chris Korte/Xography, all the other tunes (c) by NEO Software. It is not allowed to use this soundroutine in commercial products with- out previous written acknowledgement of Neo Software Produktions GmbH. NEO Software Produktions GmbH A-2552 Hirtenberg Dobrischgasse 10 0043/2256/82294 If you bought NEO Softwares soundroutine, you got NO rights to use the editor, player, sources of this package in any commercial products. Contact Christian or Adrian if you still want to use one of these files. ---------------------------------------------------------- sorry for bad english!