You are not logged in.
Hey, a while back I used MusikBox, but I just tried to download it and it doesn't appear to exist anymore. Is the project still going? I'd love to see some of these features now in MusikCube running in MusikBox. Thanks!
Travis
avatar needs another developer to help work on musikBox.
Offline
musikBox is ALMOST working -- I just can't get my string class to work properly with unicode strings. If you know any experienced Linux developers interested in helping, please let me know ![]()
Offline
I'll ask around for you!
You have any source you've posted anywhere I can direct people to?
Hey, cool. Heres what I need help with:
1) standard ./configure, make, make install installation. i use cmake because its easy, but its also extremely non standard.
2) unicode strings: i use a cross platform string class called CStdString that wraps std::string and std::wstring. There is a CStdString::Format() function call that is similar to wsprintf(). If I do this:
CStdString mystr;
mystr.Format( L"%s", L"HELLO!" );
wprintf( mystr.c_str() );
wprintf( "n" );
I expect to see this:
avatar@ricochet>./format_test
HELLO!
But I actually see this:
avatar@ricochet>./format_test
H
All the strings I use Format() with get truncated to one character. I don't yet have the *nix debugging skills to trace it out. If someone could fix this bug, musikBox would work again. It would alsosupport APE and MPC files in Linux (take that, windows!).
Developers can grab the latest musikCore source code:
http://prdownloads.sourceforge.net/musi … p?download
musikBox is in the project's CVS.
Please let me know if you find any interested parties -- it will run really smoothly in linux if we can take care of these two things.
Offline
The auto* stuff isn't normally too compicated once you getyour head around it. Usually.
I'll take a stab at it later tonight, and I'll look at the CStdString stuff while I'm there. I haven't actually looked yet, but I'm assuming that MusikCore is a library that MusikBox uses, are you going to want the MusikCore library installed (as a .so) or linked in to MusikBox?
Nice work there by me, signing up and then forgetting to log in.
[edit] Sourceforges CVS seems to be down at the moment, I'll try again a bit later
Offline
Great
, hopefully we can get musikBox compiling again with minimal effort. I'd sure love to use it again on my Linux box.
Offline
Hello,
I am a very experienced linux developer. I am also very familiar with the GNU autotools. I'm going to try poking around with the source in the next few days as I happen to have some free time. Is there still interest in the GTK port? have the bugs been fixed? Just curious if this is even an outstanding issue.
-Chandler
Chandler Carruth wrote:
Hello,
I am a very experienced linux developer. I am also very familiar with the GNU autotools. I'm going to try poking around with the source in the next few days as I happen to have some free time. Is there still interest in the GTK port? have the bugs been fixed? Just curious if this is even an outstanding issue.
-Chandler
I've just started poking around with linux and all I know is that I want musicCube/Box to work with Ubuntu, and I'm not the only one I know.
Offline
I got musikBox to work under Fedora Core 4, recently.
Next thing I'll possibly try is Gentoo.
Offline
add my vote for it :) nearly completly running ubuntu, only but into xp for games.
the only problem with linux is that there is no good media player imo.
amorak is way too bloated, and relys on the kde libs -im a gnome man :D
totem is good for quick basic listening like streams and download from the web (like media player classic) but has no library
xmms/beep are winamp lookalikes and are not good if you have a large collection of music
rythmnbox is ok, but is not very customisable and seems slow and doesnt sync with my library very well.
finaly muine which i am currently using is ok as it takes a differnt approch. i use it as it is quick, but takes some getting used to.
my experience with musikBox wasnt too great. seemed slow and missing alot of featues that i love from the Cube. i dont know if much has changed since. - i have version 0.0.1.5-pre1.
i hope this will be worked on. if only i could program i would help, anyone know a good tutorial? just to know the basics.
what i miss and what is much needed in musikBox:
1.basic stuff - Random, Repeat, tag edting (Why do none of the linux players have this?!)
2.nice basic stuff - rearangeable panels, tunage, even an optins panel
3.extra stuff - cross platform plugins :D
sorry if this sounds like a moan at the developer, its not. i just miss how good musikCube is and want something as good for linux as for me linux IS the future :D
edit: reworded cleaned up sum stuff.
Last edited by kid a (2005-08-23 14:24:51)
Offline
Well, I just checked out the CVS source... first step is to get musikCore building cleanly w/ autotools in linux. Then i'll throw together an ebuild for Gentoo for it, and i can make rpm's as well... Could also try some .deb packages for the ubuntu/debian crowd... Next phase will be getting musikBox set up w/ the autotools (should be very simple after musikCore) and then I'll see about the bug mentioned in this and another post.... Let me know of further interest, and other features, as I am a hard core linux user, and also desperate for a good music player that isn't tied to KDE/Qt nastiness...
cheers,
-Chandler
Offline
As far as I remember there was a small bug containing Win32 source code.
I commented it out as supposed here in the forums and it worked.
So, set the ball rolling, chandlerc!!! ![]()
Offline
*grumble grumble*
so the libraries used... are wretchedly configured for linux...
rephrase, one of the libraries used is wretchedly configured for linux, namely OpenThreads... loads of fun there... ahh well, patching it up as best i can...
taglib i think i can work with, it at least has 'taglib-config' to help out.. xine is easy, and once i tackle openthreads, we'll see about getting sqlite going.. more updates to come...
-cc
Offline
whoooo thanks for helping us out, the greatness of open source.
Offline
For those interested, i have a working CVS build of musikCore. I have successfully added a full autotools setup using libtool, autoconf, and automake to build. It includes a new package config file so that it can be easily used as a library in other autotools builds, namely musikBox. The autotools build of musikBox should be much simpler, as it will use most of the same work done for musikCore. I have tarballs, if you are interested, drop me an email. I'll try and put them up on a server at some point.... Any comments from the developers? I'd like to work on this with thier assistance.
-Chandler
Offline
Maybe this will help to continue the development of musikBox.
I would love to see musikBox improved in the future.

