Windows Media Player can play a lot of file formats, but its just not beautiful style.
MCI can play a lot of file formats, you can even create a visualisation
by recording from WaveOut.
But when it comes to DSP, neither WMP nor MCI will give you any control over the data.
There are alternatives like BASS or FMOD, but they're not completely free.
So HOW does Winamp do that?
I've spent the last 5 months figuring that out , the result is pretty good.
Almost completely written in VB, just a few dependencies (lame ACM codec, lame_enc.dll, ogg.dll, vorbis.dll, vorbisfile.dll, MACDll.dll, WMF SDK/Runtime v9 ).
Features:
- decodes/plays WAV, MP3, OGG (Vorbis), WMA, APE, CDA
- encodes WAV, MP3, OGG (Vorbis), WMA, APE
- streaming playback with DirectSound 8
- DSP, analysis (comes with FFT and IIR filters)
- equalizer which theoretically supports up to 255 bands
- already implemented: IIR filters (low/high/bandpass, notch, peak eq, low/high shelve), FFT (+ windowing with Hanning/Hamming/Blackman windows)
- full ACM support
- CDA decoder supports ASPI, SPTI and IOCTLs
- system independent volume and pan settings (DirectSound)
- all decoders but WAV/CDA read tags
- comes with 4 examples:
1. player (plays all supported formats, playlist, 3 visualisations (time/frequency domain, dBFS display), 5 band graphic eq, effects (high/lowpass, flanger, echo), displays tags)
2. CD Ripper (grabs audio tracks, supports all encoders)
3. format transcoder (converts between all supported formats)
4. simple (simplest possible playback)
Readme is important!
If you have any problems, suggestions, comments, or any other feedback, please let me know!
Although I downloaded it, I haven't taken a look yet.
However, judging by the size of your zip file and the time spent on development and research, it looks like you put a lot of effort into this and it is appreciated.
Monoton v2. Probably the first audio player written in VB which shows a little of the staggering work behind Winamp.
It's not a DLL anymore, it's a real player. w00t.
This is by far the best open source project I've seen written in VB classic. I have run into one problem with it though. When I try to change increase the EQ to more than the default 8 bands I receive nothing but distortion during playback. Is the constant EQ_BANDS the only variable controlling the number of bands?
As always rm_03, a very nice example! I'm particularly interested in the ripping aspects, and am struggling with the Lame MP3 codec. Using the monoton app. in the bin folder, I can rip to MP3 - but in the project I get 'Encoder Not Initialised'.
The lame encoder DLL is in the project directory, so I don't understand why this is behaving this way. Can you shed some light on this please?
Oh, there's also a bug in the FreeDB library, I'll try and fix that when I can in your project and let you have the results - but right now have it working in my own separate library.
As always rm_03, a very nice example! I'm particularly interested in the ripping aspects, and am struggling with the Lame MP3 codec. Using the monoton app. in the bin folder, I can rip to MP3 - but in the project I get 'Encoder Not Initialised'.
The lame encoder DLL is in the project directory, so I don't understand why this is behaving this way. Can you shed some light on this please?
Oh, there's also a bug in the FreeDB library, I'll try and fix that when I can in your project and let you have the results - but right now have it working in my own separate library.
Try copying the lame dll to your windows system directory when running from the IDE. Also I'm not sure what bug your referring to in the FreeDB class, I have yet to encounter any problem.
Okay, rather than copy to the system32 directory, I modified LoadDLL to specify the app.path - and that looks to have resolved my immediate problem loading the DLLs.
I have a new CD set here 'Helter Skelter vs Raindance: Hardcore 2007' and the data returned by the FreeDB class is not read correctly.
The DiscID is: 52123717
Here are two links to images showing the differences returned by my hacked up Flamed and the release Monoton:
It must be the CD entry in FreeDB itself. I've tested both Flamed and Monoton on about 12 mixed data CDs and have never had it crop off the track titles. Both projects use the same FreeDB class from vbaccelerator.com. I will try it on some more of my Mixed data CDs this week.
Nope, it's not the FreeDB entry, that returns fine. I've located the problem and fixed it. If the freeDB track entries return across more than one line, ie:
TTITLE1=Fedde La Grand / Put Your Hands Up For Detroit (Slipmatt & Billy 'Danie
TTITLE1=l' Bunter Remix)
...the code in AddTitle doesn't cope with this. It's a simple change, entire procedure is pasted below:
I've also got a problem at the moment with ID3 tags - but that might be because I've been debugging and can't delete tracks because the file stream wasn't closed. When I can reboot the O/S I'll confirm this.
hey, i tried running monoton_ds_en in VS 2008, it gave an upgrade error sayin dx8vb.dll needed.. i got the file and put it in my system dir but it still didnt work.. anyway so i tried opening it with VB6 . how do i get it to run?? i know this might seem silly but im basically a java programmer... due to the lack of proper sound facilties in JMF ive shifted to VB and C#... also when i run monoton v2 in vb6 it gives up an error saying method show of frmMain failed... any suggestions??
Does this do audio only? OR can it RAW READ ANY DATA BITS on a CD. I would prefer it if there were a way to read anything from a data track or audio track. A dumb "bit reader" so to speak, that would ignore what type of track it was reading, and just send the raw bits to my software, so my software could handle them as I need to for my own custom uses.
The links are 11 years old, websites come and go.
Did you check the link given by fafalone in the post above yours???
Sorry for my late reply. I have checked the link given by fafalone, but the link can't be opened. A lot of websites are blocked in our country, such as Google.