HydrogenAudio

Hosted Forums => foobar2000 => General - (fb2k) => Topic started by: MuMart on 2004-04-18 20:13:54

Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-18 20:13:54
I've recently moved to linux and have been thinking about having a FB2K like audio app for that platform. Here's what I've been considering:

I first thought of adding a few Foobar features to an existing player like RhythmBox, but I don't think that's a good idea. Rhythmbox wants to be a simple iTunes type app without too much extensability.

Another possibility would be to port Foobar. Definitely possible, but there are a lot of problems with that approach. A lot of interesting foobar plugins are windows only, and keeping the ports in sync would be a nightmare, especially since the GUI would have to be rewritten. Another very minor point is the license, which might not be acceptable to all linux distributions (eg debian)

Yet another possibility would be to work on WINE until Foobar works flawlessly in it. It "kind of" works already. The problem is - if we keep foobar windows-native only windows developers can write plugins.

My current thinking is to do a foobar-like app from scratch in an interpreted language (probably Python), using gstreamer, XMMS and LADSPA plugins to do the hard DSP work. Using python's integrated scripting it could do some pretty advanced playlist management/status displays etc. There should be both Gnome and KDE guis available to prevent flamewars(!)

Anyway, these are just my thoughts so far. It would definitely be nice to have an audio-power-user app for linux that integrates as many linux audio technologies as possible (ALSA, LADSPA, gstreamer, ARTS, BruteFIR, LAME, CDParanioa ...)

Perhaps this is being done already. Any thoughts?

EDIT: Oops - that should be 2000 !
Title: Linux Foobar200 Clone?
Post by: askoff on 2004-04-18 22:03:31
I've been thinking exactly the same things that you are. I just finished my Gentoo installations and I'm looking also good media players for it. One way could be that foobar2000 should be optimize litle bit more for Wine, which is not the best solution over all, but usable.
Title: Linux Foobar200 Clone?
Post by: ak on 2004-04-18 22:32:40
Well, maybe mpd would be worth considering. No idea though how much it allows to implement in client yet.
It could be nice for casual listnening/organizing, especially when they'll add rg, musepack support etc, as they plan (http://www.musicpd.org/?page=future).
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-18 23:31:50
Quote
Well, maybe mpd would be worth considering. No idea though how much it allows to implement in client yet.
It could be nice for casual listnening/organizing, especially when they'll add rg, musepack support etc, as they plan.


