home *** CD-ROM | disk | FTP | other *** search
/ Black Art of 3D Game Programming / Black_Art_of_3D_Game_Programming.iso / source / msc / chap_6 / drivers / readme.prn < prev    next >
Encoding:
Text File  |  1994-03-08  |  39.2 KB  |  856 lines

  1.  
  2.    Documentation for the DIGPAK & MIDPAK Developers Kit v1.0
  3.  
  4.                 by
  5.  
  6.               John W. Ratcliff
  7.            Compuserve: 70253,3237
  8.               Genie: J.RACLIFF3
  9.              BBS: 1-314-939-0200, 14.4kb
  10.  
  11.              TO GET THE DEVELOPERS KIT CALL
  12.              THIS BBS NUMBER AT UP TO 14.4KB
  13.  
  14.              DIGPAK & MIDPAK DEVELOPERS KIT
  15.              EXISTS IN THE MAIN LIBRARY AS:
  16.  
  17.              DMKIT.ZIP
  18.  
  19.  
  20.              Document first draft: January 3, 1994
  21.                   second release: March 8, 1994
  22.              Copyright (c) 1994
  23.              The Audio Solution
  24.              747 Napa Lane
  25.              St. Charles, MO 63304
  26.  
  27.  
  28.  
  29.         DIGPAK : DOS based digital sound drivers.
  30.              Written by John W. Ratcliff (CIS:70253,3237)
  31.              Copyright (c) 1994, The Audio Solution.
  32.              $500 per/product distribution license fee.
  33.  
  34.         MIDPAK:  DOS based MIDI music player.
  35.              Written by John W. Ratcliff and John Miles
  36.              Copyright (c) 1994, The Audio Solution.
  37.              $500 per/product distribution license fee.
  38.  
  39.  
  40. ==============================================================================
  41. What is DIGPAK and MIDPAK?
  42. ========================================================================
  43. DIGPAK and MIDPAK are a set of drivers which provide a device
  44. independent API layer under DOS real-mode and protected mode that
  45. supports virtually all sound cards.  DIGPAK allows playback of digital
  46. sound and MIDPAK allows the playback of General MIDI music on ALL sound
  47. cards (including Adlib, SoundBlaster, and other non-MIDI devices through
  48. the best MIDI emulation package available.)  DIGPAK and MIDPAK
  49. operate either as DOS TSR's or can be demand loaded and dynamically linked
  50. by your application.  (The preferred method).
  51.  
  52. Unzip this file, with sub-directories, into a directory called THEAUDIO
  53. and point your PATH statement to the directory.  Once you have done this
  54. you can go to any directory on your machine containing MIDI files or
  55. sound files and type MENU to use MIDPAK and DIGPAK to peruse them.
  56.  
  57. DIGPAK & MIDPAK are for use by professional DOS developers who need to
  58. incorporate sound and music in their products across a wide range of
  59. hardware devices.  These tools are not for the layperson, or beginning
  60. programmer.  All programming examples and interface specifications are
  61. presented in the C and 8086/80386 assembly languages.  If you are not
  62. familiar with digital sound, MIDI music, and C and assembly language
  63. programming then this programmers kit is probably not for you.
  64.  
  65. This kit supports both DOS real-mode as well as DOS protected mode
  66. interface layers.  All assembly language source code must be assembled
  67. with Borland Assembler (in IDEAL mode) and the C code may be compiled
  68. with any C compiler.  The real-mode C code presented here was developed
  69. with Borland C 3.1 DOS IDE and the flat-model C code was generated under
  70. Watcom C386 v9.0.
  71.  
  72. ==============================================================================
  73. Who developed DIGPAK & MIDPAK?
  74. ========================================================================
  75. DIGPAK and MIDPAK were developed by John W. Ratcliff, a game developer
  76. for Electronic Arts.  These drivers were created to allow me to
  77. incorporte sound and music in my game Seawolf for Electronic Arts.
  78. MIDPAK uses the MIDI drivers developed by John Miles of Miles Design.
  79.  
  80. ==============================================================================
  81. What's the quickest way to look at the software?
  82. ==============================================================================
  83. Run SETUP to configure both DIGPAK and MIDPAK for your sound card.  Then
  84. type MENU to play some music and sound.  After running SETUP you can
  85. also run TEST, TEST16, or SEGUE, to run the demo programs.
  86.  
  87. ==============================================================================
  88. Who uses DIGPAK & MIDPAK?
  89. ========================================================================
  90. The list which follows are just some of the companies which use the
  91. DIGPAK and MIDPAK drivers in their DOS based entertainment products.
  92.  
  93.  Electronic Arts             Epyx
  94.  Activision                 Fun Univ Netwk
  95.  Spectrum Holobyte             Home Brew Software
  96.  The Software Toolworks          Humongous Entertainment
  97.  SSI, Strategic Simulations Inc.     ICOM Simulations
  98.  Milliken Publishing Company         Interplay
  99.  Commodore Computer             IntraCorp
  100.  Virgin Games                 Kram
  101.  Compu-Teach                 Legacy Software
  102.  Knowledge Adventure             Macmillan/McGraw Hill
  103.  Gametek                 Magnetic Images
  104.  Access Software             MECC
  105.  Alive Software              Merit Software
  106.  Azeroth Publishing             Microleage Sports Assoc.
  107.  Bethesda Softworks             Ninga
  108.  C.R.A.P.O., Inc.             Norsehelm Productions
  109.  Concepteva                 Objects, Inc
  110.  Cooper, R.J. & Assoc.             Optimum Resource
  111.  DC True                 Presage Software Co. Inc.
  112.  Dennis Cunningham             Quantum Quality Productions
  113.  Three-Sixty Pacific             Redwood Games
  114.  Destiny Software             Saddleback Graphics
  115.  Edmark Corpoartion             Safari Software
  116.  Simutronics                 White Wolf Productions, Inc.
  117.  Stragem                 XOR Corporation
  118.  T&t Research                 Trilobyte
  119.  Waterford Institute             Masque Publishing
  120.  Wesson International             Iterated Systems
  121.  
  122.         and many more...
  123.  
  124.  
  125. ==============================================================================
  126. What products use DIGPAK & MIDPAK?
  127. ========================================================================
  128. Below is just a very PARTIAL list of the product that use DIGPAK & MIDPAK
  129. drivers.
  130.  
  131. Guardians of Eden    Access Software         MidPak
  132. Return to Zork        Activision            DigPak
  133. Mechwarrior II        Activision            DigPak
  134. Animal Quest        Alive Software            DigPak+MidPak
  135. Magic Crayon        Alive Software            DigPak+MidPak
  136. VGA Jigsaw        Alive Software            DigPak+MidPak
  137. Inspector Gadget:    Azeroth Publishing        DigPak+MidPak
  138. Terminator 2029     Bethesda Softworks        DigPak
  139. Le Ponctueur        C.R.A.P.O., Inc.        DigPak
  140. Bilou            Concepteva            DigPak
  141. Switch Progressions    Cooper, R.J. & Assoc.        DigPak+MidPak
  142. Switch Quik        Cooper, R.J. & Assoc.        DigPak+MidPak
  143. Stepping Stones Bonus    Compu-Teach, Inc.        DigPak+MidPak
  144. Shadow President    DC True             DigPak
  145. T-Zero            Dennis Cunningham        DigPak+MidPak
  146. Battle Cruiser 3000AD    Three-Sixty Pacific        DigPak
  147. Creepers        Destiny Software        DigPak+MidPak
  148. Millie's Math House     Edmark Corpoartion              DigPak
  149. KidDesk         Edmark Corporation        DigPak
  150. Fun Univ Ntwk Intfc    Fun Univ Netwk            DigPak+MidPak
  151. Wheel of Fortune    Gametek             DigPak+MidPak
  152. Gateworld Trilogy    Home Brew Software        MidPak
  153. PuttPutt's FunPack      Humongous Entertainment         DigPak+MidPak
  154. PuttPutt Joins Parade    Humongous Entertainment     DigPak+MidPak
  155. Fatty Bear        Humongous Entertainment     DigPak+MidPak
  156. PuttPutt Goes to the Moon Humongous Entertainment    DigPak+MidPak
  157. Beyond Shadowgate    ICOM Simulations        DigPak+MidPak
  158. Battle Chess 4000    Interplay            DigPak
  159. Grandmaster Chess    IntraCorp            DigPak+MidPak
  160. Space Adventure     Knowledge Adventure        DigPak
  161. Dinosaur Adventure    Knowledge Adventure        DigPak
  162. Realms of Avarton    Kram                DigPak
  163. Mutanoid Math Challenge Legacy Software         DigPak+MidPak
  164. Mutanoid Word Challenge Legacy Software         DigPak+MidPak
  165. Sights & Sounds     Macmillan/McGraw Hill        DigPak
  166. Places to Play        Magnetic Images         DigPak
  167. Oregon Trail Deluxe    MECC                DigPak+MidPak
  168. Tom Landry Football    Merit Software            DigPak+MidPak
  169. MicroLeague Baseball IV Microleague Sports Assoc.    DigPak+MidPak
  170. MicroLeague Football II Microleauge Sports Assoc.    DigPak+MidPak
  171. Microleage Cards    Microleage Sports Assoc.    DigPak
  172. Math Zone        Milliken Publishing        DigPak
  173. Marvin The Moose    Milliken Publishing        DigPak
  174. Milliken Storyteller    Milliken Publishing        DigPak
  175. Math Sequences        Milliken Publishing        DigPak
  176. Cribbage Master     Ninga                DigPak
  177. Ragarok (Valhalla)    Norsehelm Productions        DigPak
  178. Layout for DOS        Objects, Inc            DigPak+MidPak
  179. Stickybear Townbuilder    Optimum Resource        DigPak
  180. Contraption ZAck    Presage Software Co. Inc.    DigPak+MidPak
  181. Spaceward Ho PC     Presage Software Co. Inc.    DigPak+MidPak
  182. Solitaire's Journey     Quantum Quality Productions     DigPak+MidPak
  183. Pickle Wars        Redwood Games            DigPak+MidPak
  184. Guzzle Puzzles        Redwood Games            DigPak
  185. My Paint        Saddleback Graphics        DigPak
  186. Space Chase 1,2,3    Safari Software         MidPak
  187. GemStone III        Simutronics            DigPak+MidPak
  188. Cyberstrike        Simutronics            DigPak+MidPak
  189. WorldAtlas        The Software Toolworks        DigPak+MidPak
  190. Chessmaster 3000    The Software Toolworks        DigPak
  191. BodyLink        Stragem             DigPak
  192. Pools of Darkness    Strategic Simulations Inc.    DigPak
  193. Gateway to the Savage    Strategic Simulations Inc.    DigPak
  194. DNA Parrot        T&t Research            DigPak
  195. Monopoly Deluxe     Virgin Games            DigPak
  196. Waterford Mental Math    Waterford Institute        DigPak+MidPak
  197. ATC/Tracon        Wesson International        DigPak
  198. Empire Deluxe        White Wolf Productions, Inc.    DigPak+MidPak
  199. NFL Challenge        XOR Corporation         DigPak
  200. Chess Maniac 5,000,001    Spectrum Holobyte        DigPak+AIL
  201. The 7th Guest        Virgin/Trilobyte        DigPak+AIL
  202. Seawolf         Electronic Arts         DigPak+MidPak
  203. KaleidoSonics        Masque Publishing        DigPak+MidPak
  204. Gambit            Electronic Arts         DigPak+MidPak
  205. Warlords II        SSG                DigPak+MidPak
  206.  
  207. ==============================================================================
  208. What type of 'commercial products' does the license fee apply to?
  209. ============================================================================
  210. Any piece of software which uses the DIGPAK & MIDPAK drivers for which
  211. the developer collects a fee REQUIRES a license. Yes, this INCLUDES
  212. shareware proudcts as well as those that sit on the shelf at a computer
  213. store. This also includes distributable multimedia demos, for which the
  214. multimedia authors were paid a fee to create.  If you are bidding on a
  215. multimedia project and intend to use MIDPAK and DIGPAK, then be sure to
  216. include the $1,000 license fee in your budget!
  217.  
  218. If you are making money because of the value that these drivers add to
  219. your product, then we deserve a license.  There are several man-YEARS of
  220. engineering work in these drivers, as well as continued expenses to
  221. maintain them.    The license fee serves as little more than a
  222. 'maintenance' fee for us to keep the drivers up to date, as well as run
  223. the BBS for people to get continued improvements and updates.
  224.  
  225. Do NOT use DIGPAK and MIDPAK if you are not prepared to pay the license
  226. fee.  Every single one of the products and companies listed above have
  227. paid this same license fee for the right to distribute the DIGPAK and
  228. MIDPAK drivers.
  229.  
  230. ==============================================================================
  231. Can I get a DIGPAK and MIDPAK license for a development tool?
  232. ============================================================================
  233. NO!!  The license for DIGPAK and MIDPAK is for multimedia,
  234. entertainment, and educational products which need support for
  235. interactive sound and music.  Development tools based on the DIGPAK and
  236. MIDPAK drivers are NOT allowed!!  If you want to create a development
  237. package that utilizes the DIGPAK and MIDPAK drivers then you must
  238. contact me directly to discuss such an arrangment.  You are NOT allowed
  239. to resell, DIGPAK and MIDPAK drivers under any conditions as a
  240. developers toolkit. This includes any sort of multimedia authoring
  241. toolkit.  The reason for this should be obvious. You would be in effect
  242. re-distributing DIGPAK and MIDPAK drivers license free, to other
  243. developers, and this is not allowed.  That's not to say we can't come to
  244. an agreement, but you cannot obtain a license for any type of
  245. developement or authoring system using DIGPAK and MIDPAK drivers.
  246.  
  247. ==============================================================================
  248. What do I do if I want to add sound and music support by don't want
  249. to pay a license?
  250. ============================================================================
  251. Call Mystic Software at 1-510-865-9189.  The Worx toolkit from Mystic
  252. software does not require any license fee and is a very nice development
  253. package.  Though it does not support as many sound cards as DIGPAK &
  254. MIDPAK, it is a very servicable development tool.
  255.  
  256. ==============================================================================
  257. What if my shareware product has a free portion, and then a registered
  258. portion?
  259. ============================================================================
  260. Then no license fee applies for the FREE version.  If you are developing
  261. public domain tools and utilities that support DIGPAK & MIDPAK, and they
  262. are truely FREE, then no license fee applies.  If that public domain
  263. tool is a development aid, tool, or authoring system, then the DIGPAK
  264. and MIDPAK portion of that tool MUST contain this COMPLETE document and
  265. make it extremely clear that the distribution license fee still applies
  266. to anyone using that authoring tool.
  267.  
  268. ==============================================================================
  269. If I use both DIGPAK and MIDPAK in a product how much is the total
  270. license then?
  271. ============================================================================
  272. $500 for DIGPAK and $500 for MIDPAK, for a total of $1,000.  Even if you
  273. sell 100,000 copies of the product, the license is still only $1,000.
  274. Unfortunatly even if you sell just 100 copies, the fee applies as well.
  275.  
  276. ==============================================================================
  277. How do I pay my license?
  278. ==============================================================================
  279. Write a check payable to The Audio Solution, and include with it a copy
  280. or your product.  Mail the check to:
  281.  
  282.     The Audio Solution
  283.     John W. Ratcliff
  284.     747 Napa Lane
  285.     St. Charles, MO 63304
  286.  
  287. Shortly thereafter you will receive a signed copy of the license agreement.
  288. Once you have paid the license fee, the agreement is considered in effect
  289. and you may distribute your product with the drivers.  You must, however,
  290. pay the license fee PRIOR to your product being shipped.
  291.  
  292. DIGPAK & MIDPAK are copyrighted software components.  If you distribute
  293. The Audio Solution drivers without having a signed license agreement you
  294. will be in violation of our copyright.    Your product could be required to
  295. be immediatly removed from retail distribution.  I don't think this is
  296. going to be a problem.
  297.  
  298. If you don't think DIGPAK & MIDPAK add $1,000 of value to your product, then
  299. do not use them, period.  Use the Worx Toolkit from Mystic, or write your
  300. own sound code.  But DO NOT use these drivers unless you intend to pay the
  301. license fee.
  302.  
  303. All DIGPAK drivers combined equal almost 20,000 lines of assembly code.
  304. And the same is true for all of the MIDPAK drivers.  John Miles and myself
  305. have invested over 4 years creating and maintaining these drivers.  We
  306. are making this developers kit widely available to the developer community
  307. as a service to the industry.  It is our goal to make these excellent
  308. development tools available to everyone.  But we have bills to pay like anyone
  309. else.  As a self-employed entrepenuer I do not get a paycheck,
  310. health insurance, paid vacations, or any of the outher ammenities that
  311. salaried employees have.  If people use these tools to enhance their product
  312. and generate revenue, then I feel strongly that I should be paid a
  313. license fee for these drivers.
  314.  
  315. ==============================================================================
  316. I'm a shareware author and I can't afford $1,000 until I get enough
  317. registrations.    What do I do?
  318. ============================================================================
  319. Send me a copy of your shareware product on my BBS along with a piece of
  320. e-mail explaining your situation.  In most cases I will issue a SHAREWARE
  321. LICENSE AGREEMENT that will require payment of the FULL license fee once
  322. you have received 500 paid registrations for your product.  If you don't
  323. receive 500 registrations, then you will not have to pay the license fee.
  324. But once you have received 500 registrations you MUST pay the license fee.
  325. As a shareware author I'm certain you understand not wanting to be ripped
  326. off, and likewise I would expect you to pay your license for the DIGPAK
  327. and MIDPAK drivers in good faith.  You must come to an agreement with me
  328. prior to the release of your shareware package.
  329.  
  330. ==============================================================================
  331. I'm doing software development for the disabled.  Even though I have
  332. to charge a fee for the software to cover expenses, we are a non-profit
  333. organization.  Could I be exempted from the license fee?
  334. =========================================================================
  335. In general yes.  I would like to provide exemptions to anyone using
  336. DIGPAK and MIDPAK to create software to help the disabled.  However, you
  337. will still need to receive a signed license agreement with that
  338. exemption. Please contact me ahead of time (via Compuserve or my BBS),
  339. and let me know about what you are doing.  When your project is complete
  340. you will receive a signed distribution license agreement, with the
  341. exemption.  Simply send me a copy of your product and a check for $1 to
  342. cover the license fee.    This DOES NOT include EDUCATIONAL SOFTWARE
  343. created by any FOR PROFIT organization.
  344.  
  345. ==============================================================================
  346. What kind of digitized sound format does DIGPAK support?
  347. ==========================================================================
  348. None.  DIGPAK is a low-level API layer.  It simply insulates the programmer
  349. from having to talk DIRECTLY to the hardware.  The data you pass to DIGPAK
  350. is the same data you would have been passing to the sound card itself.
  351. DIGPAK requires raw 8 bit unsigned PCM data in the first 1mb of address
  352. space in under 64k lengths.  Stereo 8 bit support is provided with
  353. interleaved left channel/right channel 8 bit samples.  Support for
  354. 16 bit digital sound in DIGPAK is provided through raw 16 bit SIGNED
  355. data.  Why signed?  Because every single 16 bit PC sound card I have
  356. encountered supports 8 bit unsigned PCM and 16 bit signed PCM.    The
  357. DIGPAK drivers, in almost every case, simply passes that chunk of
  358. audio data out to the DMA controller.
  359.  
  360. Interpreting .WAV files, .VOC files, or .ANYTHING files is a higher application
  361. level problem, one that you will have to provide support for yourself.    Since
  362. I always use audio data in RAW format by brining it over from the Macintosh
  363. I have no use or need for various sound file formats.
  364.  
  365. If you don't know what 8 bit unsigned PCM, 8 bit interleaved sound, and
  366. 16 bit signed sound means, then you will have to ask around on the networks
  367. or read some books.  Though I have insulated the user from the ugly
  368. details of the hardware layer, I can't insulate you from knowing about
  369. sound programming.  That you will still have to do on your own.
  370.  
  371. ==============================================================================
  372. How do I play many sounds at once?
  373. ==============================================================================
  374. DIGPAK supports only a single channel of sound at once, which reflects
  375. the nature of almost every single PC sound card on the market.    To play
  376. multiple sounds at one time requires that you 'mix' digital sound
  377. samples in real-time.  Under protected mode DIGPAK I have a digital mixer
  378. that keeps a constantly running stream of audio data, up to 16 channels
  379. in 16 bit 11khz stereo in real-time taking almost none of the machine's
  380. CPU.
  381.  
  382. I also consider this mixer highly proprietary.    I am not prepared to
  383. tell you how I did it, or how you can do it.  I simply mention it here
  384. to let you know that it can be done.  With my system I create an
  385. immersive environmental sound system.  Unlike a MOD player which must be
  386. able to react to percussive changes in as little as a 100ths of a
  387. second, my environmental sound system allows the application to que any
  388. sound going on inside a 3d environment in real time.  If someone is
  389. shooting off to your left, then you hear the shots going by.  If an
  390. airplane is flying overheard, you hear not only the plane's engine noise
  391. but also doppler shift and depth cueing via volume changes.
  392.  
  393. Just look a little at how sounds work in DOOM and you will get an ideal about
  394. the importance of immersive virtual sound.  I'm not interested in selling
  395. my environmental sound system because I consider it part of my competitive
  396. edge in the game industry.  I simply mention it here to make it very clear
  397. that the DIGPAK interface does not by any means limit you in terms of what
  398. you can do on the various sound cards.    It is only the smallest of layers
  399. between your application and the physical DMA transfer that a sound card
  400. has to do anyway.
  401.  
  402. The DIGPAK API is no more limiting than the sound card itself.    You can
  403. make it do as much or as little are your programming skills will take
  404. you.
  405.  
  406. ==============================================================================
  407. How do I get technical support?
  408. ==============================================================================
  409. You ask around.  Look at the list of products above.  DIGPAK and MIDPAK work.
  410. Many other programmers as well as myself have been able to do tremendous
  411. things with the DIGPAK and MIDPAK programming interface.  Just look at any
  412. of the PuttPutt products from Humongous Entertainment, or the music and sound
  413. in The 7th Guest (which doesn't directly use MIDPAK but uses the same MIDI
  414. driver and patch bank).  Programming a computer is extremely difficult.
  415. That's why I have provided and will continue to provide lots of sample
  416. source code for DIGPAK and MIDPAK.
  417.  
  418. But I cannot provide one-on-one technical support.  I have to write my games
  419. too, and I have found out that just answering hundreds of people's programming
  420. questions is a full-time job I'm not capable of keeping up with.  First
  421. of all DIGPAK and MIDPAK licenses barely cover the cost of keeping the BBS
  422. up and running.  Nobody wants me to charge even MORE for the drivers.
  423.  
  424. I haven't sold the DIGPAK and MIDPAK programmers kit for over a year.  By
  425. making the DIGPAK and MIDPAK programmers kit widely available electronically
  426. I hope to make lots of people educated in the use of the DIGPAK and MIDPAK
  427. programmers interface.    Thus help will be available on the Internet,
  428. Compuserve, and other places in the electronic community.
  429.  
  430. ==============================================================================
  431. What about VESA?
  432. ==============================================================================
  433. The multimedia sound card industry is highly political.  I am fully
  434. supporting the VESA standard for sound and music.  But it's not going to
  435. happen overnight.  It will take at least the next 18 months before you
  436. will be able to get the kind of sound driver support under VESA that is
  437. currently available with DIGPAK and MIDPAK.  Additionally DIGPAK and
  438. MIDPAK act as a value added API layer on top of VESA.  Especially MIDPAK
  439. which provides extensive support for midi parsing, and interrupt service
  440. control.
  441.  
  442.  
  443. ==============================================================================
  444. How do I use DIGPAK drivers?
  445. ==============================================================================
  446. The DIGPAK drivers all have the filename extension of .COM.  Starting at
  447. byte offset 3 from the beginning of the file is the ascii string
  448. 'DIGPAK'.  The default DIGPAK driver should always be copied to the
  449. filename SOUNDRV.COM.  DIGPAK drivers hook user interrupt vector 66h,
  450. which is documented briefly in the book 'PC Interrupts: A Programmer's
  451. Reference To BIOS, DOS, and Third-Party Calls' by Ralf Brown and Jim
  452. Kyle, published by Addison Wesley.
  453.  
  454. You configure a DIGPAK driver by running the program SETD.EXE.
  455.  
  456. The complete API documentation for DIGPAK is in the file DIGPKAPI.DOC.
  457. The C link layer for DIGPAK is through the C prototype header file
  458. DIGPLAY.H and by linking to the object module DIGPLAY.OBJ produced
  459. from DIGPLAY.ASM.
  460.  
  461. A DIGPAK driver can be loaded as a TSR simply by typing it's name.
  462. You can load the default sound driver, as a TSR, by typing 'SOUNDRV'
  463. and hitting enter.  You can unload that driver by typing 'SOUNDRV U'.
  464. The preferred method of using a DIGPAK driver is to demand load it
  465. in your program.  This is done by including the header file LOADER.H
  466. in your program and linking to LOADER.C.
  467.  
  468. Simply look at the sample program TEST.C which fully demonstrates
  469. loading both DIGPAK and MIDPAK and plays both music and sound effects.
  470.  
  471.  
  472. ==============================================================================
  473. How do I use MIDPAK drivers?
  474. ==============================================================================
  475. The SETM program will configure MIDPAK appropriately for your sound card
  476. configuration.    SETM creates the three file components for MIDPAK.  They
  477. are MIDPAK.COM, MIDPAK.ADV, and MIDPAK.AD. MIDPAK.COM is the MIDPAK
  478. driver itself, which provides the API functionality through user
  479. interrupt vector 66h.  MIDPAK loads into INT 66h as a layer ON TOP OF
  480. DIGPAK.  Meaning if you want to use both DIGPAK and MIDPAK at the same
  481. time, you first load DIGPAK, and then load MIDPAK.  The file MIDPAK.ADV
  482. is the AIL MIDI driver from Miles Design Inc.  MIDPAK represents a
  483. subset of the full AIL specification.  The complete AIL (Audio Interface
  484. Library) supports vastly greater interactive control over music.  If you
  485. are interested in purchasing the complete AIL system you can call Miles
  486. Design at 1-512-345-2642.  The AIL license includes full-source code
  487. disclosure, real-mode, protected mode, and Windows DLL versions, and a
  488. $7,500 one-time license fee (not for all three versions, but for each).
  489. Please don't call if you aren't prepared to pay the full license amount.
  490.  
  491. The last file is MIDPAK.AD.  This is the instrument definition file for
  492. OPL2 and OPL3 base sound cards (adlib, soundblaster, etc.).  This file
  493. is ignored on hardware MIDI implementation sound cards like the Sound
  494. Canvas, but is still must exist in the directory at load time.
  495.  
  496. This instrument file conforms to the general MIDI specification and
  497. was created by The Fat Man.  There is a distribution license fee
  498. associated with the use of this MIDPAK.AD file!  You must mail a
  499. copy of your product, a check for $1, and include the following credit:
  500.  
  501.  "General MIDI patches (c) 1994 The Fat Man and K. Weston Phelan"
  502.  
  503.  
  504.     The Fat Man
  505.     7611 Shoal Creek Blvd.
  506.     Austin, TX 78757
  507.     1-512-454-5775
  508.     BBS: 1-512-454-9990
  509.  
  510. Call the Fat Farm BBS to obtain more detailed information regarding the
  511. General MIDI license agreement.
  512.  
  513. Like DIGPAK, MIDPAK can be loaded and unloaded as a TSR.  Simply type
  514. 'MIDPAK' and it will load and stay resident.  Typing 'MIDPAK U' will
  515. unload the MDIPAK driver.
  516.  
  517.  
  518. ==============================================================================
  519. What is 'eXtended MIDI'?
  520. ==============================================================================
  521. MIDPAK, because it uses the AIL drivers from Miles Design, does not play
  522. MIDI files DIRECTLY.  Your MIDI file must be converted into eXtended
  523. MIDI format.  This is a pre-parsed MIDI file format created by Miles Design.
  524. The eXtended MIDI file format supports multiple MIDI sequences in a
  525. single file, that MIDPAK will let you switch to almost instantly using
  526. the PlaySequence command.  You add multiple MIDI files to a single eXtended
  527. MIDI file (XMI) as follows:  Say you have three song files call SONGA.MID
  528. SONGB.MID and SONGC.MID and wanted to put them all in one XMI file.
  529. You would do the following:
  530.  
  531.     MIDIFORM SONG.XMI SONGA.MID SONGB.MID SONGC.MID
  532.  
  533. This places the three MIDI sequences into the single eXtended MIDI
  534. file SONG.XMI.    They would be accessed in MIDPAK as PlaySequence(0)
  535. PlaySequence(1) and PlaySequence(2).
  536.  
  537.  
  538. ==============================================================================
  539. What format should the MIDI data be in?
  540. ==============================================================================
  541. On a true MIDI device like an MPU401 MT-32 or SoundCanvas, exactly what
  542. is found in the MIDI stream is passed to the device.  So however that
  543. MIDI device responds to MIDI is what gets passed down.    (Excluding
  544. SysEx messages).
  545.  
  546. But on an Adlib or SoundBlaster MIDPAK EMULATES a MIDI device.    And that
  547. EMULATION has certain restrictions.
  548.  
  549. Channels 2-9 are the melodic tracks.
  550. Channel  10 percussions.
  551.  
  552. The patch set is in the general MIDI format.
  553.  
  554. I know very little about MIDI, and rely heavily on professional MIDI
  555. composers to provide my music.    To get your MIDI music into MIDPAK
  556. compatible format so that is sounds GREAT, you can contact the
  557. following composers:
  558.  
  559.  
  560.     Wallace Music & Sound
  561.     Rob Wallace, Executive Producer
  562.     6210 West Pershing Avenue
  563.     Glendale, Arizona 85304-1141
  564.     1-602-979-6201
  565.  
  566.     Computer Music Consulting
  567.     Donald S. Griffin
  568.     239 Richland Avenue
  569.     San Francisco, CA 94110
  570.     415-285-3852
  571.  
  572.     The Fat Man
  573.     7611 Shoal Creek Blvd.
  574.     Austin, TX 78757
  575.     1-512-454-5775
  576.  
  577. These guys have all done numerous projects composing with AIL and
  578. MIDPAK.  They know how to make an Adlib, SoundBlaster, and SoundCanvas
  579. sound AWESOME.    But they are also professionals.  Please DO NOT CALL
  580. any of these guys unless you are prepared to accept a bid for a project.
  581.  
  582. If you think the license fee for MIDPAK at $500 is high, then wait
  583. until you find out how much a professional music score costs.  Even
  584. for a small project you are talking several thousand dollars.  So
  585. unless you have a legitimate music budget please do not call these
  586. guys.
  587.  
  588. I would recommend that you call Rob Wallace and get a bid on having
  589. all of your musical scores tweaked for the various sound cards.
  590.  
  591.  
  592. ==============================================================================
  593. When I play my MIDI music with MIDPAK some of the music seems to be missing?
  594. ==============================================================================
  595. Check your channel assignments.  MIDI emulation on SoundBlaster etc, occurs
  596. on channels 2-9 for melodic tracks, and channel 10 for percussions.  A lot
  597. of sequencing software saves MIDI out starting with channel 1.    Channel
  598. 1 is ignored under MIDPAK's MIDI emulation.  MIDPAK channel assignments
  599. were designed to emulate those of a Roland MT-32.  Even though we have
  600. provided a set of General MIDI patch assignments, the channel assignments
  601. are still limited to 2-9 and 10 as indicated here.
  602.  
  603. ==============================================================================
  604. The music on MIDPAK sounds differently than inside my sequencer?
  605. ==============================================================================
  606. Your sequencer is using a different set of patchs than MIDPAK uses.  Contact
  607. any of the composers mentioned above to get your MIDI tweaked to sound good
  608. with the MIDPAK patches.  BE PREPARED TO PAY A REASONABLE FEE FOR THIS
  609. SERVICE!!  I strongly recommend getting your music done professionally.
  610. The composers listed above have great experience at making music
  611. sound good with MIDPAK.
  612.  
  613. ==============================================================================
  614. When I specify a volume change with MIDPAK nothing happens?
  615. ==============================================================================
  616. MIDPAK's volume changes are relative to the base volume for that channel.
  617. If you didn't specify a base volume for each channel in your MIDI file then
  618. MIDPAK can't change the volume.  You specify the base volume for a MIDI channel
  619. with a controller 7.
  620.  
  621. ==============================================================================
  622. Can I use the same MIDI file for all sound cards?
  623. ==============================================================================
  624. No.  But you can come close.  Start by scoring for general MIDI, but it's
  625. best to tweak for SoundCanvas, General MIDI, OPL2/OPL3, and re-patch for
  626. MT-32.    Base volumes are quite a bit different on each device, and different
  627. patches sound better/worse across these devices.  The source code to the
  628. SETM (MIDPAK configuration program) is provided within (SETUP.ZIP) and
  629. depending on which sound driver the user selects you can copy different
  630. versions of your music.
  631.  
  632. ==============================================================================
  633. Why does MIDPAK hang under Windows?
  634. ==============================================================================
  635. Because of a bug in Microsoft Windows it doesn't support all of the
  636. hardware interrupts on the machine.  Specifically the CMOS real-time
  637. clock which MIDPAK uses.  If you use the TMIDPAK.COM version if MIDPAK
  638. this will work under Windows but it might casue other conflicts with
  639. your application.  One option is to use PMIDPAK.COM (polled MIDPAK) and
  640. to service the MIDI interrupt (at 120hz) yourself.
  641.  
  642.  
  643. ==============================================================================
  644. What are all of these files?
  645. ==============================================================================
  646.  
  647. ADLIB.ADV    Adlib AIL MIDI driver.
  648. ADLIB.ADD    Description file for ADLIB.ADV
  649. ADLIB.COM    DIGPAK Adlib digital sound driver.
  650.  
  651. ADLIBG.COM    Adlib Gold DIGPAK sound driver.
  652. ADLIBG.ADV    Adlib Gold AIL MIDI driver.
  653. ADLIBG.ADD    Description file for ADLIBG.ADV
  654.  
  655. AGU16.XMI    Demonstration MIDI file by The Fat Man
  656. AGU16.DES    MENU Description file for AGU16.XMI
  657.  
  658. ARIA.COM    DIGPAK sound driver for Sierra Semiconductors Aria cards.
  659. ARIAXMID.ADV    Aria AIL MIDI driver.
  660. ARIAXMID.ADD    Description file for ARIAXMID.ADV
  661. GM2.BNK     General MIDI intrument file for ARIA (REQUIRED!)
  662.  
  663. BIGMOUTH.COM    DIGPAK driver for Talking Technologies BigMouth card.
  664.  
  665. CMIDPAK.COM    CMOS real-time clock version of MIDPAK>
  666.  
  667. COOL!.SND    Demonstration sound effect from Wallace Music & Sound
  668. COOL!.DES    MENU Description file for COOL!.SND
  669.  
  670. CREDITS.XMI    Demonstration MIDI file from Wallace Music & Sound
  671. CREDITS.DES    MENU Description file for CREDITS.XMI
  672.  
  673. CVXSND.COM    DIGPAK sound driver for Covox Speech Thing.
  674.  
  675. DESERT.XMI    Demonstration MIDI file from Wallace Music & Sound
  676. DESERT.DES    MENU Description file for DESERT.XMI
  677.  
  678. DIGISP.COM    DIGPAK driver for Digispeech DS201.
  679.  
  680. DIGPKAPI.DOC    API Specification Documentation for DIGPAK.
  681.  
  682. DIGVESA.COM    DIGPAK sound driver for VESA compliant Wave interface.
  683.  
  684. DOS4GW.EXE    DOS 4GW DOS Extender used for Flat-Model DEMO programs.
  685.  
  686. EARTH.XMI    Demonstration MIDI file from Wallace Music & Sound
  687. EARTH.DES    MENU Description file for EARTH.XMI
  688.  
  689. ECHOII.COM    DIGPAK sound driver for Street Electronics Echo II
  690.  
  691. FAT.OPL     MIDPAK General MIDI patch set by the Fat Man.
  692.  
  693. FLAT <DIR>    Contains full source to protected mode interface for
  694.         DIGPAK & MIDPAK.
  695.  
  696. GENMID.ADV    AIL MPU401 General MIDI driver.
  697. GENMID.ADD    Description file for GENMID.ADV
  698.  
  699. GF166.COM    DIGPAK driver for Gravis Ultrasound
  700. GF1MIDI.ADV    AIL MIDI driver for Gravis Ultrasound
  701. GF1MIDI.ADD    Description file for GF1MIDI.ADV
  702.  
  703. GU23.XMI    Demonstration MIDI file by The Fat Man
  704. GU23.DES    MENU Description file for GU23.XMI
  705.  
  706. IBM1BIT.COM    DIGPAK PC Speaker driver 1 bit sound.
  707. IBMBAK.COM    DIGPAK PC Speaker driver, foreground only.
  708. IBMSND.COM    DIGPAK PC Speaker driver, limited background audio.
  709.  
  710. LANTSND.COM    DIGPAK driver for Lantastic Audio Adaptor from Artistoft.
  711.  
  712. LSIZE.COM    DIGPAK driver for the Life Size Sound Enhancer.
  713.  
  714. MAJESTY.XMI    Demonstration MIDI file from Wallace Music & Sound
  715. MAJESTY.DES    MENU Description file for MAJESTY.XMI
  716.  
  717. MARIO.XMI    Demonstration MIDI file from Wallace Music & Sound
  718. MARIO.DES    MENU Description file for MARIO.XMI
  719.  
  720. MENU.EXE    MIDPAK & DIGPAK Music & Sound browser.
  721.  
  722. MIDIFORM.EXE    Convert MIDI files into eXtended MIDI file format (XMI)
  723.  
  724. MIDPAK.ADV    Currently configured AIL MIDI driver.
  725. MIDPAK.COM    Currently configured MIDPAK driver.
  726. MIDPAK.AD    Currently configured MIDPAK patch bank file.
  727.  
  728. MIDPKAPI.DOC    API Specification Documentation for MIDPAK.
  729.  
  730. MT32MPU.ADV    AIL MIDI driver for MT-32/LAPC
  731. MT32MPU.ADD    Description file for MT32MPU.ADV
  732.  
  733. MULTISND.ADV    Turtle Beach Multisound AIL MIDI driver.
  734. MULTISND.ADD    Description file for MULTISND.ADV
  735. MULTISND.COM    DIGPAK Turtle Beach Multisound driver.
  736.         (BETA, requires PRESETS utility to have been run,
  737.         see TURTLE.ZIP)
  738.  
  739. NEWS.XMI    Demonstration MIDI file from Wallace Music & Sound
  740. NEWS.DES    MENU Description file for NEWS.XMI
  741.  
  742. NOSOUND.COM    Functional DIGPAK driver that plays no sound.  Responds
  743.         to all DIGPAK functions, for timing considerations but
  744.         takes little CPU.  Sometimes preferable over the lame
  745.         PC Speaker drivers.
  746.  
  747. PAS16.COM    DIGPAK sound driver for MediaVision ProAudio Spectrum 16
  748.         and Logitech Soundman 16.  Full 16 bit sound support.
  749.  
  750. PASFM.ADV    AIL MIDI driver for ProAudio Spectrum
  751. PASFM.ADD    Description file for PASFM.ADV
  752.  
  753. PASOPL.ADV    AIL MIDI driver for ProAudio Spectrum 16, etc.
  754. PASOPL.ADD    Description file for PASOPL.ADD
  755.  
  756. PAUDIO.COM    ProAudio Spectrum DIGPAK sound driver.
  757.  
  758. PCSPKR.ADV    AIL PC Speaker driver (only responds to channel 2 of MIDI)
  759. PCSPKR.ADD    Description file for PCSPKR.ADV
  760.  
  761. PEND.EXE    Flat model demo program, uses PostAudioPending calls
  762.         and auto-init DMA.  To use type PEND PEND.SND after
  763.         you have configured a DIGPAK sound driver.
  764.  
  765. PEND.SND    Demo sound effect for PEND.EXE
  766.  
  767. PMIDPAK.COM    Polled version of MIDPAK.  Application required to
  768.         provide timer services.
  769.  
  770. REAL<DIR>    Demonstration source code in normal DOS real-mode.
  771.  
  772. REMOVE.BAT    Batch file to remove configured MIDPAK and DIGPAK
  773.         sound drivers.
  774.  
  775. SB16.COM    BETA DIGPAK sound driver for SoundBlaster 16.
  776.         Supports 16 bit stereo sound.
  777.  
  778. SBCLONE.COM    DIGPAK sound driver for SoundBlaster Clones.
  779.  
  780. SBFM.ADV    AIL SoundBlaster MIDI driver.
  781. SBFM.ADD    Description file for SBFM.ADV
  782.  
  783. SBLASTER.COM    Creative Labs SoundBlaster DIGPAK sound driver.
  784.  
  785. SBP1FM.ADV    AIL SoundBlaster Pro original MIDI driver.
  786. SBP1FM.ADD    Description file for SBP1FM.ADV
  787.  
  788. SBP2FM.ADV    AIL SoundBlaster Pro current MIDI driver (OPL3).
  789. SBP2FM.ADD    Description file for SBP2FM.ADV
  790.  
  791. SBPRO.COM    Creative Labs SoundBlaster Pro DIGPAK sound driver.
  792.  
  793. SC32MPU.ADV    AIL MIDI driver for Roland Sound Canvas
  794. SC32MPU.ADD    Description file for SC32MPU.ADV
  795.  
  796. SEA.XMI     Demonstration MIDI file from Wallace Music & Sound
  797. SEA.DES     MENU Description file for SEA.XMI
  798.  
  799. SEGUE.EXE    Demonstration flat model program using SegueSequence.
  800.  
  801. SENSAT.ADV    AIL MIDI driver for Tandy Sensation.
  802. SENSAT.ADD    Description file for SENSAT.ADV
  803.  
  804. SETD.SND    Demonstration sound effect for DIGPAK setup program SETD
  805. SETD.EXE    DIGPAK setup/config program.  Source in SETUP.ZIP
  806. SETD.DES    MENU Description file for SETD.SND
  807.  
  808. SETM.XMI    Demonstration MIDI file for MIDPAK setup program SETM
  809. SETM.EXE    MIDPAK setup program. Source code in SETUP.ZIP
  810. SETM.DES    Description file for SETM.XMI
  811.  
  812. SETUP.ZIP    Source code to SETM and SETD.  Borland C 3.1 format.
  813.  
  814. SETUP.BAT    Batch file to configure both DIGPAK and MIDPAK drivers.
  815.  
  816. SHYA!.SND    Demonstration sound effect from Wallace Music & Sound
  817. SHYA!.DES    MENU Description file for SHYA!.SND
  818.  
  819. SKY.XMI     Demonstration MIDI file from Wallace Music & Sound
  820. SKY.DES     MENU Description file for SKY.XMI
  821.  
  822. SMSND.COM    Covox Voice Master II, SoundMaster I, DIGPAK driver.
  823.  
  824. SNDSYS.COM    Microsoft Windows Sound System DIGPAK driver.
  825.  
  826. SOUNDRV.COM    Default configured DIGPAK sound driver.
  827.  
  828. SOURCE.COM    Walt Disney Sound Source DIGPAK sound driver.
  829.  
  830. STFX.COM    ATI Stereo FX DIGPAK sound driver.
  831.  
  832. TANEXTX.COM    Tandy EX/TX/SX/HX PC jr, DIGPAK sound driver.
  833.  
  834. TANSLTL.COM    Tandy Sensation DIGPAK sound driver.
  835.  
  836. TEST.EXE    Flat Model DIGPAK/MIDPAK demonstration program.
  837. TEST.SND    Demonstration sound effect.
  838. TEST.XMI    Demonstration MIDI file.
  839. TEST1.SND    Another test sound effect.
  840. TEST16.EXE    Flat model DIGPAK demo program of all DIGPAK play modes.
  841. TEST2.SND    Another test sound effect.
  842.  
  843. TITLE.XMI    Demonstration MIDI file from Wallace Music & Sound
  844. TITLE.DES    Description file for TITLE.XMI
  845.  
  846. TMIDPAK.COM    8253 Timer Based MIDPAK.
  847.  
  848. VECTOR.COM    Interrupt vector handler used by flat-model demo programs.
  849.  
  850. VMSND.COM    Covox Voice Master I DIGPAK sound driver.
  851.  
  852. WSS.ADV     AIL MIDI driver for Microsoft Windows Sound System.
  853. WSS.ADD     Description file for WSS.ADV
  854.  
  855.  
  856.