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