Looks good. Not sure about support for DSP plugins though. I'll have to look into the way LADSPA plugins are implemented. If they have their own GUIs it's probably not suitable.
Title: Linux Foobar200 Clone?
Post by: Agent86 on 2004-04-19 00:41:06
Another user here started the LAMIP (http://fondriest.frederic.free.fr/realisations/lamip/) project to try to do a Foobar on Linux sort of thing.

Does anyone know what is going on with XMMS2 (http://xmms2.xmms.org)?

- Agent 86
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-19 00:51:06
I've been looking into gstreamer and LADSPA and by-crikey this stuff is amazing! What a framework! And it's got python bindings. Looks very promising. All the Foobar dsps are already implemented as LADSPA plugins.

Had a quick look at LAMIP. Seems to be coming along but there's a lot of re-inventing the wheel, and it has it's own plugin architecture.

I think writing a python playlist front-end to gstreamer integrating all current foobar features is the way to go right now.
Title: Linux Foobar200 Clone?
Post by: kode54 on 2004-04-19 01:01:10
Not to mention that you'll be taking the UI and stripping away some of the best parts. You'll just have another Winamp2 clone with a FB2k UI, which will suck.

In my opinion, managed and/or interpreted languages suck for serious applications. If it doesn't compile to stand-alone machine code, it will be slower. I don't care if it is easier for you to program, or easier for others to learn and develop for.

Of course, that's just my opinion. Feel free to carry out your plans.
Title: Linux Foobar200 Clone?
Post by: Sandman2012 on 2004-04-19 01:08:12
There was a similar app for Linux called Musik. I can't get their site to load now. I don't get a 404 or anything, just nothing. Somebody linked the site to me once last year and I haven't checked up on it since so I don't know if the project's been scrapped or what. Here's the link I have in case it comes back up:  http://musik.berlios.de/ (http://musik.berlios.de/)
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-19 01:39:26
Quote
Not to mention that you'll be taking the UI and stripping away some of the best parts. You'll just have another Winamp2 clone with a FB2k UI, which will suck.


Not true. I don't want to write another winamp clone. I want a foobar clone. I think this approach could produce that. Python would be providing the scripting support and playlist logic. The decoding and DSP would be done in 100% machine code through gstreamer. The plan is that all foobar2000 features will be present, and more.

Quote
In my opinion, managed and/or interpreted languages suck for serious applications. If it doesn't compile to stand-alone machine code, it will be slower. I don't care if it is easier for you to program, or easier for others to learn and develop for.

Of course, that's just my opinion. Feel free to carry out your plans.


You're entitled to your opinion, which is clearly wrong
Title: Linux Foobar200 Clone?
Post by: askoff on 2004-04-19 14:32:59
MuMart: Do you think that all good features can be implemented like dithering and replaygain? What about foobar2000 licence? Does it allow borrowing/copying some algorithms?
Title: Linux Foobar200 Clone?
Post by: Latexxx on 2004-04-19 16:39:16
Quote
There was a similar app for Linux called Musik. I can't get their site to load now. I don't get a 404 or anything, just nothing. Somebody linked the site to me once last year and I haven't checked up on it since so I don't know if the project's been scrapped or what. Here's the link I have in case it comes back up:  http://musik.berlios.de/ (http://musik.berlios.de/)

It doesn't seem to be dead. At least they did a release at 14th March nad the link works at least for me. Try this: http://developer.berlios.de/projects/musik/ (http://developer.berlios.de/projects/musik/)
Title: Linux Foobar200 Clone?
Post by: kode54 on 2004-04-19 18:01:25
Quote
You're entitled to your opinion, which is clearly wrong

Opinions are never wrong.

Foobar2000 isn't just about the user interface. It's also about the underlying architecture.

The players you wish to borrow components from basically duplicate the style of Winamp2. Inputs do their own file reading, create their own decoding threads, and open the output themselves, and they can only decode one file at a time. I'm not sure about all of those players, but the XMMS components are probably coded to use GTK for their dialogs as well.

It can't really be called a Foobar2000 clone if you don't duplicate the core service system outlined by the SDK. With some work, you can duplicate the core, or even go so far as to wrap all of the platform-specific functionality that most components will need, so they won't too many source changes to be recompiled for either platform.

If you really knew anything about the underlying design, you'd know why it's so easy to wrap many of the Winamp2 clones' components into each other player, and why it's such a pain to wrap them into Foobar2000 itself.

Why yes, the Winamp2 input wrapper is quite buggy. What a surprise, the AMIP wrapper and Winamp2 general component combo is not without its share of annoying bugs.
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-19 18:42:26
Quote
The players you wish to borrow components from basically duplicate the style of Winamp2. Inputs do their own file reading, create their own decoding threads, and open the output themselves, and they can only decode one file at a time. I'm not sure about all of those players, but the XMMS components are probably coded to use GTK for their dialogs as well.


That's actually not true. Gstreamer is not an application, more of an architecture for processing 32 bit audio data in realtime. There's also a plugin system called LADSPA that is similar to DirectX that gstreamer can use. These systems are intended to be professional quality. A great deal of DSP algorithms are already available, and adding new ones would not be difficult.

Quote
It can't really be called a Foobar2000 clone if you don't duplicate the core service system outlined by the SDK. With some work, you can duplicate the core, or even go so far as to wrap all of the platform-specific functionality that most components will need, so they won't too many source changes to be recompiled for either platform.


Well, my idea is not to produce a port anymore, more of an application "in the spirit of Foobar2000". Which probably means I shouldn't be discussing it in this thread anymore

Quote
If you really knew anything about the underlying design, you'd know why it's so easy to wrap many of the Winamp2 clones' components into each other player, and why it's such a pain to wrap them into Foobar2000 itself.


I admit I know nothing of foobar internals, although audio plugin architectures are all alike at a fundamental level. I know foobar requires things such as sample-accurate seeking from it's input plugins which would cause problems integrating simple architectures.

I need to give it more research, but I think gstreamer  will provide all the necessary components to provide a very powerful audio management app in linux. As an added bonus all extensions to gstreamer are available for other apps to use.

Quote
Why yes, the Winamp2 input wrapper is quite buggy. What a surprise, the AMIP wrapper and Winamp2 general component combo is not without its share of annoying bugs.


Running winamp plugins on linux is a non-starter. Also integrating XMMS plugins is probably not such a good idea also. It would probably be better to adapt them into the gstreamer arch instead.

Anyway, the success of foobar2000 is not about the software architecture, it's the fact that it does what lots of people want in one place.

A project like what I am considering would be a success only if it provides the features people want out of a player. I don't think it has to be a straight-copy of foobar as long as it has all the necessary features.
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-19 18:47:35
Quote
MuMart: Do you think that all good features can be implemented like dithering and replaygain? What about foobar2000 licence? Does it allow borrowing/copying some algorithms?


Replaygain is not a problem at all. The dithering algorithms may need to be written/adapted into (hopefilly) ladspa plugins. If the foobar license forbids adapting their algorithms they would have to be sourced from somewhere else. There are lots of dithering algorithm sources on the web.

Somebody may already have written them. There are lots and lots of LADSPA plugins on the web.
Title: Linux Foobar200 Clone?
Post by: Thikasabrik on 2004-04-19 18:59:14
It would be great to see this project happen! Linux already has iTunes-alike music players (rhythmbox), but it just doesn't have the swiss army knife that is foobar. Btw, muine (http://muine.gooeylinux.org/) is an interesting player, although it is programmed in C# and requires mono, in that it uses GStreamer and supports replaygain. Unfortunately, it's simple interface and lack of options mean it is taking a completely different path to foobar. But, that said, a GStreamer musepack plugin would bring it a lot closer... Anyway, good luck MuMart, I hope you succeed. I'll be happy to test this player, as I'm sure many others will.
Title: Linux Foobar200 Clone?
Post by: landor on 2004-04-19 20:47:49
Quote
I've recently moved to linux and have been thinking about having a FB2K like audio app for that platform.

I've been looking around and am unable to find a player/plugin for linux that enables reading audio files out of zip/rar/etc like Foobar's archive-reader.
Any suggestions?
Title: Linux Foobar200 Clone?
Post by: foosion on 2004-04-19 22:52:26
Quote
Anyway, the success of foobar2000 is not about the software architecture, it's the fact that it does what lots of people want in one place.

How do think it can do so many useful things, if not because of its software architecture (which does not only cover input/DSP/output)?
Title: Linux Foobar200 Clone?
Post by: MuMart on 2004-04-20 00:20:08
Quote
How do think it can do so many useful things, if not because of its software architecture (which does not only cover input/DSP/output)?


The foobar architecture is indeed very flexible and successful. The point I was making is that it is not necessary to keep the *exact* foobar2000 architecture and port it over to make a software with the same functionality. The important thing is for the app to have all the features the users demand. None of the current linux players currently have the features of foobar - and I hope to start a project to create one.
Title: Linux Foobar200 Clone?
Post by: teetee on 2004-04-20 10:51:55
Quote
None of the current linux players currently have the features of foobar - and I hope to start a project to create one.

Having looked at wxMusik (http://developer.berlios.de/projects/musik/ , http://musik.berlios.de/) (http://musik.berlios.de/)) as suggested earlier in this thread, I would suggest you look at joining that group and adding the functionality you feel is missing from that. It is open source AND cross-platform using a free C++ cross-platform library (wxWidgets) for display.

wxMusik is obviously missing plenty of features I (and many others would like) but it has a good basis (SQLite backed database so simple and complex queries possible for creating playlists) and being properly cross-platform means that it should appeal strongly to people (like me) who need to use both Windows and Unix/Linux at various times and who would like a consistent, powerful music player like fb2k on both platforms..

It is at least worth checking out wxMusik to see if you could join the developers and add those features rather than starting completely from scratch..
Title: Linux Foobar200 Clone?
Post by: teetee on 2004-04-20 11:02:22
Quote
The foobar architecture is indeed very flexible and successful. The point I was making is that it is not necessary to keep the *exact* foobar2000 architecture and port it over to make a software with the same functionality. The important thing is for the app to have all the features the users demand.

I think that you will find that it is equally important (if not more important) for the app to have all the features that plugin developers might "demand". IMHO fb2k is successful for two (main) reasons:
1. The core player has more features, implemented better than any other windows player (replaygain, dsp chain, format support, masstagger, multiple playlist etc.)
2. The architecture has allowed the API to be so strong that a large number of individuals have created powerful plugins to extend fb2k even further (more file formats, on screen display, extended search and playlists, lyrics, ipod, etc.)

So.. it is clear that to make a player desirable, you need to make it possible to offload as much of the functionality development to plugin developers as you can. This allows you to concentrate on core features. You would do well to use a similar architecture to foobar2000.

Of course ideally Peter would allow someone to port all the non-cross-platform stuff in the core into wxWindows.. 
Title: Linux Foobar200 Clone?
Post by: askoff on 2004-04-20 15:13:53
I think that wxMusic misses so many features, that perhaps it's better to look that LADCA project. At least I didn't saw free playlist custoize, other than MP3 an ogg supprot, APEv2 tags, replaygain, dithering, gapless MP3 playback support and so on. Or the features documentation is not well done.
Title: Linux Foobar200 Clone?
Post by: Agent86 on 2004-04-21 08:33:19
If you're looking for an existing "architecture" to tap into, GStreamer is probably the way to go.  Their ongoing integration with Gnome will open the app up to a lot more users as well as draw attention from Gnome developers.

- Agent 86
Title: Linux Foobar200 Clone?
Post by: Giakaama on 2004-04-25 02:05:02
Well ... Hi ...
I'm using foobar2000 since the beginning    and when i switched to linux i really really wanted a foobar2000 port , all the linux players don't do all the stuff that foobar2000 does ... but porting foobar2000 from windows to linux is not easy so when i read about a foobar2000 clone for linux i thought that ... "well i think is time for us linux-guys to be happy"

So ... if you could do this foobar2000 clone ... like foobar2000  then i'll wait for the release ...

Currently i use foobar2000+foo_ui_columns.dll+wine in linux ... it works pretty good but is not ... native ...  ...
Title: Linux Foobar200 Clone?
Post by: filon on 2004-04-25 08:43:05
Foobar2000 can be made as native Linux application by compiling with winelib. This would need adapting code to make it Wine compatibile, but probably shouldn't be much of work.
Title: Linux Foobar200 Clone?
Post by: Giakaama on 2004-04-27 19:51:56
Hi guys !!!

Well ... MuMart ... did you start developing the player ??? we all wait to test it !!!  Hope you start working on it soon !!!

Linux users NEED  a good music player  !!! And a foobar2000 clone will be the best !!!
Title: Linux Foobar200 Clone?
Post by: askoff on 2004-04-28 16:06:47
I wish Peter would do something with that playlist redraw thing. It's quite funny thing because almost every other menu works fine.
For now that would do fine until something is done for Linux.
Title: Linux Foobar200 Clone?
Post by: tool++ on 2006-05-30 20:34:58
Ehh did anything happen of this? (massive bump yes, thanks google)

foobar is pretty much the main thing keeping me using windows.
Title: Linux Foobar200 Clone?
Post by: ilikedirtthe2nd on 2006-05-30 21:31:02
There is Boofar (http://sourceforge.net/projects/boofar) which aims to be a "Semi-clone of foobar2000 for linux" (screenshot (http://sourceforge.net/dbimage.php?id=57134)). A very early "working" version has been released, didn't test it though...
Title: Linux Foobar200 Clone?
Post by: rosshmusic on 2006-05-31 18:05:08
hmmm... I like rhythmbox... now it supports plugins with the latest versions, I'll have to look into it and see how extensible they allow it to become...

that boofar page looks interesting (if anything ever happens with it)...

I'd be glad to contribute as music management is the only serious thing holding me on windows....
Title: Linux Foobar200 Clone?
Post by: MrMuffin on 2006-06-01 04:18:29
I've heard from multiple sources that amaroK (http://amarok.kde.org/) is better than foobar2000 (it is only available on Linux), but I'm not exactly sure how extensively these persons used foobar, and I haven't used it myself. 

The main thing that keeps me from using Linux regularly is the lack of foobar, and its inability to safely write to NTFS partitions (on which all my music is stored).  Plus these days if you're smart enough to run Linux well, then Windows XP really is just a better OS.
Title: Linux Foobar200 Clone?
Post by: Duble0Syx on 2006-06-01 06:02:53
I've heard from multiple sources that amaroK (http://amarok.kde.org/) is better than foobar2000 (it is only available on Linux), but I'm not exactly sure how extensively these persons used foobar, and I haven't used it myself. 

The main thing that keeps me from using Linux regularly is the lack of foobar, and its inability to safely write to NTFS partitions (on which all my music is stored).  Plus these days if you're smart enough to run Linux well, then Windows XP really is just a better OS.

AmaroK is indeed a very nice music player.  Has some very interesting features that even foobar doesn't.  I still prefer foobar and windows though.  I wouldn't say WinXP is a better OS though, especially for storing data.  Linux is solid as a rock for data storage, just setting up things like RAID and using LVM can be a bit challenging.  I still use windows though, thats what backups are for.  So for linux folks, I highly recommend amaroK.  Whether linux is better than WinXP or not can be decided elsewhere. 

EDIT: For those who won't switch to linux due to poor NTFS support, there is a proper ext2 filesystem driver for windows now with full read/write ability.  Not tested it yet, but it should work. http://www.fs-driver.org/ (http://www.fs-driver.org/)
Apparently M$ has released an IFS SDK for writing real filesystem drivers.  Shame no one has written one for Reiser or XFS yet.
Title: Linux Foobar200 Clone?
Post by: Fiend Angelical on 2006-06-01 10:20:58
I've heard very good things about Listen (http://listengnome.free.fr/) too.

Features include:

Code: [Select]
    * Play your favorite songs
    * Manage your library
    * Manage your ipod
    * Manage your podcast
    * Make playlists
    * Automatically or manually download album covers
    * Automatically synchronize album covers with iPod
    * Easily burn an audio CD
    * Directly get informations from wikipedia when you play a song
    * See the lyrics of a song
    * Have statistics about your favorite songs, albums or artists
    * Listen to web radio
    * Submit your songs to Audioscrobbler
    * Quick access to last.fm related file

With listen you will be able to

    * Listen And Rip Audio CDs
    * Browse and listen songs on a DAAP share
    * Share you library via a DAAP share
    * Fill metadata with musicbrainz
    * Make inteligent playlists
Title: Linux Foobar200 Clone?
Post by: PotatoSalad on 2006-06-03 15:26:33
...

EDIT: For those who won't switch to linux due to poor NTFS support, there is a proper ext2 filesystem driver for windows now with full read/write ability.  Not tested it yet, but it should work. http://www.fs-driver.org/ (http://www.fs-driver.org/)
Apparently M$ has released an IFS SDK for writing real filesystem drivers.  Shame no one has written one for Reiser or XFS yet.

I have been using the Ext2 filesystem driver (http://www.fs-driver.org/) for over a year now.  I run Windows from a 20GB slave hard-drive (NTFS) and Linux from a 250G master hard-drive (4 partitions: 20GB ext3, 2GB swap, 208GB ext3, 20GB FAT32).  The FAT32 partition was originally made to store my music so I could access it from both Windows and Linux, but after I began using this driver, I simply moved my music back to my 208GB ext3 partition.  It has worked beautifully and better than I ever expected.  Now if only Linux had better writing support for NTFS, but that's a different argument.

amaroK (http://amarok.kde.org/) is an amazing audio player.  If you have never tried it, go download (http://us.releases.ubuntu.com/releases/kubuntu/dapper/) yourself a copy of the kubuntu livecd and fire it up.  Too much work?  Then at least check out the screenshots (http://shots.osdir.com/slideshows/slideshow.php?release=643&slide=1), although they really don't do it much justice.  I would love to have amaroK ported to Windows or for foobar2000 to adopt many of amaroK's scripting features (http://amarok.kde.org/amarokwiki/index.php/Scripts).  Since amaroK uses DCOP (http://en.wikipedia.org/wiki/DCOP) (sort of the KDE equivalent to Microsoft's COM (http://en.wikipedia.org/wiki/Component_Object_Model)), plugins and extensions can be written in a variety of scripting languages such as Ruby (http://www.ruby-lang.org/), Python (http://www.python.org/), and even with bash shell scripting (http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html).  foosion has been working on a COM Automation server (http://foosion.foobar2000.org/0.9/) and I have been working on bridging the gap (http://ruby-fb2k.rubyforge.org/) between foobar2000 and Ruby, but it still has a way to go.
Title: Linux Foobar200 Clone?
Post by: tool++ on 2006-06-04 11:16:24
Amarok, listen, MPD(GMPC), XMMS2, Rhythmbox whatever are all fairly good when I've played with them, but they don't match the extensibility and general amazingness of foobar.
Title: Linux Foobar200 Clone?
Post by: seanyseansean on 2006-06-05 11:30:46
What I really need (on both platforms) is something with a '10 foot interface', i.e. something with an interface like a normal dvd player, where it can be controlled by someone sat on a sofa away from the screen and without mousing around everywhere. We need big fonts, crisp response, no pc style windows and intuitive but simple controls.

Foobar is the nearest to this with the columnsui. Amarok is hopeless - apart from the never ending crashes and sluggish performance it is designed for someone sat right in front of it with a mouse.

What would really be nice would be something with a core like foobar that runs in mythtv as a replacement for the woeful mythmusic.

My media box in the lounge runs fc5 which is lovely, but really it's only used for surfing, music and tv/films (mythtv). If I could combine all these things into myth i'd be a happy camper.

Maybe if MPD matures a bit then it could be used as an engine in the same way foobar is an engine wrapped in whatever gui you choose. It's got quite a way to go before it's that good though.
Title: Linux Foobar200 Clone?
Post by: tool++ on 2006-06-05 11:46:02
I spose wth MPD you could use MPC in a console and just have a damned huge console font
Title: Linux Foobar200 Clone?
Post by: askoff on 2006-06-06 11:04:08
AmaroK sure is a good piece of software but it lack's the features why I use foobar2000, such as good resampler and good Wavpack support. Although the Wavpack support isn't AmaroK's fault entirely, it's still something that isn't working well in it.
Title: Linux Foobar200 Clone?
Post by: Goldy on 2006-06-23 01:26:49
Do you know one having archives supported ? Usefull feature.
Title: Linux Foobar200 Clone?
Post by: Madman2003 on 2006-06-24 14:52:43
Not exactly a foobar clone, but a nice player nonetheless (compile the latest cvs version). For those who read this very soon, don't get the cvs tarball 0.184.0. Get 0.184.2 from the cvs server, it fixed a bug with the resampler (which was introduced after some realtime/jack fixes).

Only thing it lacks for me is apev2 tag support, but the rest is nice.