how could I use WinAMP's plugins like in_mod.dll etc...
to play mods XMs and another exotic musicians format in my own program.


If you have a better way please show me more light ;)

The dificult is that every plugins exports only the one function and I can do nothing with it.

I used dependencies.exe to explore dll modules developed with winamp.

If you know well documented dll which can do what I want ,be so nice and post it here.


Very Thank YOU
Posted on 2003-11-04 03:25:42 by HarryTuttle
... or you can use BASS library <link>
Freeware: FREE, Shareware: $120, Commercial: $995/$2750

MASM32 support added by yours truly :grin:

p.s. BASS 2.o released on 31.Oct.2oo3
Posted on 2003-11-04 04:14:27 by TBD
AFAIK Chris Dragan has an example (with source code ) for a mod tracker/player here:

http://chris.dragan.name/corner.web?page=assembly

I have not yet found and sample in ASM for playing MP3 :grin:
Posted on 2003-11-04 08:54:06 by BogdanOntanu
You can also use Housemarque Audio System (formerly known as MIDAS) (multi platform and open source):

http://www.s2.org/hmqaudio/

also mikmod (same):

http://www.bitplanet.de/mikwin/
(mikmod.org seems to be down)

Also i did a s3m player in directwrap for masm32 (as a little excercise).

h.
Posted on 2003-11-04 09:25:08 by hitchhikr

AFAIK Chris Dragan has an example (with source code ) for a mod tracker/player here:

http://chris.dragan.name/corner.web?page=assembly

I have not yet found and sample in ASM for playing MP3 :grin:




in this site is :
(it has serious problems under WinNT and Win2K)


and it really is something wrong: file format is not recognized....
Posted on 2003-11-04 09:28:56 by HarryTuttle
I think i have used it on win2k/NT
but indeed it only rcognises .XM file no other variants
However i guess you can use Save As/Export in ModTracker to make XM files
Posted on 2003-11-04 10:27:17 by BogdanOntanu
oh LOL Bogdan !!

You can use DirectMusic to play mp3 :tongue:
Posted on 2003-11-04 22:59:08 by Homer
Yes i know that you can use DirectMusic to play mp3, sorry that i forgot to mention it
.... but as i recall it requires DX8.1 or DX9

but i was thinking of an independent ASM source for playing mp3 :grin:
after all i will need that for my ASM OS :tongue:
Posted on 2003-11-05 06:29:39 by BogdanOntanu
Ah yes, your OS - how's that progressing?
I've simply never seen any standalone asm source for mp3 which did not have OS dependancies...
Posted on 2003-11-05 07:23:36 by Homer
Hi Bogdan,

first of all you should to do some voice routine which can activate D/A in your Sound Card and set samle_rate (44100Hz) resolution (16bit) and mode (stereo) then put the audio_data to the out_port(D/A).

these functions are in standard sound cards.
and that work is so called ->sound_driver.
--------------------------------------------------------
When your system has the sound_driver there is an "easy way" to play anything you need.
Get the MP3 decompression algorithm and change by it the audio_data to raw_format ,like in WAV, but not the all file as one, only piece of MP3 and put it to the buffer.
Get the handle to the buffer and the size of it and put the data to the sound_routine which calls the driver out_port(in sound card).
When the buffer is almost empty ,get another part of MP3 and decompress it to the buffer then call player routine, ant then .... then ..... en.....n.....
--------------------------------------------------------
conclusion:
the MP3 algorithm to convert data as raw is common and independent on any system.
Drivers are dependent on a system.
Players are dependent on a system because use drivers.

if You can code a driver for your system and play simple wave then you can play anything you want because every compresion is only the algorithm and the system's functions can only help but isn't necessary to play.
The only drivers are necessary to do anything with hardware well.

so YOU need the ****** ;)


in short ;)
Posted on 2003-11-05 08:25:50 by HarryTuttle
MP3 playback is quite hard to do requires some knowledge in Signal Processing. Knowledge I do not possess ;)
But is quite interesting, the OGG guys are opensource but only under Win32, as for MP3 playback using plain code, I had C source to do so on my old 20GB HDD but it died 2 months ago ( :( ), but I can probably find it I think it was on Programmers Heaven, if your up to the task you could convert or maybe someone here can do it.
Posted on 2003-11-05 19:39:51 by x86asm
I'm trying to write a simple MP3 decoder using ISO source code as a reference. I've also found an Intel application note to optimize the function used to read bits in a bitstream. So far I can synchronize to the bitstream and interpret the header and the "side info". I can also buffer the main data of a frame. You can find the ISO source code and a lot of documentation at www.mp3-tech.org.
Posted on 2003-11-06 13:51:37 by Dr. Manhattan
Hi Harry ! What's up Fellow?
it is small sample of C console program to play XMs and standard MODs


//the easiest way to play mods and XMs under WIN32 with DX installed
// Dev-C++ tested :)
#include <windows.h>
#include "bass.h"
#include <conio.h>

//console app
//BASS.lib must be linked
//BASS.DLL must be in the same folder with the exe

int
WINAPI
WinMain(HINSTANCE hIns,HINSTANCE hPrev,PSTR cmdLINE,int licz)
{
//first init Device
BASS_Init(
1,
44100,
BASS_DEVICE_SPEAKERS,
NULL,
NULL
);
//second load Xtended Module :4 example gipanema or anything you need
char fName[]="gipanema.xm\0";
HMUSIC hMusic=BASS_MusicLoad(
FALSE,
&fName,
0,
0,
BASS_MUSIC_LOOP||BASS_MUSIC_FT2MOD,
0
);
//then play module
BASS_MusicPlay(
hMusic
);

system("pause");// do it until press any key

BASS_Free();//free resources
return 0;
}
Posted on 2003-11-07 15:28:32 by etn