xref: /btstack/3rd-party/hxcmod-player/readme.txt (revision a4cd9b30c1112bc7d2f86cb48bf7f829ec8f7063)
1*a4cd9b30SMilanka RingwaldLocal copy used for A2DP Source demo in BTstack.
2*a4cd9b30SMilanka Ringwald
3*a4cd9b30SMilanka RingwaldGithub repository: https://github.com/jfdelnero/HxCModPlayer
4*a4cd9b30SMilanka RingwaldThanks for providing this nice and compact implementation!
5*a4cd9b30SMilanka Ringwald
6*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
7*a4cd9b30SMilanka RingwaldOriginal readme.txt
8*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
9*a4cd9b30SMilanka Ringwald
10*a4cd9b30SMilanka Ringwald///////////////////////////////////////////////////////////////////////////////////
11*a4cd9b30SMilanka Ringwald//-------------------------------------------------------------------------------//
12*a4cd9b30SMilanka Ringwald//-------------------------------------------------------------------------------//
13*a4cd9b30SMilanka Ringwald//-----------H----H--X----X-----CCCCC----22222----0000-----0000------11----------//
14*a4cd9b30SMilanka Ringwald//----------H----H----X-X-----C--------------2---0----0---0----0---1-1-----------//
15*a4cd9b30SMilanka Ringwald//---------HHHHHH-----X------C----------22222---0----0---0----0-----1------------//
16*a4cd9b30SMilanka Ringwald//--------H----H----X--X----C----------2-------0----0---0----0-----1-------------//
17*a4cd9b30SMilanka Ringwald//-------H----H---X-----X---CCCCC-----222222----0000-----0000----1111------------//
18*a4cd9b30SMilanka Ringwald//-------------------------------------------------------------------------------//
19*a4cd9b30SMilanka Ringwald//----------------------------------------------------- http://hxc2001.free.fr --//
20*a4cd9b30SMilanka Ringwald///////////////////////////////////////////////////////////////////////////////////
21*a4cd9b30SMilanka Ringwald
22*a4cd9b30SMilanka Ringwald                                    HxCMOD player
23*a4cd9b30SMilanka Ringwald
24*a4cd9b30SMilanka RingwaldThe HxCMOD player is a tiny music module player.
25*a4cd9b30SMilanka Ringwald
26*a4cd9b30SMilanka RingwaldIt currently supports the Noisetracker/Soundtracker/Protracker Module Format (*.mod)
27*a4cd9b30SMilanka Ringwald
28*a4cd9b30SMilanka RingwaldThe core (hxcmod.c/hxcmod.h) is designed to have the least external dependency.
29*a4cd9b30SMilanka RingwaldSo it should be usable on almost all OS and systems.
30*a4cd9b30SMilanka RingwaldYou can use the hxcmod.c / hxcmod.h files to add a mod replay support
31*a4cd9b30SMilanka Ringwaldto a demo/game/software.
32*a4cd9b30SMilanka Ringwald
33*a4cd9b30SMilanka RingwaldYou are free to do what you want with this code.
34*a4cd9b30SMilanka Ringwald(A credit is always appreciated if you include it into your prod ;) )
35*a4cd9b30SMilanka Ringwald
36*a4cd9b30SMilanka RingwaldThe test program is into the win32 folder. Just drag and drop a mod on the main
37*a4cd9b30SMilanka Ringwaldwindow to load it. Linux & Mac OS X version it planned.
38*a4cd9b30SMilanka Ringwald
39*a4cd9b30SMilanka RingwaldPlease note that this core was "Emscriptened" successfully and is now working in
40*a4cd9b30SMilanka RingwaldJavaScript with Android, Chrome, Firefox, Edge, Safari browsers and probably
41*a4cd9b30SMilanka Ringwaldwith others browsers supporting the Web Audio API support.
42*a4cd9b30SMilanka Ringwald
43*a4cd9b30SMilanka RingwaldYou can test it at this address : http://hxc2001.free.fr/hxcmod/
44*a4cd9b30SMilanka Ringwald
45*a4cd9b30SMilanka RingwaldA video demo of the native Mod player can be seen on youtube :
46*a4cd9b30SMilanka Ringwaldhttps://www.youtube.com/watch?v=MEU9FGZzjac
47*a4cd9b30SMilanka Ringwald
48*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
49*a4cd9b30SMilanka Ringwald HxCMOD Core API
50*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
51*a4cd9b30SMilanka Ringwald
52*a4cd9b30SMilanka Ringwaldint  hxcmod_init( modcontext * modctx )
53*a4cd9b30SMilanka Ringwald
54*a4cd9b30SMilanka Ringwald- Initialize the modcontext buffer. Must be called before doing anything else.
55*a4cd9b30SMilanka Ringwald  Return 1 if success. 0 in case of error.
56*a4cd9b30SMilanka Ringwald
57*a4cd9b30SMilanka Ringwaldint  hxcmod_setcfg( modcontext * modctx, int samplerate, int bits, int stereo, int stereo_separation, int filter);
58*a4cd9b30SMilanka Ringwald
59*a4cd9b30SMilanka Ringwald- Configure the player :
60*a4cd9b30SMilanka Ringwald  samplerate specify the sample rate. (44100 by default).
61*a4cd9b30SMilanka Ringwald  bits specify the number of bits (16 bits only for the moment).
62*a4cd9b30SMilanka Ringwald  stereo - if non null, the stereo mode is selected (default)
63*a4cd9b30SMilanka Ringwald  stereo_separation - Left/Right channel separation.
64*a4cd9b30SMilanka Ringwald  filter - if non null, the filter is applied (default)
65*a4cd9b30SMilanka Ringwald
66*a4cd9b30SMilanka Ringwaldint  hxcmod_load( modcontext * modctx, void * mod_data, int mod_data_size )
67*a4cd9b30SMilanka Ringwald
68*a4cd9b30SMilanka Ringwald- "Load" a MOD from memory (from "mod_data" with size "mod_data_size").
69*a4cd9b30SMilanka Ringwald  Return 1 if success. 0 in case of error.
70*a4cd9b30SMilanka Ringwald
71*a4cd9b30SMilanka Ringwald
72*a4cd9b30SMilanka Ringwaldvoid hxcmod_fillbuffer( modcontext * modctx, unsigned short * outbuffer, unsigned long nbsample, tracker_buffer_state * trkbuf )
73*a4cd9b30SMilanka Ringwald
74*a4cd9b30SMilanka Ringwald- Generate and return the next samples chunk to outbuffer.
75*a4cd9b30SMilanka Ringwald  nbsample specify the number of stereo 16bits samples you want.
76*a4cd9b30SMilanka Ringwald  The output format is signed 44100Hz 16-bit Stereo PCM samples.
77*a4cd9b30SMilanka Ringwald  The output buffer size in byte must be equal to ( nbsample * 2 * 2 ).
78*a4cd9b30SMilanka Ringwald  The optional trkbuf parameter can be used to get detailed status of the player. Put NULL/0 if unused.
79*a4cd9b30SMilanka Ringwald
80*a4cd9b30SMilanka Ringwald
81*a4cd9b30SMilanka Ringwaldvoid hxcmod_unload( modcontext * modctx )
82*a4cd9b30SMilanka Ringwald- "Unload" / clear the player status.
83*a4cd9b30SMilanka Ringwald
84*a4cd9b30SMilanka Ringwald
85*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
86*a4cd9b30SMilanka Ringwald Files on the repository
87*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
88*a4cd9b30SMilanka Ringwald
89*a4cd9b30SMilanka Ringwald- hxcmod.c / hxcmod.h
90*a4cd9b30SMilanka RingwaldThe HxC core mod replay routines. These files don't have any dependency with others files
91*a4cd9b30SMilanka Ringwaldand can be used into other project.
92*a4cd9b30SMilanka Ringwald
93*a4cd9b30SMilanka Ringwald- framegenerator.c / framegenerator.h
94*a4cd9b30SMilanka RingwaldGenerate a 640*480 framebuffer from the player status to be displayed in real-time.
95*a4cd9b30SMilanka Ringwald(not needed by the core)
96*a4cd9b30SMilanka Ringwald
97*a4cd9b30SMilanka Ringwald- win32/
98*a4cd9b30SMilanka RingwaldThe Windows test software.
99*a4cd9b30SMilanka Ringwald(linux & Mac version planned)
100*a4cd9b30SMilanka Ringwald
101*a4cd9b30SMilanka Ringwald- js_emscripten/
102*a4cd9b30SMilanka RingwaldThe Web browser/JavaScript version. (Build with Emscripten)
103*a4cd9b30SMilanka Ringwald
104*a4cd9b30SMilanka Ringwald- packer/
105*a4cd9b30SMilanka RingwaldData compression utility. Used to embed one mod and some graphical stuff into the executable.
106*a4cd9b30SMilanka RingwaldNot directly used by the core.
107*a4cd9b30SMilanka Ringwald
108*a4cd9b30SMilanka Ringwald- data/
109*a4cd9b30SMilanka RingwaldSome packed data files.
110*a4cd9b30SMilanka Ringwald
111*a4cd9b30SMilanka Ringwald--------------------------------------------------------------------------------------
112*a4cd9b30SMilanka Ringwald
113*a4cd9b30SMilanka RingwaldJean-Fran�ois DEL NERO (Jeff) / HxC2001
114*a4cd9b30SMilanka Ringwald
115*a4cd9b30SMilanka RingwaldEmail : jeanfrancoisdelnero <> free.fr
116*a4cd9b30SMilanka Ringwald
117*a4cd9b30SMilanka Ringwaldhttp://hxc2001.free.fr
118*a4cd9b30SMilanka Ringwald
119*a4cd9b30SMilanka Ringwald11 July 2015
120