I couldn’t agree more with this idea of open source as mandatory for reproducible science.
A great article about George Tzanetakis‘ 10 year work on MIR and software development: A Look at George Tzanetakis’ Innovations in Music Classification.
I feel really lucky (and proud) to know George since the early days of Marsyas (around 2003) and then to actually meet him in person here in Portugal some time later.
I ended up doing 3 research interships under his supervision at the University of Victoria, BC, Canada, during my PhD, and we currently keep a close collaboration in the scope of Marsyas and a R&D project on the topic of CASA (Computational Auditory Scene Analysis).
Congratulations George! And keep up with the good work! 🙂
I’ve been trying, together with André Perrotta, to make Marsyas and Open Frameworks (OF) play nicely with each other. The idea is to be able to use Marsyas inside an OF project.
Usually this is done using an OF addon, and Marsyas already provides an experimental ofMarsyas addon in the SVN repository (check it out at here, and some OF examples that use Marsyas here – these locations in the SVN repo may change place in a near future, though, as we probably tidy up the directory structure soon).
However, some problems seem to exist in making Marsyas and OF play nicely together:
- you’ll find that there is a clash between the MACRO define PI in OF and the const variable with the same name (elegantly) defined in the Marsyas namespace (MACROS could not care less about namespaces, and thats one of the reasons why its use should be sparse… and careful). Options to solve this would be to rename PI in Marsyas or in OF to some distinct names. This would imply having to modify all occurrences of PI in one of the libs, essentially creating a fork of the code. A better solution (suggested by Pedro Silva in the Marsyas developers mailing list, is to just do #undef PI after the includes form OF, and just before the includes of Marsyas in your main code).
- OF must be built as a 32 bit lib (at least in OSX 10.6.7) because of some legacy issues with QuickTime. Marsyas is built by default as a 64bit lib, so when you try to mix them together, the refuse to link. So, be sure to compile Marsyas as a static 32bit library (i.e. libmarsyas.a) before including it in an OF project. The way to do so in CMake is to set the CMAKE_OSX_ARCHITECTURES to i386 . Then in the OF Xcode project, you just have to point it to the correct 32bit libmarsyas.a lib, and make sure it also knowns about the corresponding .h headers. In case you wonder how to know if a library is 32 or 64 bit in OSX, have a look here.
- As far as it was possible to understand, the ofMarsyas addon still has some problems (there are some hardcoded paths in some of the #include calls, and ofxThreads still borks in some occasions), and we are in the process of investigating it and will post about our findings ASAP.
We’ll post some additional info (and hopefully more detailed info) soon.
So its seems Nokia, the giant who in the recent years seems to completely have lost its bearing, has decided today to party with Microsoft and include WMP7 as (yet another) software platform for their… er… devices (nowadays I’m not really sure what kind of stuff Nokia develops/sells anymore… cellphones? Smartphones? MobilePhones? MobileNet devices? Go figure…).
Now, I couldn’t care less about Nokia and their schizophrenic Symbian, MeeGo, WMP7 personas, but since they bough Trolltech a couple of years ago, I had since then this gut feeling that no good things would happen in the mid-term to Qt (a C++ framework originally developed by Trolltech and which is more than a multiplatform GUI development Toolkit, allowing to conveniently “write once and run everywhere” quasi-natively looking and felling apps for Windows, OSX and Linux).
And here we are…
The thing is that while coding for Marsyas, Qt has been the chosen GUI toolkit that allowed the project to easily deploy some nice GUI apps in the three main OS platforms (but fortunately, and mainly thanks to George “stubbornness” in not allowing Marsyas to become dependent on any 3rd party libs/toolkits, Marsyas can use any other GUI toolkit). Qt is in fact a quite nice piece of software, well documented and with good support, and almost paradoxically, made fully FOSS by Nokia when they bought Trolltech (at that time, MS Windows developers had no access to a FOSS license of Qt).
That said, and as someone that wrote some code using Qt in the past, I should probably now re-evaluate if my next projects should take Qt as a platform of choice. A good thing about Qt is that it is FOSS, and so it’s future may depend more on its developer base than on Nokia itself (and that’s why I’m curious to see what the KDE and (K)Ubuntu reactions will be), but these are confusing days for a software toolkit which may be relegated by its own owner to moribund symbian (eck!) or MeeGo platforms than not even Nokia seems to be betting hi-hopes anymore…
So it seems that using GPL licensed software for iOS apps distributed on the Apple App Store (and yes, there are “other ways” to distribute software for the iOS-ish platform ;-)) is a problem…
“The problem isn’t in the license terms. The problem is that the Apple App Store ToS for people wanting to distribute through it require that each app sold (even at price zero) must be licensed for use on a single device only. Permissively-licensed FOSS can be transacted for in the App Store, because its license can be replaced by single- device-only terms. Copylefted software can’t be un-freely relicensed, so it can’t be transacted for there under Apple’s current ToS.”
The Free Software Foundation confirms this situation, as can be understood from this post on their website about GNU Go on iOS :
“An iPhone port of GNU Go is currently being distributed through Apple’s App Store. However, this distribution is not in compliance with the GNU GPL. The primary problem is that Apple imposes numerous legal restrictions on use and distribution of GNU Go through the iTunes Store Terms of Service, which is forbidden by section 6 of GPLv2. So today we have written to Apple and asked them to come into compliance. We would be happy to see Apple distribute these programs under the GPL’s terms, but unfortunately, it seems much more likely that they’ll simply make the problem go away by removing GNU Go from the App Store.“
An interesting question is: “What about Android?”
According to Moglen, if you want to distribute your GPL-software on Android, you should be in the clear:
“So far as we know–and we have reviewed the Google Android market terms recently, so change would have to have occurred within the last few weeks–they do not place any limitation on how a market participant’s application is licensed that would inhibit distributing Android applications in the market under copyleft licensing.”
So, according to various specialists, the Android Market provides some flexibility of its terms in what regards app distribution, which when carefully tuned, allows compliance with the GPL (contrary to Apple App Store, which has zero flexibility on their ToS).
An interesting point to note regards Dual Licensed GPL software (as is the case of Marsyas). In such cases, a developer may acquire a commercial license of the software (freeing it from the GPL license terms) and therefore use it for commercial use (without being obliged to distribute any source code) or develop an iOS app and distribute it on the Apple App Store (even as a free app).