Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Coding Help... (Read 2887 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Coding Help...

I've been thinking of making a program, just for fun, that will use Winamp's input plugins to decode an audio stream. Since the API for the plugins is available, it should not be too hard to interface with the plugins.

I already know C, in a syntax sort of way. I have experience with coding simple things. Hell, been doing it since the QBasic days. My greatest achievement was a comm program that would dial into a BBS, go into the trivia game and try to cheat (by having a big database of questions already answered etc

Anyways, I'm not a TOTAL newbie, but then again I've never actually coded something that uses Windows' media features, such as sound output. Can anyone point me at some well documented code that could do something like this? Some good tutorials that might have helped the coders out there? Preferably in C if at all possible.

I have VS6 and VS.NET at home (yay for MS partnerships with universities!). Oh, and also any general tutorial/code on just general audio coding, such as filters, etc.

I have a bunch of links already, and will be starting the design phase soon, but I wanted to know what the good coders out there have found usefull before. Thanks!

Coding Help...

Reply #1
Quote
I have VS6 and VS.NET at home (yay for MS partnerships with universities!). Oh, and also any general tutorial/code on just general audio coding, such as filters, etc.

Hehe - so do I.  I think we at IU were the first university to strike a deal with MS (and now we get pretty much every MS program there is for $5/CD).

Yep, using Winamp's input plugins to decode stuff is quite simple - you just have to create a "virtual" output module for it to send data to (I've written a Buzz [the software synth program] generator that uses Winamp plugins to decode files).  For tons of info about music DSP, see http://www.musicdsp.org/ (get on the mailing list too), http://www.dspguru.com/, and the comp.dsp newsgroup.

Coding Help...

Reply #2
IU! Booo HISSS!! I'm at Purdue! haha

just kidding... I don't care about any shitty school "rivalry". Anyway, could I get the source for that Buzz program? Or if you don't want to share the whole code, just the part with creating the virtual output module etc?

BTW, I figure that my first program will just open up a WAV, do some simple manipulation and then save it back... that way I get comfortable with the way audio streams work.

Coding Help...

Reply #3
Sure.  I'm at IU's Music Library right now, but I'll send it to you later, when I get home.  Send me an e-mail (I think you can do that if you click my username) so I know where to send it to.  Actually, if you just want to open a WAV file and save a WAV file, you don't need to create a virtual output module - you can just use Winamp's DiskWriter output plugin.  And if you want to play the output to the speakers, you can also use one of Winamp's output plugins (waveOut or DirectSound).

Coding Help...

Reply #4
LoKi128

i like your idea allot.  instead of having to use several other programs to decode compressed files just use one simple one - yours.  ability to configure plugins with output to wave.  mad support would be nice for decode as well.  it sounds really good to me.  the one stop audio decoder.  using winamp plugins means you can use whatever versions you think sounds the best and can be upgraded over time.

Best of luck - i will be watching for it.  count me in as a beta tester if needed. 
Thank you for deciding to develop this software.

Coding Help...

Reply #5
XBenchman: heh you hit the nail in the head. Initially I just want to interface with the Input/Output winamp plugins. Then maybe with some of the DLLs of the different encoders (LAME, OGG, etc). Kinda what Speek is doing with his frontends really. Oh and preserve tags across any transcode.

After all that, I want to make a streaming audio server. Stream ANY audio file using ANY streaming codec. You could stream APE files out using OGG, or SHN using MP3. Also make it have a built in HTTP server that displays playlists etc. And with enough CPU power, serve multiple different streams to different users. Also multicast broadcasts to the local segment. I know of another player that does this already, but don't remember the name. Oh, and instead of just streaming OGGs and MP3s, stream ANY format. Hell, with enough bandwidth you can stream WAVs. Not practical over the internet, but would work fine in a LAN.

I am just frustrated with the current streaming solutions. I just want to listen to my music collection, and have full control over it from a remote location. I tried various different Winamp/Shoutcast/Icecast solutions, but none of them gave me the control and features I wanted. Instead of having all the separate programs (Winamp + DSP Plugin + Server + Control Software) one integrated solution would be better, IMHO.

But first I need to figure some things out

 

Coding Help...

Reply #6
LoKi128

i'll be waiting.  not a total newbie - i have figured out how to do everyting i want to do.  but, having your program would make it MUCH easier.  i rip my own cd's to have on the harddisk to listen.  but i do find the occasional songs that are in mp3pro and would like to have them on a compilation disk.  have to go through nero to decode.  not hard just a pain.  i haven't messed with streaming , yet.  that is where the "newbie" is strongest. i don't feel ready to try that yet.  just want more control over what i do.  your program will definately help me and i feel it will help others by making it easier to decode whatever format to wav to burn.  i don't trust the internal decoder of nero (mp3 to wav) because it has let me down before (or was it a case of operator error - newbie) don't know for sure.  decode first to wave then burn - i feel it is much more reliable.  started using wavegain to level things out and it has really made a difference.

Thanks again and best of luck