Amarok
MTP Support Arrives
Caption: 2 MTP devices connected, and songs playing from iPod
This is a bit overdue, but initial support for MTP devices has arrived. To use it, you require limbtp >= 0.3.0 installed on the system, and a device supported by libmtp of course.
Part of the reason this took so long is that I'm starting to notice a lot of potentially reusable code, and will probably soon refactor to reflect this. MTP devices are strange beasts, because their filesystem can't be directly accessed. As a result, Amarok 1 and Windows Media Player et al can only do file management of tracks on these devices, not actually play directly off of them. I'm going to be working on an idea that allows playing off of them to be possible, because let's face it, A2 is an audio player, not just a file manager.
Thanks again to everyone who donated MTP devices to the Amarok group. You're the ones who make this possible. Support is still pretty basic, so please don't file bugs on this yet, but be ready to at some point in the semi-near future.
Edit: Snapshot of 3 Mentioned Devices
MTP Support Arrives
This is a bit overdue, but initial support for MTP devices has arrived. To use it, you require limbtp >= 0.3.0 installed on the system, and a device supported by libmtp of course.
Part of the reason this took so long is that I'm starting to notice a lot of potentially reusable code, and will probably soon refactor to reflect this. MTP devices are strange beasts, because their filesystem can't be directly accessed. As a result, Amarok 1 and Windows Media Player et al can only do file management of tracks on these devices, not actually play directly off of them. I'm going to be working on an idea that allows playing off of them to be possible, because let's face it, A2 is an audio player, not just a file manager.
Thanks again to everyone who donated MTP devices to the Amarok group. You're the ones who make this possible. Support is still pretty basic, so please don't file bugs on this yet, but be ready to at some point in the semi-near future.
Goddess of the sea
Amarok 2 alpha 2, codenamed Aulanerk, has been released. See the release announcement for more details.
Thanks everyone who helped with bug reports and patches. Keep them coming
And of course a screenshot for you to enjoy:
Fire has three needs: ignition, fuel, and OXYGEN
To fight this ugliness, I stopped sleeping for 2 days and uploaded the Oxygen theme for Firefox, version 1.0, a couple of weeks ago.
Even though it didn't quite make it through the public nomination process yet, I am quite certain that it works like a charm so grab the first release and don't forget to give a review to get it out of that awful sandbox/experimental area.
Grab it ---> HERE F.A.Q.:
- Why do I have to login to download?
- Version 1.0 isn't yet approved for public use and experimental downloads are only available after login.
Logging in also gives you the possibility to leave a review (which is highly appreciated as every review probably reduces the time until this version can leave the experimental status).
- Why is it only available for Linux?
- The Windows and Mac versions of Firefox expect the drop down arrow for recent pages to be themed and have an icon assigned manually, since I don't have a Windows or Mac around I can't get it to work and I have no idea how/whether this change effects the Linux version. Windows and Mac support is target for 1.1 though.
- Why does this only change the icons?
- Desktop integration, which is what the Oxygen crew is trying to provide here, means for one that an application uses the current icon set. This is however prevented by the fact that Firefox doesn't rely to 100% on the GTK-defined icon set (thus even with gtk-qt you wouldn't get a complete Oxygen experience). But desktop integration also includes widget style and colors, even though we could make the theme look somewhat like the real Oxygen, it would remove the style and color integration. This is really where software like the gtk-qt-engine should fill in.
Fire has three needs: ignition, fuel, and OXYGEN
To fight this ugliness, I stopped sleeping for 2 days and uploaded the Oxygen theme for Firefox, version 1.0, a couple of weeks ago.
Even though it didn't quite make it through the public nomination process yet, I am quite certain that it works like a charm so grab the first release and don't forget to give a review to get it out of that awful sandbox/experimental area.
Grab it ---> HERE F.A.Q.:
- Why do I have to login to download?
- Version 1.0 isn't yet approved for public use and experimental downloads are only available after login.
Logging in also gives you the possibility to leave a review (which is highly appreciated as every review probably reduces the time until this version can leave the experimental status).
- Why is it only available for Linux?
- The Windows and Mac versions of Firefox expect the drop down arrow for recent pages to be themed and have an icon assigned manually, since I don't have a Windows or Mac around I can't get it to work and I have no idea how/whether this change effects the Linux version. Windows and Mac support is target for 1.1 though.
- Why does this only change the icons?
- Desktop integration, which is what the Oxygen crew is trying to provide here, means for one that an application uses the current icon set. This is however prevented by the fact that Firefox doesn't rely to 100% on the GTK-defined icon set (thus even with gtk-qt you wouldn't get a complete Oxygen experience). But desktop integration also includes widget style and colors, even though we could make the theme look somewhat like the real Oxygen, it would remove the style and color integration. This is really where software like the gtk-qt-engine should fill in.
A Use for NVidia
The world has seen a significant amount of complaining about NVidia cards (the 8600 has had it’s fair share of whippings).
However, I’ve come to a great realisation:
with my exceptionally slow nvidia card I can see absolutely every draw that occurs on the screen. Great for debugging paint events, and no need to export QT_FLUSH_PAINT=1.
All you devs should go out and get one
Amarok 2 on Windows - Reloaded
Check this out (click to see full size):
Pau writes:
Yesterday I stayed up until 4:30 AM while trying to fix Amarok to work on Windows, and when I got it to build it was so late I was too tired to test it. So I fired it up this morning and this is the result. I have tested and it plays MP3, WMA, APE and whatever Magnatune streams on. Built with Visual C++ 2008.
I would like to emphasize that this is an ALPHA version. We know it still looks a bit ugly, but this will improve soon.
You can read Pau's original blog here.
Another GSoC Mini Report
I’ve been slacking on the update reports over the past two weeks, because I’m holding out for the exciting post where I say “MP3tunes AutoSync is working! Huzzah!” Sadly, this report isn’t that one.
For the past week I’ve been banging my head against the wall of glib, QtEventLoop, and QThreads. I have quite a headache to say the least, but yesterday thanks to my mentor and Ian, both Amarok developers, my head actually broke through that wall. Literally. GLIB, and Qt are kowtowing at my feet swearing oaths of fealty. They have promised to work together and let me get back to doing fun things, like code new features.
Roll Video
I always loved in grade school when the teacher was too depressed or hung-over to teach the class and just put on a VHS of Raiders of the Lost Ark, or something.
As promised, I made a little demonstration for those not daring enough for the svn or nightly (you can admit it, we won't think less of you).
(thats: http://www.youtube.com/watch?v=CFg0313x-iU, for the embeded video challenged.)
Sorry about the pixelation, it's hard to make out how ridiculously hip my music collection is.
It's still a little slow for a lot a biases. Expecially on my aging thinkpad, while trying to record video. That's something I will be working on. The algorithm is gradually growing faster and more complicated. I suppose that's how that works sometimes.
For next week, I hope to get saving and loading ironed out, as well as putting more work into the solver. After that I have the much more interesting task of writing news types of biases and making sure they don't take forever to solve.
GSoC Week 6: Amarok Scripting Interface
I've added a lot of QtScript API functions, including GUI, Playlist, Collection, Music Engine and Scriptable Service.
Here are some small pieces from the whole cake:
one of the engine signals:
function TrackChanged()
{
print( "Dude! Do something! The track changed!" );
}
Engine.trackChanged.connect( TrackChanged );
Track Meta Info:
var TrackInfo = Amarok.Engine.TrackInfo;
StatusBar.shortMessage( "You are listening to album: " + TrackInfo.Album );
Collection and Playlist Access:
var totalTrack = Amarok.Collection.totalTracks;
Amarok.Playlist.clearPlaylist;
I've almost finished the DBus interface by supporting MPRIS standard ( http://wiki.xmms2.xmms.se/wiki/MPRIS ). Now the script manager could handle script errors, write them to log files and correctly start/stop scripts. A simple demo script and a scriptable service QtScript called "Cool Stream" was released with Amarok Alpha 1.
Everyone loves eye candy, the API implementation and bug fixing are mostly behind the scene. So I decided to make some candy for non-latin character users .
I grabbed the charset detector code from Mozilla, merged them into Amarok. Now, the wolf recognizes non-UTF8 tags:
The summer of code project seems always stuck on some building system stuff. The charset detector didn't compatible with cmake 2.4.8, and the Qt bindings generator was needed to be ported from qmake to cmake. ( thanks "compiling king" Ian for helping me )
The SoC project will be ended in one month. And we still have some work to do. Ladies and Gentlemen, let's wait for the finalized script API, and the brand new script manager!
MTP Incoming and Ipod File Deletion Support
Summary of Ipod News:
- You can now delete files one at a time from the iPod
- You can now "edit" tags, although changes won't save yet (implementing next)
After fighting for a while with how to create a custom "remove" button, users now have access to deleting files on the ipod! ... one at a time, hah, looks like I have to do some more magic before you can do it with multiple files at once. Also, the icon for "remove" doesn't seem to make sense, and I'm fixing this soon too. Why there isn't a built-in capability to remove from a collection when there's built-in support for it in CollectionLocation? Probably nobody got around to it yet. If nobody does it after this summer, I'll implement it so that people don't have to go through this again, haha.
Turns out that because pre-made actions are in the CollectionTreeView, they can do all sorts of magic like... know which items are selected, so that they can work with multiple things at once. I'll have to look into this next.
Anyway, editing ipod tags will no longer crash your Amarok, and they'll even update in the view!... but not in the ipod's database, so a restart of Amarok will clear those changes, don't be fooled! It won't be too hard to port over tags support I'm sure. Er.. wait, I've said "it shouldn't be too hard to..." way too many times already, and I'm always surprised when it turns out to be a pita, haha.
The rest of the stuff I mentioned in previous posts has not yet been dealt with. No need to ask about the progress, it'll get here fairly soon. I've tried to concentrate on core features (tag editing, file management) for now. Yes, album covers and podcasts are wonderful, and they're soon to be here.
Velocity
Since this release, the pace of development has been absolutely astounding. In those 4 days, we have so far had well over 150 commits, including 13 bugs closed. We have not been moving forwards this fast since the very first few days when we started porting Amarok to Qt4 and KDE4, and I am not even sure that sprint quite matched this one.
One of the main causes for this speedup is, in my opinion, the constructive feedback we have received on the alpha release. So I would like to extend a big Thank You to all the people taking the time to test our alpha release and offering feedback and bug reports.
And just to give you something to look at, here is a post alpha screenshot from today. Even though most of the fixes we have done are below the surface, there are still a few visible changes. And yeah, the new applets need to blend with the system colors, which they currently do not at all
As a reminder for those wanting to try out the very latest version, or who are tracking the status of a particular bug, there is always the excellent Project Neon
amarok.kde.org/blog users: update your feed catcher
We're currently transitioning our blog from s9y to Drupal. For the time being people who blog on s9y itself are blogging there still, but the aggregation is already happening on Drupal so its a good time to change.
Add this feed if you want to follow the blogs of Amarok developers:
http://amarok.kde.org/planet.xml
Real persistent playlists in Amarok with Nepomuk
Again too long since my last blog post. For those who are new to my blog: I (DanielW in IRC) am the GSoC student working on bringing Nepomuk into Amarok.
So what has happend the last weeks? Amarok now writes statistics back to Nepomuk (playcount, last played date and so on). With the nepomuk search client and kio slave in playground you can search files for that (list for example all files played more than 10 times).
But what I really want to talk about are “real persistent playlists”:
Thanks to the new Filewatch service (already in svn (trunk and 4.1 branch)) Nepomuk can now track movements of files and update the metadata connected to them. (it uses KDirNotify and can only track file movements done from KDE applications).
I am using this in Amarok to have playlists which still work after renaming/moving files. This means you can:
- create and store a playlist
- close Amarok
- move the files around/rename them
- start Amarok and your playlist still works
Amarok also monitors changes to the data at runtime. I first planed to make a screenshot (without it, it is not real but you can not see it on a screenshot. So I made a screencast. Here it is (download in high quality (6 MB))
(sorry for poor Youtube quality, get the real one)
Now the technical part:
It works by creating and storing a uuid for every track used in Amarok. It then uses this uuid in the URL of the playlists. That works but is no perfect solution. In the long term (after SoC) I will have to create track (and album) resources (which link to the actual files) in Nepomuk. This will solve this without the uuid and bring other possibilities but also a lot of new problems.
You can try it out now (it is in svn of Amarok) but expect bugs and missing features.
And..
see you there
Malina, Malina, Malina!
The first alpha of Amarok 2 has been released.
My first time as release gal. Turned out to be a little more complicated than I expected due to broken scripts and lacking documentation. But well. Worked out very well in the end.
Enjoy and please digg: http://digg.com/software/First_alpha_release_of_Amarok_2_0_Malina
Ipod File Transfer Support Arrives
Details:
- AA format not yet supported due to some Audible strangeness
- Copying might seem slow right now (as in, takes 3-5 seconds to copy about 12 tracks), but I will fix this pretty soon as I know the cause
How to copy to iPod?
1.) Have iPod plugged in and mounted
2.) In Amarok, an iPod collection should show
3.) Either right-click an artist/album/track from another collection (e.g. local collection), or drag into the middle area to bring up the PUD. Hover over Copy to Collection, and select your Ipod.
4.) The tracks should then be being added. Expand your ipod collection to confirm that the tracks have been added and are able to be added to the playlist and played.
5.) Confirm that the songs can be played from the iPod itself
Forthcoming but not yet here:
- Album Cover support
- Podcast support
- Tag editing support
- Playlist support
- Pretty interface for file transfers &c.
Also, there's a "hang on exit" bug right now, but don't be afraid to "killall -9 amarok," as it won't affect your iPod. Sorry for the inconvenience, I'm tracking that one down fairly soon too.
Wanted: Portable Media Devices
(I'm proxy-posting this for my SoC student, who already posted it on the Amarok blog, so that it gets wider distribution on Planet KDE. Apologies to anyone seeing this twice.)
So iPod support should be pretty well set by this next weekend, and the next thing on my list is support for MTP devices.
So, what's an MTP device? MTP = Media Transfer Protocol, a protocol Microsoft came up with for media devices. Examples of devices that use it? Pretty much every Creative Zen, iRiver, Samsung and Sandisk media device you can think of, which is why the support for these devices is so important.
But I'm at an impasse, since I don't actually have any of these devices. The lack of devices is actually a pretty common issue for the Amarok project, which is where we come to you =). If you have access to a media device which you can donate for development, please let the Amarok team know at: amarok-device-donation@emailgoeshere.com. A list of devices that the project is looking for is available here. This will ensure that the people with these devices are happy people when Amarok 2 rolls around. Of particular urgency to the 2.0 release is the need for an MTP device (see list of MTP devices: here) Any of those devices will be a great help.
And, once I have one of those devices in hand and support starts rolling out, I ask anyone who has an MTP device to check out a copy of Amarok 2 from your friendly neighborhood svn server to help me test things out and make support be good (see: here)
Lastly, thanks in advance to all of you!
Continue reading "Wanted: Portable Media Devices"
But it is looking shiny!
Daniel, my GSoC student, has been working on the GUI part of the biased playlists and did some work behind the scenes this week. It is really getting into shape even though it is still trying to fool you a little. Read more about it in his weekly report and don’t forget to check out the screenshot
GSoC Mini Report
Some non-Summer-of-Code related business popped up over the weekend, to take care of which required a slight road-trip. As such, I haven’t had much time to work on my project, however I’m heading back home today and I plan to get the code I have chilling in my local branch pushed to the main subversion repository.
Surprisingly, bulleted lists seem to be the most concise means to list progress [/sarcasm]
- Still working on Harmony integration.
- Harmony authentication is working (Thanks Lateralus from MP3tunes!).
- The daemon is receiving notification updates.
- Notification processing is what I’m working on now.
While looking at my last couple reports about harmony, I realized that the information is somewhat dry. I think this is because harmony is a highly technical, behind the scenes feature, and, also, often it is difficult to inject excitement into mundane programming updates. The humdrum is slightly symbolic of harmony. You will enable it once and forget about it as it silently keeps your music collection synced.
Related posts: GSoC Report Week 5: Harmonizing Amarok, One small step for Amarok?