Offline
And these are the pitfalls of using MFC in musikCube. No easy port for musikBox, but rather a rewrite (except the backend) that tries to be as good as musikCube.
Casey should have continued with the wxMusik approach (with wxWidgets UI framework), I guess.
MFC makes it impossible for everyone not having a full copy of MS Visual Studio to contribute.
But, any work on musikBox is appreciated! ![]()
Offline
I actually like the design of musikCube/Core/Box. Windows applications should have the GUI coded in a natural way, that works with other windows GUIs. linux GUIs should be coded directly for a linux GUI. wxWidgets, imo, while often looking good in windows, look terrible in linux, are insane bloated, and nearly impossible to use. wxMusik is the ugliest linux application I have ever tried to use. =/ I think I will be much happier with a natively GTK UI that uses the same backend library. That is imo the best design for cross-platform applications.
-Chandler
Offline
I agree with Chandler, with the addition that wxWidgets apps also don't look all that good in Windows, IMO. For example, VLC is a great video/media player on Windows, but the default wxWidgets interface is just horrible. Windows don't size right, configurability is difficult and hard to use, font sizes are all screwed up, it's just awful.
Yeah, the way to go is to put the functionality in easily portable, non-interface specific, pieces, and then code interfaces natively. With the new design, hopefully this will just mean that we will only need people to port/write interface plugins between OS's. The non-interface plugins should work with just recompiling (in theory).
Offline
Otto wrote:
Yeah, the way to go is to put the functionality in easily portable, non-interface specific, pieces, and then code interfaces natively. With the new design, hopefully this will just mean that we will only need people to port/write interface plugins between OS's. The non-interface plugins should work with just recompiling (in theory).
One worry about this: if the interface becomes simply a plugin, then the plugin loading/unloading will have to be cross-platform. This could be more difficult than you might at first imagine because share object loading, and referencing is WinAPI specific in windows, and POSIX specific in Linux (may not be POSIX standard, but i thought it was..., its dlopen etc). This could prove to be problematic to code into a single executable. I would lean more towards the current layout:
* Portable library implementing core features.
* Portable plugin libraries.
---
* Non Portable OS specific GUI application that both loads the core library, and the plugins, and provides the glue between them in an OS specific manner.
However, if either someone has found a clean way to do portable dynamic library loading (IE, not with tons of #ifdef, #else, #endif blocks...) rock on, I just haven't seen a clean implementation of it.
Something else that might be of interest and is portable: using scripting languages for plugins with SWIG generating glue code. Could make portable plugin development, and plugin development in general much easier... just an idea, as I've been looking at the plugin system as it stands, and its a bit Visual Studio centric... =/ we'll see...
-Chandler
Offline
chandlerc wrote:
One worry about this: if the interface becomes simply a plugin, then the plugin loading/unloading will have to be cross-platform.
Not exactly. Interface loading/unloading will be in the "main()" sort of call. They'd still be separate executables.
chandlerrc wrote:
* Portable library implementing core features.
* Portable plugin libraries.
---
* Non Portable OS specific GUI application that both loads the core library, and the plugins, and provides the glue between them in an OS specific manner.
Yeah, exactly. That'd still be the same. Except that the GUI application will also load all its main interface bits from plugins as well. Hopefully, a similar application could be constructed on other OS's that used the same basic architecture, allowing these interface plugins to be ported somewhat easily. These interface plugins could implement OS specific stuff themselves, but they don't necessarily have to.
I dunno, I'm just thinking out loud, sort of thing. ![]()
Of course, in theory, you don't have to go that way with any interface. If you wanted to write a straightforward monolithic interface and just use the portable libraries, you could. Nothing stops you from doing that. The interface plugins are specific to your interface, I suppose. It'd be nice to have compatible interface plugins cross platform, but it might be infeasible.
Last edited by Otto (2005-08-24 08:58:44)
Offline
Otto wrote:
Yeah, exactly. That'd still be the same. Except that the GUI application will also load all its main interface bits from plugins as well.
...
Of course, in theory, you don't have to go that way with any interface. If you wanted to write a straightforward monolithic interface and just use the portable libraries, you could. Nothing stops you from doing that. The interface plugins are specific to your interface, I suppose. It'd be nice to have compatible interface plugins cross platform, but it might be infeasible.
I rather like the idea of the interface being broken down into components that can be loaded/unloaded as desired. I do not know how feasable this is with gtkmm, the GUI library in linux that musicBox uses (and the best one imho. ;]). I don't know how to do it off the top of my head, but there might be some way. I also don't know how feasable it is to have plugins add/remove bits from a unified interface in Windows. My understand had been (and this is dated, so please correct me if wrong) that a window generally had to create all its GUI elements at once. While a plugin could create a new window easily (ala miniCube or whatever the plugin is w/ the little UI for controling) but having elements within the main window change based on plugins may be difficult in windows, and I'm certain it would be difficult in linux. The hardest part i forsee in this whole idea is the layout issue. How do you layout the main window if each element is provided by a plugin that may or may not be there? Especially if you have to assume that there will be new interface elements written that you don't know about yet? how do they fit into the interface?
A possible compromise would be to have an area of the interface for plugins, and let what plugins are there fill it up, and be organized as the user sees fit. That would still allow some elements of the UI to be extended w/ plugins, and allow plugins to have GUI components, but the layout of the main application wouldn't have to understand all the UI plugins ahead of time.
Perhaps this whole discussion is beyond the scope of this thread though? Very interesting however. =] I am looking forward to having this thing running in linux.... sooo close... (installing libraries i didn't have and glade right now, then i start debugging musikBox)
-Chandler
Offline