One of the reasons I got into learning programming was one day to try creating my own audio player, only as a hobby, and I was just wondering how difficult it would be?
I don’t know, if you were using some library/module it could be pretty easy…
Such as PyGame for Python. But I don’t know how the heck to make something stand-alone, binary, EXE on Python.
its not going to be in python, most probably c++.
ahh yes, ive had ideas of the same sort but never got around to it. I started learning C++ but cut short because lately i haven’t had enough time. If you are planning on starting to learn, you might want to take a look at VLC player as well ( i think you can download their code so as to know what everything is about and all.).
Look into PortAudio, as well as libsndfile and some of the other libraries Audacity uses if you want it to be relatively easy.
If you want it to be harder, then I’d suggest starting out with simply getting a couple things accomplished:
1.) Learn how to play sound on your system. Start off with maybe a simple sine wave.
2.) Figure out different file formats. Wave is a good place to start since its fairly open (although many wave files online nowadays are compressed and similar to mp3s). From there you can experiment with mp3s and other compressed formats (although the legality may be in question in some cases, as long as its a hobby, and you aren’t mass distributing it likely would never be a problem).
3.) Do a GUI.
That’s about it. Depending on your programming level probably expect anywhere from a couple days to a couple months to get a basic functionality going. Expect quite a while longer if your taking the hard road.
In my own audio player I would like to make avalible .wma subscriptions and .acc files. How difficult would it be to figure out how to make both playable in the same audio player?
‘One day’ as in 13th September 2078?
hopefully before then
You have quite an ambious plan. Good luck on this project and I hope you learn lots from this exercise and come up with better mouse trap.
Look into FFMpeg for .wma (not sure if it can deal with the DMA subscription stuff, though). For AAC there is source code available to decode it (FFMpeg maybe, too?).
Codewise its not hard to do, the basic flow of an audio player is just:
decode file->equalize/filter audio (not all audio players support equalization I suppose)->play
The basic desire in decoding the file is to get it from whatever format its in to some common format internal to your program that you then filter and play.
There are issues with legality (DRM and Patents), though, if you ever wanted to distribute your audio player.