Amarok Insider - Issue 16
In This Issue
- What's New in Amarok
- Google and Amarok
- Roktober Success
- Interview with a Developer: Bart Cerneels
- Automated Playlist Generator: How to Use it
- Queue Manager in Amarok
- Installing and using a script in Amarok
- Amarok on Windows
- Transcode your media files
- Amarok Live CD
What's New in AmarokBy Pedro Raimundo
Amarok 2.4 has been released, starting off January 2011 with a bang! While there have been significant performance and stability improvements, what most users really want to know is what's really new and fun in this new release. Let's run it down....
- One of the notable new additions to Amarok is the ability to use it with the iPod Touch 3G and even newer devices. Now you can easily share your tracks between your devices and your PC; just plug-in and play.
- Now, everyone likes to keep their media library organized, right? The problem is that not everyone has the time or the willingness to actually spend lots of time tagging, and sorting. For those who want to keep their Library organized with almost no effort, there is the new Amarok integration with the MusicBrainz community database. Just select the songs you want tagged from your media library, right-click and select Edit Track Details then click the Get Tags from MusicBrainz button. A small window will show up and start searching; the only thing left for you to do is to confirm the changes!
- Along with this new fast and efficient way to tag your tracks comes the ability to write tags and album covers directly to the sound file, so your accurate information can be shared across devices! Enable this in Settings > Configure Amarok > Collection: Write statistics to file. It is unchecked by default.
- Speaking of files, we all know that music from different sources can come in various formats. While Amarok can probably play most of them with the correct codecs, most of us have a favorite format when it comes to storing our music. With that in mind the 2.4 release of Amarok ships with a Transcoding feature. When copying tracks from the File Browser to your Local Collection you can choose whether to copy it “as-is” or transcode it to another format, based on a default preset or a custom that you can fine-tune. Soon this will be enabled for "on-the-fly" transfer of tracks to your devices also. Be sure Ffmpeg is installed in order for transcoding to work. More details in the article below.
- With this release Amarok also supports UPnP collections to play media from a local media server (such as MediaTomb server) in your network, which means you can play your music on any computers or other UPnP-enabled devices in a local network. Now you can have your music with you even if you don't have it on you. In order for UPnP servers to show up you need these things installed: the UPnP media server KIO slave and Cagibi daemon to detect UPnP servers in the network.
- Another awesome feature shipping with 2.4 is bound to get in the tastes of the musicians among us, a Tabs applet is now available for the Context pane. This new applet automatically fetches tabs for the current track and displays them comfortably inside Amarok. Also, the Wikipedia and Now Playing applets have been upgraded. You'll see a nice new appearance to Now Playing, and Wikipedia, along with searching within Wikipedia now enabled.
Google and AmarokBy Valorie Zimmerman
Amarok recently got a wonderful influx of youthful energy from students who volunteered to take on Google Code-in tasks for us. Code-in is a program for 13 to 18 year old students to get involved in a number of Free Software projects, among them KDE, and Amarok. Some of us volunteered as mentors, crafted tasks for the students, then helped them as they completed their work. We had a variety of tasks open, such as sorting through bugs and wishes, cleaning up the wiki, writing some articles for The Insider, which you can read in this issue!, many pages in the Handbook, and designing a conference poster for Amarok. Myriam Schweingruber, James Duncan, Lydia Pintscher, Nikhil Marathe and I acted as mentors. This is a fantastic program. If you are a student, please think about participating next year, and spread the word to mentors with whom you would like to work. And project leaders, keep your eyes out for tasks that pre-college students can do next winter. It seems like a practical, yet inspiring way to get kids involved in open source, and enrich your own projects.
Code-In joins the Google Summer of Code, in which KDE and Amarok have participated for six years. Here is the list of the contributors and parts of Amarok they have written (thanks to Leo Franchi for the list):
Ian - DAAP
Ian - New Amarok 2.0 Playlist
Leo - Context View
Alejandro - MediaDevice framework
Daniel Winter - Nepomuk Collection (never implemented)
Daniel Jones - Dynamic Playlists
Casey - MP3Tunes integration
Peter - Scripting API / support
William - Context View
Sven - Unit testing
Teo - Playlist sorting
Alejandro - More MediaDevice work
Nikhil - UPnP
Andrew - Playdar collection (currently disabled)
Teo - Transcoding
Varrun - Remote Amarok collections
Rather than earning their money by flipping burgers for the summer, these students did open source work, the results of which we are all enjoying. This project not only helps free software projects, it gets them intimately involved in working with their mentors and others in the community. Again, if you know a student who would be a good candidate, get them thinking about possible projects, and discussing their thoughts with possible mentors. See the Dot articles at http://dot.kde.org/2010/12/14/kdegoogle-summer-code-2010-part-1-2 and http://dot.kde.org/2010/12/19/kdegoogle-summer-code-2010-part-2-2 for more detail.
Roktober SuccessLate last fall we ran our annual fund-raiser, Roktober. Thanks again to our contributors! We appreciate your thoughtfulness, and the money you sent will help run our servers and send people to conferences. If you are one of those who contributed, you'll find your name listed in Amarok's About dialog, in the Help menu (after Amarok 2.4 Beta).
You contributed 1768 Euros, $2315 USD. Thank you again! You help keep Amarok running. For more about Roktober see Roktober 2010 summary. If you would like to donate more, it’s still possible via Paypal or Google Checkout. There are links at top of the sidebar here on Amarok.kde.org. Thanks again!
Interview with a DeveloperBy Sasu Karttunen
I met with Amarok developer Bart Cerneels (Stecchino on IRC) on #amarok in IRC and he kindly gave us a interview.
S: When did you get interested in contribution and why?
B: I started using Linux on and off in 1999. Later, I discovered and in 2006 I made my first contribution to Amarok. It was a big patch to improve the podcasting support on Amarok.
S: So how did you get involved in Amarok development?
B: I made various improvements, many small things regarding to RSS feed parsing, etc. It's too long ago to specifically remember. Unfortunately, Seb Ruiz, the maintainer of that piece of code back then had already rewritten it and that patch was rejected. Since we started with Amarok 2, I decided to completely re-do the podcasting support.
S: Had you developed any other open source project before Amarok, or is Amarok your first big thing?
B: No, Amarok was my first and is my only big project. I've done various small hack projects and many small prototype style ideas that never got to be actual projects. Amarok is my only big project in my free time. Also, I’m paid to work on Open Source by Collabora, but that is for customer or internal projects such as MeeGo, Telepathy & GStreamer.
S: Very interesting. Why Amarok rather than any other project?
B: Because I have to work for money, so there is not much free time. I stick to Amarok for fun and friendship. I still have a long and challenging to-do list for Amarok, so I will probably stay focused on that for a while.
S: Sounds great. What parts of Amarok are you working on?
B: My area of Amarok is Podcasting support, Saved Playlists and everything that comes with that. This includes the playlist-browser (the part of the Media Sources panel that shows them), Playlist Synchronization and media device playlists. For that reason I'm collaborating with others to rewrite the media device plugins to support playlist synchronization. I'm also rewriting the USB mass storage plugin since I own only those type of devices.
S: That’s sounds like quite a lot to do. Amarok 2.4 Beta 1 is out; what is going to be changed or improved from that for final release? [ed. This was written shortly before release]
B: There will be a lot of bugfixing, including all regressions and crashes, hopefully. So everyone should keep testing to find all of them. I'm also working on an under-the-hood change that should dramatically improve startup times and the performance of the Podcast and Saved Playlist views. Post the final release, we'll merge the media device rewrite branches, an incremental social podcast directory and hopefully a gpodder.net internet service and a podcast provider.
S: That sounds very good! Users always want more performance. I can imagine that when software is near to final release, it causes more work for developers. So, does beta stage of Amarok cause more work for you?
B: After any Amarok release we get a surge of bug reports. Specifically during a beta cycle there are a lot of easy-to-fix bugs, but by the end the hard and mysterious bugs are all that's left. By then we get tired of bug-fixing and want to do more features. Luckily with git we can work in a feature-branch and merge it after the release is tagged and master opens for features again.
S: Indeed, there would be no new features at all if you developers would spend your time just fixing bugs. Anyway, lately KDE announced that they are planning meeting called 'K16' which asks where KDE will be in five years. What do you think where Amarok will be in five years?
B: Amarok *will* be on mobile and tablets. That is the next big target for this project. We are riding the Qt Quick & MeeGo wave. There is little that can stop that.
S: You read my mind; I was just going to ask if Amarok will be released on mobile platforms. Else?
B: The plan is to improve the core of Amarok in speed and stability, but we also plan to make it very flexible so it's easy to, for instance, create an SQL-free build of Amarok. On top of that we'll let user interface designers invent a QML base look-and-feel.
S: That’s great! What do you think that is the biggest part on Amarok that should be improved?
B: We depend too much on SQL at the moment, specifically the embedded MySQL. In addition to our main collection, a lot of Internet services depend on it. For new platforms these kind of dependencies are troublesome, sometimes even making it impossible to run on a specific platform. A good move would be to refactor those plugins and introduce new ones that don't need SQL. Then we can, for instance create a QtSparql based collection that will use tracker (the metadata database) on the MeeGo phones for instance.
S: And for last question, do you have any features or ideas you would like to see on Amarok someday?
B: The biggest thing on my TODO is using internet radio stations as playlists. Every track change on the station will create a new entry in the playlist so at any time you'll be able to see the "history" of the stream.
S: And scrobble the song to last.fm with AudioScrobbler perhaps?
B: Yes, and separate rating for each song as well and you'll be able to look up similar artists, etc.
Automated Playlist Generator: How to Use itBy Pedro Raimundo
What do you want to hear, and how much?
The Automatic Playlist Generator (APG) is a feature that allows Amarok to generate a playlist based on certain user-defined rules, which is not as intimidating and complicated as it sounds. You can tell Amarok: I want this playlist to play for 45 minutes or the list should run for more than 30 minutes, but no more than 35 and have a blend of rock, jazz and metal songs or even I want to listen to some songs that I haven't heard in a while, but not that Ozzy guy; I'm better off without him. Pretty cool, right?
However, Amarok will only do what you want if you put it in a simple and plain manner, using nested statements and conditions that it can understand and evaluate. And this article is going to teach you how to do that.
If you have tried using the APG and are now reading this article, chances are that it was a frustrating experience and now you're eager to play around with this feature that everyone has been talking about. Before you start it is helpful to understand a few basic concepts about audio files and logic; read on.
Every mp3/ogg/aac/wma file has (or should have) tags associated with it, which is how your media library can magically sort itself no matter how the actual file structure is organized. Thanks to these tags, every sound file has embedded in it information like Artist, Genre, Album, Year and Track Number, and by reading these tags the applications can easily sort your songs and retrieve the information it needs. Similarly, every linux file has some information on it like last access, creation date and modification date.
This is what we want Amarok to do! We still don't have the knowledge to do the complicated tests like have a blend of rock, jazz and metal songs, though.
The next concept we have to understand is the one of Constraint Groups, which are sets of rules and are divided into Match All groups and Match Any groups. Match All groups work like the logic operator AND, meaning that all of its criteria must be met by the song while Match Any groups work like the logic operator OR meaning only one of its criteria must be met by the song being evaluated. Now that we're properly educated, let's get to work!
Getting to the APG Presets panel:
The APG Presets panel.
Your first Constraint tree (Preset): Playing more than x minutes of audio but no more than y minutes
We begin in the APG Presets panel shown in the screenshot above. Click the Add new preset button (green plus). A New playlist preset entry will appear for editing. Select it and press the Edit (pencil-and-paper) button, the APG Preset Editor window will pop up and you will see the main Match Any group that will include all your constraints (rules). Click the Add new menu and select Playlist duration since that's what we want to set. Notice that once you add a constraint you can modify it using the options to the left. Let's set this one to Longer than and 0:30:00 minutes.
Be aware of the fuzzy-exact slider; it determines how close to the rule the playlist should be. Now add a Playlist shorter than 0:35:00 constraint and you should be good! Go ahead and use this playlist generator next time you have a coffee break.
Going a bit further: Constraint groups and Tags
Now that you know everything about playlist constraints we're going to go a bit further and delve into constraint groups and Match Tag constraints. Imagine that you're going to throw a little party and your music-loving friends are coming over. You want to impress them with an amazing selection of rock, metal and some jazz to liven things up.
Since we know everything about mp3 tags we know that it's really simple to do this. We want this playlist to last between an hour and and ninety minutes, and have rock, metal and jazz songs, so that's what we tell Amarok to do. We'll add some Match Tag constraints with Field set to Genre and fill in what we want, like this:
Note: Here I used contains rather than equals to include the many kinds of metal and rock (and jazz!) that exist.
We click okay and run APG with our party preset, but something goes wrong:
If we select the party preset and click the edit, we can find out what was wrong: We had all the constraints under the main Match All constraint group this led APG to try to find a song that had all 'rock', 'metal' and 'jazz' in their genre; no wonder it didn't go well!
To fix this we create a Match Any (song can be rock, or metal or jazz) constraint group inside the main group and that's where we should put our Match Tag constraints. Be sure to have the new group selected when adding them so that they will be inside the new constraint group.
Now our constraint tree looks like this:
And does what we want it to, good job!
The “Special” constraints: Checkpoints, Prevent duplicates, and Inverted tags
After this last topic we can do almost anything we want with Amarok and APG but there's still a bit more to learn, and we're going all the way! So, “special” constraints: Checkpoint, Prevent Duplicates and Inverted tags.
A Checkpoint constraint sets a starting point for APG to begin looking for songs to fill its list with, simple as that.
A Prevent Duplicates constraint will prevent songs with the same Name, Album or Artist from being selected.
Finally, Inverted tags work just like Match Tag constraints, except that they're the opposite. An example: I want to listen to some songs that I haven't heard in a while, but not that Ozzy guy; I'm better off without him.
With our knowledge we can easily find a song that has been recently played with a Match Tag constraint set to check the Last Played field and an Ozzy song with a tag set to the Artist field, that's exactly what we want to not do, so add those constraints and Invert them by checking the little Invert box on the lower part of the APG Preset Editor window. That's how inverted constraints work, images below:
If you've made it this far, and tried the examples, I sincerely hope that you are now able to use Amarok's APG and take advantage of its functionality. Keep in mind that this feature is still new and more power is being implemented, like the ability to choose the number of songs to be selected, which is automatically limited to 30 as of version 2.3.2. As of 2.4, you are able to set number of songs also. Also, the interface is being made simpler and easier to use.
Keep fiddling around and experimenting with different constraints and slider settings as those can help you fine tune the APG to your personal needs. Thanks for reading.
Queue Manager in AmarokBy Daniel Marth
The new queue manager provides a convenient dialog to sort the queue and remove tracks from it. In former versions the queue could only be edited with the context menu in the playlist-pane. As of version 2.4, click on the Edit Queue symbol on the bottom of the Playlist pane to open the dialog.
After clicking this button, a dialog listing all tracks which you queued is opened.
The first two buttons change the position of the currently selected track in the queue, while the third one removes it. To clear the complete queue, just click the last button.
Installing and using a script in AmarokBy Daniel Marth
Amarok can be extended using script files. These files are managed by the Script Manager. The main dialog window is opened by clicking on Tools -> Script Manager.
Now the dialog with all currently installed scripts is visible.
With the Install Script-button, local script archives can be installed. All installed scripts can be removed by selecting them in the list and clicking the Uninstall-button.
The Get More Scripts-button enables you to search through a range of scripts inside Amarok.
The list of scripts can be sorted several by following properties:
- Newest scripts first.
- Scripts with the highest rating first.
- Scripts with most downloads first.
- List only currently installed scripts.
There is also a search box to search in the list.
As an example we will install the game Music Quiz and try it out. This script asks you questions about your music collection. Click on the Get More Scripts-button and search for it either by scrolling through the list or typing "music quiz" in the search box.
Click the Install-button to download and install the script. After the installation a dialogbox appears.
Restart Amarok and there will be a new entry Tools -> Music Quiz in the menu bar.
Click on this menu entry to start the script.
Click Start to get to the main menu of the game. Collection will start a game that asks you questions about all tracks in your collection. Playlist will do the same thing but only for your current playlist. Artist will only ask questions about the artist specified in the combobox below.
The Personalize-button shows a dialog to configure the questions that you will be asked.
Modify the settings to your wishes and return to the main menu and start a game.
That's it, have fun :)
Amarok on Windows? Definitely!!By: Timothy Lanzi
Amarok works on Windows. No, really, you didn't misread that last sentence!! Yes, I am an iTunes user, but Amarok is way better. To the right is your playlist, to the left is your music, and right in the middle is what's playing. There are all sorts of tools like: tabs, supplied by Ultimate-Guitar.com, so you can play along on guitar, bass, or drums. Also, lyrics, so you can learn and sing along to you favorite music. They included Wikipedia, so you can read about the band to which you're listening. All of that is done while listening to a song. Amarok can fetch and download all that without any help. Amarok knows what song you're listening to, and fetches the tabs or lyrics for that song by that artist, auto-magically!
I am using a Dell Inspiron-mini with the netbook version of Windows XP. This isn't the most powerful computer on which to run a heavy duty application, but I wanted to know how Amarok was going to work, and I wanted the Amarok Insider readers to know how Amarok runs on a lightweight computer.
But first, a word from our sponsor....
This Windows build of Amarok is brought to you by.... Nitrostemp.
Anyone wanting to install Amarok on windows will need to go to this site: http://amarok.kde.org/wiki/Download:Windows. Here you will find Nitrostemp's Windows installer for Amarok. You will also find a set of instructions for installing Amarok on Windows KDE. The Windows installer is the one that actually worked for me. I suffered a day of pain trying to install Amarok using the KDE for Windows instructions and would not recommend it. Now, the good people at the #amarok IRC channel steered me away from KDE for Windows. So, after a 500 MB download (choke) and a ten minute install process I was ready to try out my shiny new toy.
When I tried to start it up, at first, I got the Amarok splash screen that went over everything I brought up and it wouldn't go away. It turns out it was hiding a nag window for Amarok bug reporting, but you couldn't really tell it was hiding that window. Just an annoyance. Once I got past that, the program started right up, and I was able to check out all the different features. The first time Amarok ran, I saw just the playlist bar and the music bar, but all my music was there. I played a song, and there were lyrics within fifteen seconds … People, that's pretty cool. The thing that really blew me away was when I saw the tabs option. I used the Jamendo option and searched an artist. It lets you navigate the music as if it's in your collection. I was also able to play the song right from the Jamendo site, but when I tried to download the song it crashed (I promise I'll fill out a bug report). I was able to bring up the Podcast Directory pretty easily, though I was unable to find my dad's favorite podcast – The Linux Action Show. I was able to enter the RSS feed, and it downloaded just fine. I tried the various internet services for listening to streaming music. As an iTunes user, I had no idea that stuff was out there!
Amarok is the best music player I've ever used, and I highly recommend it. Though, there were a few problems with the Windows version. When I tried using the equalizer it said my current Phonon version doesn't support the equalizer so I was disappointed with that. Also, when I tried connecting to my iPod Amarok couldn't find it, so I was sad about that. Occasionally, the audio playback would stutter and repeat, but this may have been due to my computer. I plan to keep using Amarok, and hopefully I can help it get better.
Moodbarby Ivan Nakov
Moodbar is a visualization used for navigating within a piece of music. A bar divided into vertical lines is displayed, each line a color showing the "mood" within a short part of the track. With Moodbar one can easily find exciting regions or something different happening in the song. The Moodbar is possible thanks of Gavin Wood and Simon O'Keefe, who have invented the algorithm for it. I find moodbars very interesting and useful.
There is a new script which will create Moodbar files for tracks in an Amarok playlist. In Amarok's Playlist you can add Moodbar as a field, from the Playlist layout menu.
As you can see, it's very easy to judge which songs have more vocals and which ones have more instruments.
Another way to use Amarok's Moodbar is the Moodbar package, which contains a program that analyzes a music files and generates the .mood files needed for Amarok to display the moodbars. The Moodbar package depends on the GStreamer libraries. There are also old scripts used outside of Amarok, to generate the .mood files. To call the script, you copy this code into a file moodbar.sh in your music directory. For more information about Moodbar and the old script, see http://userbase.kde.org/Amarok/Manual/AdvancedFeatures/Moodbar
To install and use the new script is much easier. Download it here: http://kde-apps.org/content/show.php/Moodbar+Generator?content=135625
The installation of the new script is very fast. Open Amarok's Tools -> Script Manager -> Install Script and navigate to the directory with the downloaded file. This script automatically generates .mood files while you are listening your music. No work needed outside; Amarok will do it all.
Transcode your media filesBy MTGap
Amarok 2.4 now features transcoding when copying tracks, which allows you to encode your media files to different formats. Created by Teo Mrnjavac as part of Google Summer of Code 2010, transcoding makes it easy to convert your music to the format preferred by your portable music player, or reduce the file size of your music collection.
To transcode your collection or just a specific track, go to the file browser and select the files you'd like to transcode. Right-click the file and select Copy to Collection and then the new location you'd like to copy it to. Now a pop-up window will appear giving you options for how you'd like to continue. For now, transcoding to the Collection is the only option, but you can symlink to your media device for now. Transcoding directly to your device coming soon!
Of course, you can still just copy the file in its original format, but you also have the option to transcode it. The default transcoding will convert it to medium compression, high quality, Ogg Vorbis (lossy). Or you can customize the transcoding process yourself with the third option. Ffmpeg is required for transcoding.
Amarok Live CDby Samuel Brack
Amarok user Sentynel has created a LiveCD which means you can boot it into an already-installed copy of Amarok. You can use this CD to test Amarok, play music on a computer with your favourite music player or simply show your friends what Amarok looks like. The CD comes with pre-installed OpenSuse and Amarok. Because of legal issues, there is no music included, but you can play either online streams or music that's located on the computer's hard disk or an external flash drive, just like in any other installation of Amarok. We'll look into getting some awesome open source music on there, too!
The CD can be downloaded on Sentynel's homepage. You can choose between a LiveUSB image which boots from an external USB stick and a LiveCD iso file that can be burnt on a CD (e.g. with k3b). The LiveUSB image can be brought to your USB stick with the software ImageWriter. If you choose USB instead of a CD you can even copy some music onto the stick after using ImageWriter (put it into the directory /home/amarok/Music), so that you can carry your whole music collection with an appropriate player on only one stick. Further instruction can be found on the website, too.
The current version comes with the latest stable Amarok 2.3.2 and is great to play music on a PC without futzing around in the computer's actual operating system. To boot this installation, just insert the CD into the tray or plug in the USB stick, and restart. You may need to set the boot priority in your BIOS (press escape during bootup).
[Update: The 2.4 version is now available. Sentynel will add free music by request! Sentynel.com/amarok.html for more.]