Monday, August 30, 2010

Stoffi Beta released


I promised a beta release before the end of August and here I am, giving you the brand new beta of Stoffi Player.

Wait! I haven't even told you about the new name. A few weeks ago I asked around for some suggestions on a new name. I got a ton of answers on Facebook, this blog and even via e-mail. I wish I could use them all, some were extra awesome. However, I cannot have more than one name so I had to choose one.

I went with Stoffi. It is short, sounds kinda funny and resembles my name a bit (Christoffer). I like it.

Anyway, not everything is in the name. There's tons of new features on this beta as well:

Application Preferences
You can now change settings for Stoffi. The About page and the Settings are combined into a Windows 7 Control Panel look alike.

Application Preferences

System Tray
Stoffi will by default hide in the system tray when it is minimized. Left click the icon to bring back the main window, right click to show a menu or just hover the icon to see what is currently playing. There's also an option to show a notification in the system tray every time a new track is played. This is turned off by default.

Track Notification

Upgrade System
Stoffi will let you choose if you want the application to just upgrade itself in the background or you can choose to either get a notification when there's an upgrade available or check for upgrades manually.

The default setting is "Upgrade automatically" which will download and install upgrades quietly in the background while you can concentrate on other stuff. If you want more control over when to upgrade but don't want to manually check for upgrades every day you can choose "Notify me when I can upgrade". This will show you a notification in the system tray as soon as an upgrade is available. You can click the notification to start the download and installation. A new notification will tell you when the upgrade is completed.

Upgrade Notification

If you really want control or want to turn off upgrades you can choose "Let me check for upgrades". This will add a "Check for upgrade" button.

When clicked it will ask the server if there are any upgrades and ask you if you want to install them if any are found. If you choose to download and install them a progressbar will appear.

You will also see a progressbar in the taskbar icon. This way you can continue doing your tasks while keeping an eye on the upgrading.

Progressbar in Taskbar

No matter what you choose the new version of Stoffi will be run the next time Stoffi is launched. This means that you will not see any new features or fixes until you restart the application. If an upgrade has been downloaded and installed and Stoffi will be upgraded on the next restart a small icon in the About page will be shown to let you know.

And much more...
There also the new quick creation of playlists from searches, quick keyboard shortcuts for navigation around, Windows 7 Jumplists, much faster startup time, file association and many small bugfixes.

...but watch out!
Remember that this is beta! There are certain bugs and quirks left to be fixed. Some of the things to look out for:

  • Track sorting is not saved
  • Volume is not saved
  • Impossible to drag multiple items
  • Rendering glitches with Windows Classic theme
  • Impossible to double-click or right-click -> "Play" from inside the Queue
  • Doesn't update "Last Played" unless track is started manually
  • Doesn't save changes to settings done during current session when upgrading
  • No settings for keyboard shortcuts
All of these will be fixed before the Stable release. If you find any bugs please report them. Thanks.

Happy testing!

Thursday, August 19, 2010

Alpha update: file associations and updated settings


I have tried to find some small spots of time between work and life and I have managed to implement file associations. Now you can choose to open files with Yama. I have also polished the settings a bit and implemented the placeholders that were there earlier. I will add more options for upgrades and keyboard shortcuts later on.

With this part finished there is only one feature left to implement before we can go beta: ID3 tag editor. The plan still stands, the beta will be released before the end of August.

When the beta is released there will be a feature freeze. So no more features will be implemented after the beta. Only bugfixes and overall polish of existing features will go into the beta channel. When the beta is considered to be "good enough" I will release the stable channel (this is equivalent to the 1.0 release of Yama).

New features will of course keep coming to the alpha channel. I still have grand plans for features such as support for Youtube,, Spotify, Audio CDs, MP3 players, Radio stations, Visualizers, Equalizer and much more.

Do you have any ideas for a great feature? Post it in the comments.

I look forward to some heavy beta testing in about two weeks, hunting down all those bugs and smashing them silly. :)


Tuesday, August 3, 2010

Requesting a new name


As the application is moving towards the beta release it needs a great name. I am really eager to hear your suggestions so just write down any ideas you might have in the comments. The more suggestions the better.

Cheers! :)

Sunday, August 1, 2010

Improved startup time - up to 80% faster


A day late I have finished doing some benchmarking on the startup time of Yama. I have moved a lot of code into threads that run in the background. This makes the main window appear more quickly and gives you the impression of a snappier application.

The test was fairly simple. I have two computers:

System 1
CPU: Core 2 Duo @ 2.66 Ghz
RAM: 4 Gb DDR3
OS: Windows 7 64-bit
Tracks: 6 851

System 2
CPU: Core Duo @ 1.86 Ghz
RAM: 2 Gb DDR2
OS: Windows 7 32-bit
Tracks: 24

I ran Yama five times before the optimizations and five times after. Each run I recorded the time it took from the first line of code in the startup procedure to the last line..

Worth noting here is that System 1 has several thousand tracks, while System 2 has just 24. This made Yama slow since it had to read all those tracks from the settings file on the harddrive each time it started. It still has to do that but now this code has been moved out into a thread that runs in the background. In fact, all code that interacts with the harddrive during startup has been moved into background threads. The startup time after the optimizations is now spent on one thing: Initialize the GUI. The GUI is initialized by Windows so I can't do much about that part. But at least now you won't suffer any performance hits during startup if you have a large number of tracks or playlists.

So, on to the actual numbers. The decrease in startup time on System 1 is 80%, going from 2.40 seconds to 0.47 seconds. System 2 saw a smaller dip of 64% going from 1.89 seconds to 0.69 seconds.

It is my intention to make Yama feel very lightweight and fast. Hopefully this will do exactly that.