README
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:18k
源码类别:

Windows CE

开发平台:

C/C++

  1.   Hello folks!
  2. This is libmikmod, version 3.2.0-beta1, a portable sound library for Unix
  3. and other systems. Check out the file 'NEWS' for more history information.
  4. >> BETA WARNING
  5. ---------------
  6. This is a *beta* version of libmikmod. Although it should work fine on
  7. almost all systems, there are likely a few last-minute errors or typos
  8. in the source, and some parts have not received enough hours of testing yet.
  9. Also, please note that all features planned for the final 3.2.0 release are not
  10. available yet. Some structures or functions may change. This release is mainly
  11. intended to the libmikmod developers to share a common base for adding new
  12. features...
  13. The library programming documentation (in docs/) is mostly up-to-date... It
  14. lacks the Player_QueryVoices documentation, though.
  15. If you're not scared, then you can proceed and enjoy fewer bugs than in the
  16. previous version (-;
  17. >> BUILDING LIBMIKMOD
  18. ---------------------
  19. - If you're building libmikmod under MacOS, please refer to the 'README'
  20.   file located in the 'macintosh' subdirectory.
  21. - If you're building libmikmod under OS/2, please refer to the 'README'
  22.   file located in the 'os2' subdirectory.
  23. - If you're building libmikmod under Windows, please refer to the
  24.   'README' file located in the 'win32' subdirectory.
  25. - If you're building libmikmod under any other system which is not a
  26.   Unix flavour, then be warned that this your platform is not supported
  27.   and that libmikmod will probably not build out of the box; don't
  28.   hesitate to drop me a note, and I'll see what I can do for this situation.
  29. So you're on a good old Unix workstation, aren't you ?
  30. You'll need an ANSI C compiler to build libmikmod. If your system does not
  31. come with an ANSI C compiler, you might want to try the GUN C compiler, gcc.
  32. If you're building on a 32 bit architecture, your compiler must provide a
  33. 64 bit integer type (usually 'long long').
  34. To prevent clobbering the sources, I recommend building libmikmod in an
  35. alternate directory, for example 'build':
  36.   mkdir build
  37.   cd build
  38. In this directory, run libmikmod's configure script:
  39.   ../configure
  40. The configure script will attempt to guess correct values for various
  41. system-dependent variables used during the build process, and will
  42. create appropriate Makefiles for proper compilation.
  43. If you're not familiar with configure scripts and their standard
  44. options, you can find more general information about them in the file
  45. INSTALL.
  46. The default behaviour of the configure script is to create both a static
  47. and a shared library, with as many drivers as possible, which are
  48. dynamically loaded whenever possible. However, it can be given several
  49. options to tweak your configuration of libmikmod:
  50. The --enable-af, --enable-alsa, --enable-esd, --enable-oss,
  51. --enable-sam9407 and --enable-ultra options will compile respectively
  52. the Digital AudioFile, Advanced Linux Sound Architecture (ALSA),
  53. Enlightened Sound Daemon, Open Sound System (OSS), sam9407 and Linux
  54. Ultrasound drivers.
  55. Since the configure script will search for the appropriate include files
  56. and libraries, to compile as much drivers as possible, these options are
  57. mostly useful in their negative form:
  58.   ../configure --disable-esd
  59. will configure libmikmod without the Enlightened Sound Daemon driver,
  60. even if all the necessary files for compiling are present on the
  61. system.
  62. The --enable-dl option enables the dynamic load of the alsa, esd and
  63. ultra drivers at runtime, if your systems support it. This option is
  64. enabled by default if the build system supports it, so it is more useful
  65. in its negative form:
  66.   ../configure --disable-dl
  67. will configure libmikmod without the dynamic loading facility.
  68. The --enable-threads option enables the creation of a thread-safe
  69. libmikmod library, if your system provides POSIX threads. This option is
  70. enabled by default, so it is more useful in its negative form:
  71.   ../configure --disable-threads
  72. will configure for a non thread-safe version of libmikmod.
  73. The --enable-shared and --enable-static options control whether a static
  74. library, a shared library or both should be built.
  75. The --enable-debug option creates a debug version of libmikmod.
  76. After you've successfully run configure, simply run
  77.   make
  78. to get all things build. Then, run
  79.   make install
  80. to have the library installed. Depending on where you choose to install
  81. it (using the --prefix= option to configure), you may need root
  82. privileges for this operation.
  83. >> DRIVER PARAMETERS
  84. --------------------
  85. Until a good place to put this information is found, here is the list of
  86. parameters recognized by the drivers, as well as the driver alias list.
  87. When specifying multiple parameters, use a comma (,) to separate the
  88. different parameters, for example: somevalue=1,someothervalue=2
  89. - AudioFile (alias "audiofile")
  90.   machine=  same syntax as the AUDIOFILE environment variable.
  91. - AIX ("AIX") [AIX only]
  92.   buffer=   logarithmic size of the buffer, in the range 12-19. Default
  93.             is 15.
  94. - ALSA ("alsa") [Linux only]
  95.   card=     card number. Default is first pcm-capable card. Replaces the
  96.             ALSA_CARD environment variable, which is now deprecated.
  97.   pcm=      pcm interface number. Default is first adequate interface.
  98.             Replaces the ALSA_PCM environment variable, which is now
  99.             deprecated.
  100.   buffer=   logarithmic fragment size, in the range 2-16. Default is 4.
  101.             Replaces the MM_NUMFRAGS environment variable, which is now
  102.             deprecated.
  103. - DART ("dart") [OS/2 only]
  104.   buffer=   logarithmic fragment size, in the range 12-16. Default is
  105.             computed to a bit more than 1/4" of playback.
  106.   count=    fragment count, in the range 2-8. Default is 2.
  107.   device=   waveaudio device number, in the range 0-8. Default is 0 (use
  108.             default waveaudio device).
  109. - DirectX ("ds") [Win32 only]
  110.   buffer=   logarithmic size of the buffer, in the range 12-19. Default
  111.             is 16.
  112.   globalfocus
  113.             always play music, even if the application has not the
  114.             focus. Required for full-screen applications.
  115. - EsounD ("esd") [Unix only]
  116.   machine=  same syntax as the ESPEAKER environment variable.
  117. - HP ("hp") [HP-UX only]
  118.   buffer=   logarithmic size of the buffer, in the range 12-19. Default
  119.             is 15.
  120.   headphone redirects the output to the headphone port.
  121. - MacOS ("mac") [MacOS only]
  122.   buffer=   logarithmic size of the buffer, in the range 10-16. Default
  123.             is 12.
  124. - OS/2 MMPM ("os2") [OS/2 only]
  125.   buffer=   logarithmic size of the buffer, in the range 12-16. Default
  126.             is computed to a bit more than 1/4" of playback.
  127.   device=   waveaudio device number, in the range 0-8. Default is 0 (use
  128.             default waveaudio device).
  129. - OSS ("oss") [Unix only]
  130.   card=     card number. Default is the card whose driver was loaded
  131.             first.
  132.   buffer=   logarithmic fragment size, in the range 7-17. Default is 14.
  133.             Replaces the MM_FRAGSIZE environment variable, which is now
  134.             deprecated.
  135.   count=    fragment count, in the range 2-255. Default is 16.
  136.             Replaces the MM_NUMFRAGS environment variable, which is now
  137.             deprecated.
  138. - Piped output ("pipe") [Unix only]
  139.   pipe=     Pipe command (mandatory).
  140.  
  141. - SGI audio library ("sgi") [IRIX only]
  142.   fragsize= buffer size for libmikmod internal use.
  143.             Replaces the MM_SGI_FRAGSIZE environment variable, which is
  144.             now deprecated.
  145.   bufsize=  buffer size for the audio library.
  146.             Replaces the MM_SGI_BUFSIZE environment variable, which is
  147.             now deprecated.
  148. - Disk writers in raw and wav formats ("raw" and "wav")
  149.   file=     Output file name. Default is music.raw for the raw driver
  150.             and music.wav for the wav driver.
  151. - Sun/Solaris/NetBSD/OpenBSD audio ("audio")
  152.   [SunOS, Solaris, NetBSD, OpenBSD only]
  153.   buffer=   logarithmic fragment size, in the range 7-17. Default is 12.
  154.             Replaces the MM_FRAGSIZE environment variable, which is now
  155.             deprecated.
  156.   headphone on SunOS/Solaris only, redirects the output to the headphone
  157.             port.
  158.   speaker   on SunOS/Solaris only, redirects the output to the speaker.
  159.   
  160. - Linux sam9407-based soundcards ("sam9407") [Linux only]
  161.   card=     card number. Default is first card.
  162. - NoSound ("nosound"), Standard output ("stdout"), Ultrasound ("ultra"),
  163.   Windows Multimedia ("winmm")
  164.   These driver have no options.
  165. >> ALSA DRIVER SPECIFIC INFORMATION (Linux specific)
  166. -----------------------------------
  167. The Advanced Linux Sound Architecture (ALSA) project aims to provide
  168. better sound facilities than the current OSS drivers. Although it is
  169. still in beta, it appears to be very stable and very easy to program
  170. compared to the OSS.
  171. Besides, it works much better than OSS for Gravis-type soundcards.
  172. You can find more information on ALSA, including an HOWTO, on the web:
  173.   http://www.alsa-project.org
  174. The Advanced Linux Sound Architecture (ALSA) is still in beta, but its
  175. API is stable, so this libmikmod version should work with future
  176. versions of ALSA.
  177. This version of the libmikmod ALSA driver works with either ALSA
  178. versions 0.3.x (for Linux kernels 2.0.x) and 0.4.x (for Linux kernels
  179. 2.2.x and later).
  180. The latest versions, 0.5.x and 0.9.x, are currently not supported natively,
  181. although you can use the OSS emulation without problems.
  182. If the sound comes out jerky, you can pass the "buffer=xx" option to the
  183. driver, to tweak the ALSA settings. The default value (if this option is
  184. not used) is 4; the slower your machine is, the greater this value has
  185. to be, but the allowed range is 2 to 16. However, the ALSA generally
  186. finds good settings for your configuration, so I doubt you'll have to
  187. use this option.
  188. >> ENLIGHTENED SOUND DAEMON SPECIFIC INFORMATION (Unix specific)
  189. ------------------------------------------------
  190. The Enlightened Sound Daemon (EsounD) is still experimental and may
  191. change a lot until it reaches the 1.0 release. Thus, this libmikmod
  192. version might not work with future versions of EsounD.
  193. You can find more information on EsounD on the web:
  194.   http://www.tux.org/~ricdude/EsounD.html
  195. However, this page is getting very out of date. Recent EsounD work can
  196. be found on the GNOME project:
  197.   http://www.gnome.org/applist/view.php3?name=esound
  198. which not kept up-to-date either...
  199. The version of the libmikmod EsounD driver coincides with the latest
  200. EsounD release available when this version of libmikmod was released;
  201. for the 3.1.10 release, this is EsounD v0.2.23, but libmikmod should
  202. work with any version starting from 0.2.6, although the latest version
  203. is recommended.
  204. Please note that between 0.2.8 and 0.2.12 the server port and the
  205. protocol have changed, thus clients compiled with libesd from 0.2.8 can
  206. not communicate with 0.2.12 (and later) esd, and vice versa.
  207. If the esd daemon dies, libmikmod will try to reconnect every 5 seconds
  208. and every new module, if a module ends. So, you can safely restart esd
  209. and wait 5 seconds, and voila! Sound is back...
  210. If you run esd and a libmikmod application on the same machine,
  211. everything should work fine. However, if there is a real network
  212. connection, synchronization problems can occur.
  213. If sound clicks or gets chopped, then you've likely got a
  214. synchronization problem. Pausing the player for a second should cause
  215. the problem to disappear.  If there's still problems, perhaps your
  216. network is not fast enough. Lowering the playback rate will hopefully
  217. solve the problem.
  218. Also, the performance of the esd is really abominable if the esd
  219. playback frequency can't be divided by the libmikmod playback rate. For
  220. example, runinng a libmikmod application at 42000 Hz with esd at 44100
  221. Hz will sound horrible, and take a lot of CPU time due to resampling.
  222. >> SGI DRIVER SPECIFIC INFORMATION (IRIX specific)
  223. ----------------------------------
  224. The SGI audio driver was written by Stephan Kanthak in 1996 and its
  225. author grants to distribute it with the libmikmod package under the same
  226. restrictions as the library.
  227. If you encounter any problems concerning crackles or short stops while
  228. playing, feel free to experiment with the values of the fragsize and
  229. bufsize options of the driver. The default values are 20000 for fragsize
  230. and 40000 for bufsize. Increasing bufsize might result in nonstop sound
  231. on slow machines, but increases latency of interactive applications. The
  232. value of fragsize should be set to about half of bufsize in most cases
  233. and needs to be increased only if you own a very slow SGI.
  234. Common problems
  235. - libmikmod does not compile on my SGI?
  236.   First check out whether you have the SGI audio library (libaudio) or
  237.   not. If the audio library is missing you should upgrade to IRIX 5.3 or
  238.   newer and you will obtain the media development package automatically
  239.   with it. If you have the audio library installed, check out if it is
  240.   in the linker path.
  241.   Also, the audio API has been extended in recent IRIX releases (6.4 and
  242.   later). The older API used by libmikmod is supposed to be still supported,
  243.   please drop me a note if it is not on your IRIX release.
  244. - Sound is _very_ noisy?
  245.   Change sample size to 16 bits.
  246. - Sound crackles or stops temporarily?
  247.   Try to increase the value of the fragsize driver option (default value
  248.   is 20000). Switch to mono mode if necessary.
  249. - libmikmod applications only react very slowly?
  250.   This is a typical effect on SGI machines because the audio library
  251.   sets up an internal buffer that seems to be quite large on many
  252.   installations. Try to decrease the bufsize driver option (default
  253.   value is 40000).
  254. How to contact the driver author:
  255. Stephan Kanthak <kanthak@i6.informatik.rwth-aachen.de>
  256. Please cc: me (miod), just in case.
  257. >> SUNOS, SOLARIS, NETBSD AND OPENBSD DRIVER SPECIFIC INFORMATION
  258. -----------------------------------------------------------------
  259. The above mentioned systems use the same interface to the audio device.
  260. The libmikmod driver for this interface is the Sun driver. It was coded
  261. by Valtteri Vuorikoski <vuori@sci.fi> and updated to libmikmod 3 by Tor
  262. Norbye <tor@cs.stanford.edu>, and has been modified to work under NetBSD
  263. and OpenBSD by the current maintainer.
  264. This driver works with old sound hardware using 8 KHz mono ulaw, and
  265. with modern hardware using pcm mono or stereo at any frequency. If your
  266. settings aren't supported by the audio device, sound initialization will
  267. fail. Refer to the audio(7) man page under SunOS/Solaris and the
  268. audio(4) man page under NetBSD/OpenBSD for more details on your audio
  269. hardware and its capabilities.
  270. On Sun workstations, you might be interested in passing the "headphone"
  271. option to the driver to force output on the headphones, since plugging
  272. the headphones is not enough.
  273. If you run NetBSD or OpenBSD, the driver does not support the headphone
  274. and speaker parameters, but you can achieve the same effect with
  275. audioctl(1), for example:
  276.   audioctl -w play.port=1
  277. will select the speaker, while a value of 2 would have selected the
  278. headphone.
  279. If sound is jerky, you can pass the "buffer=xx" option to the driver to
  280. increase its internal buffer size. The default value (when this option
  281. is not used) is 12; the slower your machine, the greater this value has
  282. to be, in the range 7-17.
  283. If you can't get libmikmod to work with your hardware, you can use its
  284. raw disk writer driver, in 8 bit mono 8 kHz, and send the music.raw file
  285. to /dev/audio with sox, using the following command line:
  286.     sox -t raw -c 1 -r 8000 -u -b music.raw -t raw -U -r 8000 
  287.         -c 1 -b /dev/audio
  288. (or use the piped output driver with this command line)
  289. Or if you played in 16 bit stereo, you can convert the file to a .au
  290. file:
  291.   audioconvert -o music.au -f sun 
  292.                -i rate=44.1k,channels=stereo,encoding=linear16 music.raw
  293. and play the file:
  294.     audioplay -p headphone -v 10 music.au
  295. >> SAM9407 DRIVER SPECIFIC INFORMATION (Linux specific)
  296. --------------------------------------
  297. The SAM9407 driver provides an OSS-compatible driver for the soundcards
  298. based on the sam9407 audio chip (MaxiSound 64 and Terratec EWS, among
  299. others), and provides advanced features such as hardware module
  300. playback.
  301. You can find more information on this driver on the web:
  302.   http://www.anime.net/~sam9407
  303. The version of the libmikmod sam9407 driver coincides with the latest sam9407
  304. driver release available when this version of libmikmod was released; for the
  305. 3.1.10 release, this is sam9407 driver v1.0.0.
  306. >> THANKS
  307. ---------
  308. I would like to thank everyone who contributed to libmikmod. Their names
  309. are in the AUTHORS file for the significative contributions, but some
  310. other names can be found in the NEWS file. Thanks a lot! Keeping
  311. libmikmod alive wouldn't be much fun without you.
  312. >> LICENSE
  313. ----------
  314. The libmikmod sound library is covered by the GNU Library General Public
  315. License as published by the Free Software Fundation (you'll find it in
  316. the file COPYING.LIB); either version 2 of the licence, or (at your
  317. option) any later version.
  318. The GNU Lesser General Public License, version 2.1, in file
  319. COPYING.LESSER, can be considered as a later version of the LGPL, and is
  320. strongly recommended for people who will embed libmikmod in their
  321. application as a shared library.
  322. Parts of the library (in playercode/mdulaw.c) are derived from the files
  323. libst.h and raw.c from an old version of the sox (SOund eXchange)
  324. package written by Lance Norskog and Jef Poskanzer. The following
  325. copyright notice applies to these parts:
  326.    Copyright (C) 1989 by Jef Poskanzer.
  327.    Permission to use, copy, modify, and distribute this software and its
  328.    documentation for any purpose and without fee is hereby granted, provided
  329.    that the above copyright notice appear in all copies and that both that
  330.    copyright notice and this permission notice appear in supporting
  331.    documentation.  This software is provided "as is" without express or
  332.    implied warranty.
  333. >> CONTACT AND DOWNLOAD INFO
  334. ----------------------------
  335. * email:
  336.   Please send all your libmikmod related e-mail to me, at:
  337.     mikmod@raphnet.net
  338. * web:
  339.   libmikmod home page is located at:
  340.     http://mikmod.raphnet.net