Skip to content

Commit 6eceef1

Browse files
committed
Updated readme files and documentations
1 parent 2e11a64 commit 6eceef1

File tree

4 files changed

+31
-214
lines changed

4 files changed

+31
-214
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ the `-DSDL_MIXER_CLEAR_FOR_ZLIB_LICENSE=ON` flag):
4444
* libVorbis
4545
* libZlib
4646
* minimp3
47+
* stb-vorbis
4748

4849
### LGPL-license libraries
4950
LGPL allows usage in closed-source projects when LGPL-licensed components are linked dynamically.

README.txt

Lines changed: 23 additions & 207 deletions
Original file line numberDiff line numberDiff line change
@@ -11,225 +11,44 @@ WARNING: The licenses for libmad, ADLMIDI, OPNMIDI, and GME is GPL,
1111
The latest original version of this library is available from:
1212
http://www.libsdl.org/projects/SDL_mixer/
1313

14-
Sources of modified library version is available in the PGE Project's sources:
15-
https://github.com/Wohlhabend-Networks/PGE-Project/
16-
in the folder: _Libs/SDL2_mixer_modified/
17-
or:
18-
https://bitbucket.org/Wohlstand/pge-project
19-
in the folder: _Libs/SDL2_mixer_modified/
14+
Sources of modified library version is available here:
15+
https://github.com/WohlSoft/SDL-Mixer-X
2016

21-
=============================================================================
22-
Difference between original and this library:
23-
-----------------------------------------------------------------------------
24-
+ Added new codecs:
25-
- Game Music Emulators (LGPL v2.1) which adds support of chip tunes
26-
like NSF, VGM, SPC, HES, etc.
27-
- libADLMIDI (GPL v3, LGPL v3) (remake from ADLMIDI) to play MIDI with
28-
emulated OPL3 synthesiser, also supports loop points
29-
"loopStart" and "loopEnd"
30-
- libOPNMIDI (GPL v3, LGPL v3) to play MIDI with
31-
emulated OPN2 synthesiser, also supports loop points
32-
"loopStart" and "loopEnd"
33-
+ Added some new functions
34-
+ Added support of loop points for OGG files (via "LOOPSTART" and "LOOPEND"
35-
(or "LOOPLENGTH" to be compatible with RPG Maker) vorbis comments)
36-
+ Reorganized music codecs processing system
37-
+ Added support to get current position and track lenght for a seekable codecs
38-
39-
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
40-
IMPORTANT: To choice a track number of NSF, GBM, HES, etc file,
41-
you must append "|xxx" to end of file path for
42-
Mix_LoadMUS function.
43-
Where xxx - actual number of chip track, (from 0 to N-1)
44-
Examples: "file.nsf|12", "file.hes|2"
45-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46-
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
47-
Arguments are passing like argument for a GME-based files (NSF, HES, etc.):
48-
Syntax for MIDI is:
49-
myfile.mid|xyy;xyy;xyy;...;
50-
where x - parameter type
51-
where y - value (every value must be ended with semicolon!)
5217

