Results 1 to 1 of 1

Thread: [MP3 Player] Madame MiamMiam's Music Player

  1. #1
    Join Date
    Jan 2012
    Qt products
    Unix/X11 Windows
    Wiki edits

    Lightbulb [MP3 Player] Madame MiamMiam's Music Player

    Hello everyone. Here is my project of making a MP3 player. Another yet MP3 player? I hope no! Let me introduce it.


    I am currently coding this as an open source software, so it's cross platform and based on Qt 4.8.x SDK. First, it was design for my friend which is on Ubuntu, because she doesn't like very much other existing MP3 players, and I always found the idea of giving sources to the communauty very interesting. This project is hosted on Github, and you are welcome to fork it

    What is the purpose of this software? To read MP3, and not more! Inside, you won't find any shortcuts to Wikipedia when you're selecting an artist, nor to link it with lastFM. I don't think this is useful. A good player is, for me, fast with a intuitive user interface.

    Main features

    Well... reading MP3! But the UI is highly customizable, and in a very easy way. This part was quite hard to realize, because it's building dynamic GUI using stylesheets at runtime. It's difficult to avoid code inflation. I don't know if it was the best idea to use stylesheets or if I should have wrote everything in pure C++. Anyway, the class StyleSheetUpdater is doing the job, so it can be changed latter.

    Building the library is quite slow the first time you're opening the player (after choosing music paths). Once it's completed, the next time you're opening the player, it will be fast, using a file which keeps references to your music (less than 1 second to build more than 10000 items in the library treeview).

    • Classic playback features (skip, seek, play/pause, stop, repeat)
    • Two treeviews: one for the saved library, the other for browing the filesystem
    • A search bar for the library, with clear button (subclasses of QLineEdit with
    • Customize UI: colors, fonts, buttons, covers, ...
    • Customize Options: langage, paths (default path provided with and shortcuts too
    • Multiple playlists using tabs
    • Keeps playlists in memory when closing

    Short-, medium- and long-term goals

    Actually, the 0.2.0 release for Windows and Ubuntu has not so much original features. But I'm planning to make this software better. What is comming:

    • Managing playlists is started
    • Favorites (rating tracks)
    • Random playback feature

    For the medium-term objectives, and after read this in the documentation:

    QtMultimediaKit provides a set of APIs that allow the developer to play, record and manage a collection of media content. It is dependent on the QtMultimedia module. QtMultimediaKit is the recommended API to build multimedia applications using Qt. The Phonon API is no longer recommended.
    • Delete Phonon by its equivalent in the QtMultimediaKit (if it's possible for a Desktop software)
    • Make a real cross platform compilation with CMake?
    • Make a Mac OSX release
    • Add drag & drop from the desktop to the player, from the library to one playlist

    And for long-term objectives:

    • Build a Debian or Ubuntu package, make an installer for Windows
    • Extend views with a mode Simplaylist for FooBar which I currently use. I also would like to make a multi-column mode when it's in fullscreen
    • Respect native theme for Ubuntu when no colors are set
    • Incorporate some Windows 7 taskbar features (small media buttons when the mouse is hovering the application)

    So, as you can see, there's a lot of work to do! I code on my free time, so obviously it's quite slow to make all of this. But I'm beginning to have a good understanding of Qt'SDK. Code documentation is up to date, so don't hesitate young developer, join this project! It's also important even for myself because sometimes when you're reading your code few weeks later you're like "What the frak!". Retro UML design has started with standard modeler, but I didn't find something dedicated to the Signal/Slot mechanism.

    Specific features

    All features are more or less configurable. Those features are just "simple" features. I'm wondering if I should add an advanced button and make it to customize everything, every part in details. Firstly, I need to focus on more important features. And secondly, I'm afraid of the exponential inflation of code just for some details used by almost no one.

    Each functionnality is configurable and applied in real time: you don't have to push an apply button (there is no such thing, it's a choice).


    The project:

    How to contribute to the project?

    You are welcome to help me to improve this project! You can test it and track bugs, I am also open to suggestions, comments, haters, here or on GitHub.
    Last edited by matthieu; 31st May 2012 at 15:34.

Similar Threads

  1. Replies: 0
    Last Post: 3rd May 2012, 23:38
  2. Phonon Music Player example
    By pssss in forum Qt Programming
    Replies: 1
    Last Post: 19th March 2011, 15:30
  3. help with music player created using Qt Creator IDE 4.5
    By vijay_kansal in forum Qt Programming
    Replies: 7
    Last Post: 13th July 2010, 06:48
  4. Replies: 1
    Last Post: 27th April 2010, 08:26
  5. problem with phonon/music player example.
    By rishiraj in forum Newbie
    Replies: 9
    Last Post: 23rd January 2009, 09:00

Tags for this Thread


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.