Project Railway!

Background: I was using Rhythmbox to listen to music in GNOME desktop environment. Rhythmbox is an awesome and powerful music player. But several days ago, I think maybe browsing albums in the form of album cover picture grid will look better than browsing albums in album name list, so I start this project.

Project Railway is a Gtk+ music player. It consists of the following parts:

  • railway: GUI part. Controls all widgets. Also, calls the ffmpeg program to generate album cover picture for each album asynchronously with GTask, to not block GUI with time-consuming operation.
  • railwaylibrary: Reads music library and generates arrays of song and album information. And uses GStreamer GstDiscoverer to retrieve song metadata, or “tags”, to sort music in track order.
  • railwaymusic: The actual music player part. Calls GStreamer GstPlayer to do all the work.
  • railwayplaylist: Manages the playlist by cloning a copy of song array.

The resulting music player looks like:

UPD: Support searching by album name or artist name now!