I have been thinking about the problem of dependencies, but without knowing which need replacing it is difficult to make suggestions.
Don't jump on anything that follows as I am just thinking out-loud and trying to connect some dots.
The OldUnreal project faces the same problems/restrictions in order to continue the development of audio support for older Unreal engine games, while also staying legal and free.
They have 1 more limitation we don't have, which may be what helped to find the solutions.
OS support. Whatever they use needs to be rolled for multiple OS support (development is done on Linux).
Originally the updated audio was built around FMod, but has now moved to libxmp.
This has the benefit of a well supported and maintained project, and a massive file type support.
Some formats are dealt separately by using;
ogg vorbis (BSD-License) FLAC (BSD-License) and mpg123 (LGPL 2.1)
This has kept distro size down to a level that people still living in 1999 are happy with
You can see the history of the Unreal Tournament build here as an example
For our purposes, we can use mpg123 as a default for reading and provide a link to the Lame MP3 disto so people can add write ability.
Fetching the missing file from a server after install is also another option. This allows you to present the licence for each such item.
If the zip plugin is made a standard, then Winamp can look inside a zip and extract a named file.
I use a tool (WebZip Explorer
) that lets you download a file from a zip, rather than the whole archive, Winamp could do the same and so fetch the needed lame file from the "official" site.
XMPlayer can update any installed plugin from the repository, avoiding the need for total updates.
This reduces distribution bandwidth requirements and allows for easy deployment of security updates.
Winamp should follow this model.
As long as Winamp has DirectShow support, it can fallback to whatever the OS has installed for MPEG support. I can force Media Player Classic to use the official Fraunhofer CoDecs if I really want to.
DirectShow already allows this in Winamp.
FFShow is the core of VLC, the Gabest MPC branches, Audacity, and many other free multimedia projects.
I have seen it implemented in many ways, usually with a large footprint due to non-optimised compiling (eg.VLC), but it can be small (eg. MPC).
The full FFDShow install for Windows also comes with limited support for Winamp plugins, which although not very functional, is at least a proof of concept.
Perhaps it is time to ditch the old DSP system and make Winamp use VST DSPs instead. We would gain more than we lose long term.
In theory I would be happy with a version of Winamp that supports whatever whatever my OS supports.
I am used to this in Linux and Amiga, and it means my file support can be newer than my player.
Out of the box support would vary, but post install downloads via Winamp itself could fill any blanks.
All this fuss about Gracenote support seems to have got in the way of us just having a normal functioning CDDB lookup like almost every other software on the planet, thus also allowing the use of a local version shared by other software.
Exact Audio Copy relies on it by default, and has a user made alternative that includes art and lyric fetching. It also includes a gracenote plugin that allows 10 lookups before it needs you to have a gracenote account.
Is there some reason we cannot do the same ?
Even when we had a working Gracenote plugin, I would have rather used my local CDDB repository, and added my data to a more used system.
NOTE: As I would rather trust EAC for CD rips, the lack of Gracenote has not been a problem for me.
Images can be sourced from Discogs, Last.fm or Amazon.
Discogs and Last.fm APIs could easily provide art and name suggestions (it is what they are made for). If you see the info was posted by the band or label you can assume the names and pictures are correct.
This relationship could possibly be used to weight the displayed results.
Future Winamp lookup plugins should be modular and make the assumption that any source will be temporary, or that a user may prefer another.
We need a situation where we don't need new plugins, we only need new URLs
The way you currently add new online services to the media library is a very good example.
We have a lot of knowledgeable visitors with backgrounds in various projects, if we had a list of the things we have to drop, we can crowd-source the solutions.
Keeping the development so tightly wrapped means that too small a pool of brains is being used.
Most software houses are now becoming very open about development and we get to see the painful process of making something work.
If Radionomy are to make Winamp free or opensource, then perhaps development style needs to change.
Look at the ex chief of Opera. He took his experience in the industry and decided that if you are to give the public what they want, you need to work with them, hence Vivaldi Beta is already the most flexible browser you can get out of the box.
Vivaldi is not a big company (has grown since the browser was released), and the casual relationship with the users builds more trust than dealing with the Wizard of Oz (faceless people behind the curtains), and does not make the small team seem amateur or unprofessional.
Many theoretically big companies don't like to break the illusion that there are swarms of workers in various departments, and so stay anonymous behind official statements and PR releases.
It keeps company value high on the stock market, as once floated, a company is only worth what people think it is worth, not what it is worth for real.
The Wizard of Radionomy may not want to come out from behind the curtains, but the longer we go without public interaction and signs of a direction, the more likely we will see a Winamp clone being developed by someone else.
They bought the Winamp code and imagery, not the concepts that make Winamp what it is.
They don't own much of what makes it indispensable, and I don't think that they realise what they bought (like all the owners of Amiga).
They only thought about the potential it "could" have, not what it is.
We can forgive that and help move things forward.
Example programs that download extra CoDecs to avoid distribution problems and minimise disto size.
RIOT Image Optimiser http://luci.criosweb.ro/riot/