53-
available parameters:
54-
s - use a specific synthesiser
55-
0 - ADLMIDI
56-
1 - Native MIDI [Win32/OSX/Haiku only]
57-
2 - Timidity
58-
3 - Fluidsynth
59-
b - value from 0 to 66 - number of ADLMIDI bank
60-
t - (0 or 1) enable deep tremolo on ADLMIDI
61-
v - (0 or 1) enable deep vibrato on ADLMIDI
62-
m - (0 or 1) enable scalable modulation on ADLMIDI
63-
a - (0 or 1) enable AdLib mode of percussion on ADLMIDI
64-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6518
=============================================================================
66-
Added music codecs:
67-
-----------------------------------------------------------------------------
68-
General:
69-
- MUS_GME - Game Music Emulatirs
70-
71-
MIDI Playing:
72-
- ADLMIDI - A software synthesizer is based on Yamaha OPL3 (YMF262) chip emulator
73-
- OPNMIDI - A software synthesizer is based on Yamaha OPL3 (YM2612) chip emulator
74-
75-
=============================================================================
76-
Added functions:
77-
-----------------------------------------------------------------------------
78-
/*
79-
Allows you to set up custom path for Timidify patches
80-
*/
81-
void MIX_Timidity_addToPathList(const char *path);
82-
83-
/*
84-
Get music title from meta-tag if possible. If title tag is empty, filename will be returned
85-
*/
86-
const char* Mix_GetMusicTitle(const Mix_Music *music);
87-
88-
/*
89-
Get music title from meta-tag if possible
90-
*/
91-
const char* Mix_GetMusicTitleTag(const Mix_Music *music);
92-
93-
/*
94-
Get music artist from meta-tag if possible
95-
*/
96-
const char* Mix_GetMusicArtistTag(const Mix_Music *music);
97-
98-
/*
99-
Get music album from meta-tag if possible
100-
*/
101-
const char* Mix_GetMusicAlbumTag(const Mix_Music *music);
102-
103-
/*
104-
Get music copyright from meta-tag if possible
105-
*/
106-
const char* Mix_GetMusicCopyrightTag(const Mix_Music *music);
107-
108-
/*
109-
Load music from memory with passing of extra arguments
110-
*/
111-
Mix_Music * SDLCALLCC Mix_LoadMUS_RW_ARG(SDL_RWops *src, int freesrc, char *args)
112-
113-
/*
114-
Load music from memory with passing NSF/HES/etc. track number (accepts integer unlike SDLCALLCC Mix_LoadMUS_RW_ARG)
115-
*/
116-
Mix_Music * SDLCALLCC Mix_LoadMUS_RW_GME(SDL_RWops *src, int freesrc, int trackID)
117-
118-
typedef enum
119-
{
120-
MIDI_ADLMIDI,
121-
MIDI_Native,
122-
MIDI_Timidity,
123-
MIDI_OPNMIDI,
124-
MIDI_Fluidsynth,
125-
MIDI_KnuwnDevices /* Count of MIDI device types */
126-
} Mix_MIDI_Device;
127-
128-
/*
129-
Allows you to toggle MIDI Devices!
130-
(change will be applied on re-opening of MIDI file)
131-
Attempt to toggle unsupported MIDI device takes no effect
132-
(for case when library built without linking of required library)
133-
*/
134-
int Mix_SetMidiDevice(int device);
135-
136-
/*
137-
Returns current ADLMIDI bank number
138-
*/
139-
int MIX_ADLMIDI_getBankID();
140-
141-
/*
142-
Changes ADLMIDI bank number (changes applying on MIDI file reopen)
143-
*/
144-
void MIX_ADLMIDI_setBankID(int bnk);
145-
146-
/*
147-
Returns current state of ADLMIDI deep tremolo flag
148-
*/
149-
int MIX_ADLMIDI_getTremolo();
150-
151-
/*
152-
Changes ADLMIDI deep tremolo flag (changes applying on MIDI file reopen)
153-
*/
154-
void MIX_ADLMIDI_setTremolo(int tr);
155-
156-
/*
157-
Returns current state of ADLMIDI deep vibrato flag
158-
*/
159-
int MIX_ADLMIDI_getVibrato();
160-
161-
/*
162-
Changes ADLMIDI deep vibrato flag (changes applying on MIDI file reopen)
163-
*/
164-
void MIX_ADLMIDI_setVibrato(int vib);
165-
166-
/*
167-
Returns current state of ADLMIDI deep scaling modulation flag
168-
*/
169-
int MIX_ADLMIDI_getScaleMod();
170-
171-
/*
172-
Changes ADLMIDI scaling modulation flag (changes applying on MIDI file reopen)
173-
*/
174-
void MIX_ADLMIDI_setScaleMod(int sc);
175-
176-
/*
177-
Resets ADLMIDI flags and settings to default state
178-
*/
179-
void MIX_ADLMIDI_setSetDefaults();
180-
181-
/*
182-
Get the time current position of music stream
183-
returns -1.0 if this feature is not supported for some codec
184-
*/
185-
double Mix_GetMusicPosition(Mix_Music *music);
186-
/*
187-
Get the total time length of music stream
188-
returns -1.0 if this feature is not supported for some codec
189-
*/
190-
double Mix_GetMusicTotalTime(Mix_Music *music);
191-
192-
/*
193-
Get the loop start time position of music stream
194-
returns -1.0 if this feature is not used for this music or not supported for some codec
195-
*/
196-
double Mix_GetMusicLoopStartTime(Mix_Music *music);
197-
/*
198-
Get the loop end time position of music stream
199-
returns -1.0 if this feature is not used for this music or not supported for some codec
200-
*/
201-
double Mix_GetMusicLoopEndTime(Mix_Music *music);
202-
/*
203-
Get the loop time length of music stream
204-
returns -1.0 if this feature is not used for this music or not supported for some codec
205-
*/
206-
double Mix_GetMusicLoopLengthTime(Mix_Music *music);
207-
19+
Please read the updated ReadMe at the `docs/index.md` and the full documentation
20+
at the docs/SDL_mixer_ext.html
20821
=============================================================================
20922

21023
Due to popular demand, here is a simple multi-channel audio mixer.
21124
It supports 8 channels of 16 bit stereo audio, plus a single channel
212-
of music, mixed by the Modplug MOD, Timidity MIDI, ADLMIDI, GME
213-
and LibMAD MP3 libraries.
25+
of music, mixed by the libXMP, Modplug MOD, Timidity MIDI, libADLMIDI,
26+
libOPNMIDI, FluidSynth, FluidLite, GME, and LibMAD MP3 libraries.
21427

21528
See the header file SDL_mixer_ext.h for documentation on this mixer library.
21629

21730
The mixer can currently load Microsoft WAVE files and Creative Labs VOC
218-
files as audio samples, and can load MIDI files via Timidity and the
219-
following music formats via MikMod: .MOD .S3M .IT .XM. It can load
220-
Ogg Vorbis streams as music if built with Ogg Vorbis or Tremor libraries,
221-
and finally it can load MP3 music using the SMPEG or libmad libraries.
31+
files as audio samples, and can load MIDI files via Timidity, libADLMIDI,
32+
libOPNMIDI, or by FluidSynth, and the following music formats via libXMP,
33+
libModPlug, or MikMod: .MOD .S3M .IT .XM, and many other formats. It can load
34+
Ogg Vorbis streams as music if built with Ogg Vorbis, Tremor, or stb-vrobis
35+
libraries, load Opus, FLAC, and finally it can load MP3 music
36+
using the minimp3, libmad, or libmpg123 libraries.
22237

22338
Tremor decoding is disabled by default; you can enable it by passing
224-
--enable-music-ogg-tremor
225-
to configure, or by defining OGG_MUSIC and OGG_USE_TREMOR.
39+
-DUSE_OGG_VORBIS=ON -DUSE_OGG_VORBIS_TREMOR=ON
40+
to CMake, or you can tell the library to use the internally-included stb-vorbis
41+
by passing
42+
-DUSE_OGG_VORBIS=ON -DUSE_OGG_VORBIS_STB=ON
43+
to CMake.
44+
45+
All other flags and codecs you can find using the CMake configure tools like the
46+
cmake-gui or ccmake.
22647

227-
libmad decoding is disabled by default; you can enable it by passing
228-
--enable-music-mp3-mad
229-
to configure, or by defining MP3_MAD_MUSIC
23048
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
231-
WARNING: The license for libmad is GPL, which means that in order to
232-
use it your application must also be GPL!
49+
WARNING: The license for libmad, libADLMIDI, and libOPNMIDI is GPL,
50+
which means that in order to use them your application must
51+
also be GPL!
23352
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23453

23554
The process of mixing MIDI files to wave output is very CPU intensive,
@@ -243,6 +62,3 @@ http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
24362
and unpack them in /usr/local/lib under UNIX, and C:\ under Win32.
24463

24564
This library is under the zlib license, see the file "COPYING.txt" for details.
246-
247-
248-

docs/6_types.texi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,13 @@ typedef enum @{
147147
MIDI_OPNMIDI,
148148
MIDI_Fluidsynth,
149149
MIDI_ANY,
150-
MIDI_KnuwnDevices /* Count of MIDI device types */
150+
MIDI_KnownDevices /* Count of MIDI device types */
151151
@} Mix_MIDI_Device;
152152
@end example
153153
@end cartouche
154154

155155
@c Return values from @code{Mix_GetMusicType} are of these enumerated values.@* @cNOT IMPLEMENTED YET
156-
@b{MIDI_KnuwnDevices} is a count of known MIDI sequencers. Used internally.@*
156+
@b{MIDI_KnownDevices} is a count of known MIDI sequencers. Used internally.@*
157157
Otherwise they are self explanatory.
158158

159159
@c -----------------------------------------------------------------------------

docs/SDL_mixer_ext.html

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)