Bangarang – a media player

January 30, 2011

Bangarang 2.0 Released

Filed under: Uncategorized — Tags: , , , — jamboarder @ 6:47 pm

I’m happy to announce the release of Bangarang 2.0.

After a year in development, we’ve have finally crossed the finish line.  There are many new features and  bugfixes since 1.0 including:

  • New Info View that provides helpful information about your media when you need it and integrated metadata editing and drilling.
  • Info fetchers to help lookup additional media information for Artists, Movies, TV Shows, Actors, etc.
  • Support for Audio and Video feeds
  • Organize and browse media using (nepomuk) tags.
  • Improved DVD support including support for subtitles, chapters, audio channels and angles.
  • Embedded and external subtitle support
  • Improved audio and video settings
  • Bookmarks support
  • Revamped Files and Folders support
  • MPRIS and system tray support
  • Shortcuts support
  • and more…

This has been a fun and enlightening development cycle. Bangarang, like other open source software, is the product of volunteer effort . Speaking for myself, I poured chunks of my heart and soul into this – more, sometimes, than I probably had to spare – but that’s half the fun! That’s the deal with life – you can’t take it with you in the end.  Besides, it has been wonderful having something into which I can direct my creative energies. 🙂

Stefan Burnicki has been a great developer to work with and if he ever comes knocking on your door offering to help out with your project, feel free to let him in!  Andreas Marschke provided helpful support in the early 2.0 development cycle.  Elias Probst and Jérôme Artu have been the best testers and bug reporters ever and made a huge difference in what 2.0 might otherwise be without them. The translators have been great and several others have provided one-time patches and support. If you would like to participate positively in the next release see the project links at the bottom of the page.

Now, as excited as I may be about this release, I realize that some people may encounter bugs that we did not find during our test phase.  Please feel free to use the issue tracker to report these bugs. Packagers can find the released source tarball here.  This release can by downloaded from opendesktop.org.

I hope you enjoy this release!

Peace!

January 24, 2011

Bangarang 2.0 Release Candidate

Filed under: Uncategorized — Tags: , , , — jamboarder @ 9:07 am

I’m happy to announce that the Bangarang 2.0 Release Candidate is now available.  It can be downloaded from opendesktop.org.  Packagers are welcome to get the source tarball from here.

We completed what I believe was a very successful and productive beta phase. I hope these efforts are reflected in this release candidate.  Do not doubt that you can contribute in a substantive and meaningful way to open source software projects by providing helpful, constructive bug reports.  Many bugs have been fixed and features implemented directly and solely as a result of the excellent issue reporting during this beta phase.  I’ll provide a full description of changes and improvements since 1.0 when the final 2.0 release is announced.

All strings are now frozen and folks who would like to translate Bangarang into your favorite language for the final 2.0 release are welcome to do so in the usual ways – merge requests or email – over the remainder of this week.

If there are no show-stoppers Bangarang 2.0 should be available by January 31, 2011.

Thanks to everyone who have provided so much support during this 2.0 development cycle.  We’re almost there!

December 14, 2010

Bangarang 2.0 beta

Filed under: Uncategorized — Tags: , , , — jamboarder @ 11:03 am

I’m happy to announce the first beta of Bangarang 2.0.  Below is a short list of the new features since 1.0:

  • New Info View sidebar that provides helpful information currently selected items:
    • Recently played, highest rated and frequently played
    • Info Fetching support for artists, movies, actors, directors, etc.
    • Integrated metadata editing.
  • Support for audio and video feeds
  • Revamped filesystem media list browsing
  • Nepomuk tag media list browsing
  • Media lists (including playlist) filter
  • MPRIS support
  • Bookmarks
  • Audio equalizer
  • Shortcuts support
  • Subtitles support
  • Improved DVD support
  • A diversity of new and exciting bugs… 😉

Bangarang 2.0 beta can be downloaded from opendesktop.org.  Interested packagers can get the source tarball from here.

Bugs can be reported here.  Bugfixes patches/merge requests are VERY welcome!

If you would like to help – yes, I would really like your help – feel free to visit the project development home or the mailing list.

Thanks and much respect to fellow code wrangler Stefan and our stalwart bug reporters Elias and Jay.

Peace!!!

December 10, 2010

User Interface Considerations for the Small Independent Developer

Filed under: Uncategorized — jamboarder @ 12:51 pm

I’ve been a fan of design for as long as I can remember.  I’ve always been fascinated about why designs “feel” good.  Whether it’s a car, architecture or a piece of software, certain designs are a pleasure to look at and interact with and I’ve always been curious about why they work.  Over the past few years, I’ve been developing more and more software (Bangarang mostly lately) and my fascination with interface design hasn’t diminished.

However, for something that is essentially a hobby, I’ve often found it difficult to find UI design guidance that doesn’t often feel crippling to small hobby developers like myself.  It is probably no terrible surprise that much of the UI designs produced by us small hobby developers can sometimes be, well… not as great as we would like.  In many cases, it is not for lack of trying.  My view is that so much of the UI guidance available can be so overwhelming and inaccessible to small hobby developers that it often feels like there’s nothing you can do, especially at design-time, without a team of UI experts and test facilities.

To be clear, I absolutely do not intend to imply that a team of UI experts and test facilities won’t help to produce excellent designs.  I strongly believe that they can and do produce amazing designs.  Where I’ve often felt that there has been a bit of a void, however, is layman UI guidance.   Some guidance for the a-little-above-average Joe, just hacking away at his favorite pastime, for the fun of it.  It’s a bit like mathematics.  The experts can work on and contribute in substantial ways to society by understanding and applying, for example, tensor algebra to fluid mechanics problems.  But the a-little-above-average Joe still knows enough basic trigonometry to maybe do something cool in his favorite pastime.  I wish it were more the same for UI design, because often us hobby hackers have little or no guidance.

So below is my contribution to my fellow hobby hackers.  It is not intended as a substitute for formal UI design training, but I hope it is, nonetheless, useful.  Oh, and yes, Bangarang has room for improvement. 🙂

—————————————————-

 

User Interface Considerations for the Small Independent Developer

Use-Cases

Every tool serves a purpose: To facilitate the user’s desire to accomplish a goal.  The user accomplishes each goal by using the tool to complete a task that either directly accomplishes the goal or contributes to accomplishing the goal. These tasks may also be called use-cases.

Use-case identification is a critical precursor to designing or modifying the tool.

Ideally, use-cases should be implementation-agnostic.

As little of the use-case description as possible should refer to the actual implementation of the tool. It should instead focus on the user and the goal. An example of a good use-case description is “The user would like to listen to music while doing other activities like browsing the Internet.” A poorer version of this is “The user would like to minimize the media player to the system tray.”  The former version may be satisfied by a variety of implementations – which frees the tool designer to identify the best implementation that accomplishes this – while the latter version compels the tool designer to a specific implementation that may or may not be the best way for the user to accomplish the goal.

Use-cases serve as the basis for tool functional requirements, including User Interface design requirements.

—————————————————-

 

User Interface

The User Interface(UI) is the medium of interaction between the user and the tool.  The user, via the UI, employs the tool to accomplish a goal.  As such, the appropriate design of every UI element directly depends on the identified use-cases.  No UI design or modification should take place without a clear identification of the relevant use-cases.

Before going any further I should mention Magic Ink.  I won’t mention anymore than that.  Just read it.

In general, the design of the UI should prioritize information over interaction.  In almost every case of tool use, the user needs information in order to decide if, how or when to interact with the tool to accomplish the goal.  There are cognitive impacts of both information and interaction. Information has a cognitive impact in that the user has to transfer the information from the presentation medium to memory and process that information into something useful and relevant to the goal.  Interaction has a cycle of activity which can add up to a substantial cognitive impact. The user has to first gather information in order to decide what action to perform that might help accomplish the goal, perform an action based on that information, then interpret new information provided as a result of having performed the action.  (Simplistically, it might be considered a double hit on cognitive impact due to information plus an additional hit for taking the action.)  The ideal UI for all tools is one that allows the user to gather all required information instantly and effortlessly and accomplish their goal with the absolute minimum interaction. There is, of course, no such thing as the ideal UI.  So:

The best UI allows the user to accomplish their goal(s) with minimum cognitive impact.

This might imply that the cognitive impact of interaction always exceeds that of information and, in many cases, it does.  However, when information is poorly presented, the total cognitive impact of assimilating information may exceed even that of a properly designed interaction cycle.  In these cases it might cost less to introduce an interaction mechanic in order to minimize the total cognitive impact of the task. This can be especially true for tools which have use-cases wherein the goal is to access specific pieces of information from larger amounts of information. Care should be taken in these cases to only introduce interaction where it is necessary to reduce the cognitive impact of the UI implementation for that use case.

Cognitive impact is determined in a variety of ways up to and including elaborate experiments.  However, the UI designer should never feel paralyzed to act since the first measure of cognitive impact is the experience of the designer him/herself. “Dogfood” – designers should use their designs as though they depend on it.  Beyond “dogfooding”, though, the success of any design depends on the ability of the designer to empathize – to experience their design from the perspective of others. It is in this respect that UI design is much the same as creating art. Great artists that are skilled in their craft use that skill to purposefully create an experience for others. In lieu of an innate ability to empathise in this way, UI tests can be employed to gather information on the experience of others as they use the tool. If tests are not viable due to the typically constrained resources of the independent developer, this discussion will hopefully provide a simple way to evaluate a UI design – at design time – that will hopefully allow the independent developer to produce better designs than doing nothing at all.

The details matter! Due to constriants on time, resources or a simple lack of awareness, there can be a tendency to ignore things like elements being a couple pixels out of alignment, an unnecessary line, a slight difference in size, etc.  These tiny details really, really do matter.  The brain really does pick up on these details and attempts to make meaning out of them.  That’s what our brains do well: It is a phenomenal pattern recognition and filtering engine.  It allows us to pick a familiar face out of a crowd, distinguish between many voices and noises and so much more. It has evolved, out of necessity, over many thousands of years to care about the details.  So attention to these details can make a significant overall difference in the success of our designs. Of course, this concept has long been part-and-parcel of graphic design.  Unfortunately, it tends to be overlooked by small independent developers.

A UI element includes anything in the user interface: a line, a letter, a word, an icon, a color, whitespace, a switch, a collection of elements, etc. Every element in the user interface has, what I propose to call,  an Information Value and an Interaction Impulse.  The next two sections discuss these terms.

—————————————————-

 

Information Value

Information Value is a measure of the usefulness of the information provided by a UI element to the goal associated with a particular use-case.  For example, if the user is looking for the artist of the currently playing song then an element displaying the name of the singer has a high Information Value while an element displaying the track number has a relatively lower Information Value. A line, whitespace, or color may have a relatively high Information Value if it provides a way to separate or group data when the user is looking for specific information in a display containing larger amounts of data.

The Information Value of an element or set of elements depends on how the elements are used to present information.  Information presentation is an exercise in graphic design. There’s simply no need to re-invent ways of presenting information just because it is being done in a user interface. Graphic design principles are immediately applicable to UI design.

Entire courses of study are available on graphic design.  Again, just because the UI designer is not an expert in graphic design, does not mean that they should feel crippled to act.  A very basic awareness of graphic design principles should help the designer produce a substantially better user interface than no awareness at all.  Consider the following graphic design elements and principles when evaluating your design:

  • Graphic Design Elements
    • Lines
    • Shapes (includes blocks of text)
    • Mass (the visual weight of elements)
    • Texture
    • Color
  • Graphic Design Principles
    • Balance
    • Proximity/Unity
    • Alignment
    • Repetition/Consistency
    • Contrast
    • White Space

There are ample resources on the Internet which explain these terms in greater detail. However, it should be reasonably evident, at least in a very basic sense, what each term means. Again, the purpose here isn’t to teach all there is to know about graphic design.  Rather, it is to bring a basic level of awareness to the person who find themselves in the role of UI designer.  The designer is encouraged to use their best understanding of these terms to evaluate the Information Value of each UI element in their design.  Obviously, the greater the graphic design knowledge and skills possessed by the UI designer, the better the chances of a successful design.

The Information Value of any element only makes sense when considered within the context of each use-case.  For example, the Information Value for text showing the year an album was released may be high if the user wants to know if the song they’re listening to is a hot new single.  However, the Information Value for the same text may be low if the user wants to know about other albums by this artist (in which case text containing the artist name (or even better – the actual list of albums) might have a higher Information Value).

The Information Value of an element may also vary depending on the presence of other elements in the UI.  In general, the greater the number of elements presented to the user at any one point in time, the less the Information Value of any single element. Consider a table containing field names in the first row and fields value over several rows below that. A line under the first row might have a high Information Value because it distinguishes the field name above it from the field values below which helps the user understand the kind of information contained the field values.  However, if the same line is added between each row of field values, the Information Value of first line will be reduced and the Information Value of these new lines will have low Information Values.  The reason is that the user may find it more difficult to distinguish the first row as field names versus field data.

The Information Value of an element may, in part, be informed by the familiarity of the element to the user.  Care must be taken to avoid over-reliance on familiarity because it may compel a specific implementation and potentially limit a full investigation of the possible UI design solutions to a particular use-case.

Reducing or eliminating elements with low Information Values should a goal of the UI designer.

While it is possible to use a specified range of numbers to capture the Information Value of each element, it might be just as helpful to use None, Low, Medium, High as a way to describe the Information Value of a UI element.  It can also be helpful to simply understand the Information Value of an element in relationship to other elements. i.e. Higher, Lower.

High Information Value elements reduce the cognitive impact of each step the user performs to complete a use-case.  Low Information Value elements do not reduce, and may even increase, the cognitive impact of each step.

—————————————————-

 

Interaction Impulse

Interaction Impulse is a measure of the inclination or motivation of a user to interact with an element. For example, a button has a higher Interaction Impulse than a text label.  In this sense, the Interaction Impulse of elements can positively and negatively influence the cognitive impacts of the UI and ultimately the effectiveness of the tool in each use-case.

When interaction is necessary for the user to accomplish the goal of the use-case, high Interaction Impulse elements help direct the user’s attention quickly to the required interaction. A gun’s trigger, a camera’s shutter button and media player’s play button all have high Interaction Impulses.

However, if interaction is not necessary for the user to accomplish the goal of the use-case, high Interaction Impulse elements can draw attention away from other elements that support the use-case under consideration.  Imagine, multiple buttons that are displayed among text elements.  For a specific use-case, the text elements display the information the user seeks, however the buttons draw the attention of the user away from the text elements.

The interplay between Interaction Impulse and Information Value should also be considered when dealing with multiple high Interaction Impulse elements where interaction with any or all of them are necessary to accomplish the goal of the use-case.  In the previous example of buttons and text, these high Interaction Impulse button elements could actually end up reducing the Information Value of the text elements. Another example are website ads. The primary function of these ads is to get the user to interact with them so they are purposefully designed to have a very high Interaction Impulse. For the user looking for information ostensibly provided by the website, the ads often distract the user because of this higher Interaction Impulse which cause the user to focus less on the elements containing actual content of the site. These ads interfere with the goal of the use-case for which other displayed elements were designed and results in diminished Information Value for those elements.

When presented with the need to interact with multiple elements, the user needs information to decide which element to interact with and when.  This means these interaction elements (or elements associated with them) must have sufficiently high Information Values to allow the user to make a decision with the minimum cognitive impact. If interaction is optional, use elements with a relatively lower Interaction Impulse. If interaction is necessary, use elements with a relatively higher Interaction Impulse.

Minimizing or eliminating high Interaction Impulse elements that do not support the use case should be a goal of the UI designer.

While it is possible to use a specified range of numbers to capture the Interaction Impulse of each element, it might be just as helpful to use None, Low, Medium, High as a way to describe the Interaction Impulse of a UI element.  It can also be helpful to simply understand the Interaction Impulse of an element in relationship to other elements. i.e. Higher, Lower.

High Interaction Impulse elements that directly support the user’s needs will reduce the cognitive impact of interaction steps the user is required to perform to satisfy the use-case.  High Interaction Impulse elements that do not directly support the user’s needs will not reduce, and may even increase, the cognitive impact of interaction steps the user is required to perform.

—————————————————-

 

Conclusion

The point of this discussion was to provide some basic concepts along with a simple vocabulary that the small independent developer can easily integrate into the design work-flow.  Attempt to talk about your design using these terms. When something feels “off”, try to determine the relevant use-case(s). Then go through the UI elements in your design and consider their Information Value. Try to be aware of the basic graphic design principles.  Consider the Interaction Impulse of the UI elements and try to decide if they help or hurt the relevant use-cases. Keep these basic concepts in mind and think out loud about them when modifying your design.

The small developer can use these concepts during the design process instead of blindly designing then waiting for feedback from users during pre-release testing when it can be painful to make UI changes.  Developers that are also talented graphic designers tend to naturally consider these concepts during design and, of course, tend to produce more effective designs. However, uncertainty about your own graphic design talent, UI expertise, or a lack of resources should not prevent you from considering these basic concepts when designing or modifying the UI for your favorite piece of software. Moreover, small independent developers should spend time on UI design.  None of our hard work on the underlying stuff will add up to much if the user struggles to take advantage of that work because of poor UI design.  It is part of the same creative impulse that compels many a hobby developer, and the rewards are no less sweet.

November 21, 2010

Bangarang – What the dilly yo?!

Filed under: Uncategorized — Tags: , , , — jamboarder @ 11:56 pm

Yeah I’m old school like that! 🙂

Anyway, it’s been a while since I last blogged about Bangarang development so I figured I should share a little (or long) insight into what to expect for the 2.0 release with a few screenshots to help explain.

Before anything else, I need to mention that Stefan has been totally kick-ass with just about everything he’s tackled. He is the only other longer term coding contributor to the project and there’s absolutely no way I could list all the stuff he’s worked on, but I’ll mention a few: Lot’s of work on DVD support including subtitles, angles and audio channel support; Excellent star rating renderer that’s used all through out Bangarang; Shortcuts support and configuration; Filter support on the media list and playlist views; Tons of bug fixing, improvements and cleanup.

The InfoView

A good deal of my time and efforts over the last few months have gone into the InfoView.  The InfoView is a sidebar showing information on the currently selected item(s).  The information in the InfoView varies depending on the selected media items.  I’ve already blogged about the Recently Played, Highest Rated and Frequently Played info boxes displayed in this view.

Most of the work on the InfoView since then has been focused on allowing easy, seamless interaction with displayed media information.  Let’s start with artwork:

Representative artwork for categories such as artist and genre are created based on the artwork of media items in the category.  Custom artwork can be set for artist and genre categories if for some reason the user would prefer to see say a picture of the artist or custom genre artwork.

The primary function of the InfoView is to display media info. A secondary function of the InfoView is to allow editing  media info.   This means that I did not want to distract from the primary function by using editing widgets to display information (which emphasizes interaction over information). I also didn’t want to switch from a “display mode” to an “editing mode” like in Bangarang 1.0 which exposed all the editing widgets for all fields at the same time which can be jarring.  I also wanted to add support for browsing directly from the InfoView by, for example, clicking on the artist name to see all songs by that artist, or by clicking on the genre. On top of all that I wanted to add support for multiple artists, composers, genres, actors, directors and (nepomuk) tags.  That’s a lot of functionality to stuff into a relatively small area, so it has taken some time to identify and implement a solution that is not overwhelming.  Some of this was all front end UI stuff, some of this required work on the deeper plumbing.  We’re finally approaching something I’m satisfied with:

The first image shows what the info view looks like normally – basically like a sheet of paper (very low interaction impulse).  When the user moves the mouse over the values for each field, more functionality is revealed as shown in the second image (basically increasing the interaction impulse). The user can directly edit the field by clicking on it, add a value to the field by clicking on the “+” (2nd & 3rd image above) or browse using the field value by clicking on the browse “>”icon. So in the example provided in the 2nd image, if the user wants to see other Rock songs it’s just a click away.

For music files that support ID3 and Vorbis comment tags, multiple artists, composers and genres will be updated along with the nepomuk datastore.

Info Fetchers

Since users can edit info in the InfoView, I wanted create a framework that would allow metadata editing to be a little easier. Info Fetchers do pretty much what the name says… fetch info.  Info Fetchers specify their required fields for each media type/category they handle and, when present, they’re exposed in the ui for user to add metadata with:

In the first image, after the user enters the url for an audio or video feed, the info icon is shown which, when clicked, offers a way for the user to fetch additional info. Fetched info (second image) is treated the same as information entered by the user.  If multiple matches are found the are presented for the user to choose as in the third image. So far Info Fetchers have been created for fetching feed info and dbpedia info on persons(artists, actors, directors) and movies.  More will be added over time.  More recently, I learned from Sebastian about the nepomuk web extractor plugin framework that Artem Serebriyskiy has worked on.  It should be possible to eventually write a Info Fetcher to use nepomuk web extractors to fetch media info.  Once again, the work Sebastian and friends and doing on nepomuk is great and this is my personal appeal  to the community to step up with whatever support you can provide (coding, documentation, whatever..). My intent is to prioritize Info Fetcher/web extractor plugin development for services that provide media related information in a philosophically libre sense.  (Frankly, these are the services worth my time and effort rather than ones that lock up publicly available information behind a proprietary/pay wall.)

Note though that Info Fetcher need not exclusively work with the web. An Info Fetcher has been written to look at file names to extract season and episode numbers for TV shows. In fact this was a long outstanding merge request by a contributor which was easily converted to an Info Fetcher.

Other stuff

All the work has not just been on the Info View though.  Files and folders have been overhauled to allow direct file system browsing from the traditional KDE Places:

File listings are progressively loaded with basic then full metadata so browsing is much, much faster than before.  If you’re quite happy with the way you’ve orgainized files in your file hierarchy, Bangrang will allow you to browse that hierarchy with the same ease as every thing else.  Additionally, as shown in the picture, whenever the user wants to they can index selected files or folders when they see fit, rather than being forced to (as in 1.0).

MPRIS support was kindly added by Ni Hui:

More recently additional ways to manage the Recently Played, Highest Rated, Frequently Played media lists were added:

There are several other changes here and there with just a few minor features left to implement for 2.0.

When’s 2.0 going to be released?

So Bangarang 1.0 was released in January of 2010.  When I started on 2.0 I imagined I’d be able to get it out in 6 to 8 months. However, the reality is that in order for me to work on Bangarang I need to maintain a balance with all the other aspects of my life in order to enjoy working on this, my hobby.  I’ve managed to find this balance in the last few months and that usually means hacking on Bangarang only on weekends.  And that’s fine with me, cuz I’m really enjoying this and I really want to release something to be proud of.  That said, I would like to release 2.0 soon.  Which is part of the reason I’m writing this post.  I’m happy to say that I hope to release the first beta in the next 2 to 3 weeks. If that still sounds far away, remember that’s 2 to 3 weekends – 2 to 3 hacking sessions for me. With all the new changes, unfortunately stability has gone down a bit so I’d like to spend some time doing a few rounds of bugfixing before the beta release.  As always, I welcome any help that anyone has the positive motivation provide.  There is a LOT of stuff I’m learning about as I do this, so there could be very simple things causing a crash that I’m simply uneducated about how to fix.  So don’t assume there’s nothing you can do to help. 🙂

Thanks to all the translators who have provided contributions so far.  You’re AWESOME! String freeze should be around the first RC (I’ll be sure to provide lots of heads up).

Well that’s it.  Sorry for taking so long to provide an update.  For those who are still interested after all this time, the source repository is here and there is a project mailing list is available here.  Of course, you’re welcome to comment here.

Peace!

August 20, 2010

The happy trials of hobbies and life…

Filed under: Uncategorized — jamboarder @ 8:57 am

So several weeks ago my development on Bangarang came to a screeching halt when my laptop decided to give up the ghost without warning. Just straight stopped working.  Not crashing…  Not misbehaving… Just stopped. Would not turn on.

In the desperate hope that the power supply was the problem I ordered a new one, got it a week later, plugged it in and…. nothing.  The next day was spent tearing down the laptop.  After what seemed like a hundred screws and laptop parts strewn all over my coffee table, my partner finally said: “Time for a new laptop huh?…” <sigh>  I reluctantly agreed and ordered a new one.

It took three long weeks to get here, but I am now convinced that it was all for the best.  Sometimes the universe conspires to restore balance in my life and this was one such instance.  This has reinvigorated my creative energies and provided the time to properly balance my family, work and hobbies.  My local bangarang master repository has been restored and I made a quick commit last night to make sure everything was set up correctly.  More importantly, I’m re-energized and refocused on creating and releasing a Bangarang 2.0 that I can genuinely be proud of.  I’m not interested in beating everyone else to punch with features. That’s not why I created Bangarang.  My aspirations were to create a pleasant, carefully crafted media player that does what it does well.  This unexpected and welcome break has been restorative to just those ends.

If you share this aspiration and are motivated to contribute please feel free to stop by. Our (very) small team maintains a positive, supportive vibe and welcomes contributions in the form of artwork, translations, documentation and code.

For fans of Bangarang, thanks much for your patience.

Peace and much respect.

July 8, 2010

Bangarang 2.0 alpha available

Filed under: Uncategorized — jamboarder @ 9:25 pm

A source tarball for the alpha version Bangarang 2.0 is available here.

This alpha phase will be a relatively subdued affair.  It mostly intended as a nearly-feature-complete sneak peak for fans of the app. As our team is very small and our bandwidth is limited, we’re focusing our efforts on getting to feature-complete and into a more formal beta testing phase at which point we can focus on bug-fixing and polishing. A more detailed release announcement will accompany beta and final release.

Of course, this is pre-release software and, as with all such software, it may have an unpredictably voracious appetite for kittens and puppies and all things of universal cuteness and value.

Important: If you elect take a look at this alpha release, the first thing to do is to go the “Media Lists” view and select Advanced>Update Ontologies from the dropdown menu in the upper right. Bangarang 1.x stored media information in the nepomuk store using a draft version of the nepomuk shared desktop ontologies that was not ready at the time of the 1.0 release. The tool updates the way the information is stored to properly use the latest released version of the ontologies. This will take a while depending on the size of your collection. After this is run your media information should show just fine in the app.

Special thanks to Stefan Burnicki for the immense help provided so far.

June 11, 2010

Upcoming noise, chaos and disorder

Filed under: Uncategorized — Tags: , , , — jamboarder @ 11:51 am

Whew!!  After a crazy 2 months of on and off travelling, I’m finally back home and settling in for the summer.  It finally looks like the sun will be kind to Seattle starting this weekend – I had a beenie on at the Sounders FC match last night… seriously… it’s June… let’s get with the sun and the warm already…

Anyway, there’s lots of work to do to get Bangarang 2.0 into it’s testing and release cycle.  I’ve been getting a great deal of welcome help over the last few weeks from Stefan Burnicki, for which I am immensely greatful!  The last few weeks have been mostly about some refactoring and maintenance, so between that and the travelling the new feature clip has been somewhat slower.  It’s not been at zero though: you can now set the number of items in the Recently Played, Frequently Played and Highest Rated media lists, edit and browse by nepomuk tags, as well as few other tidbits here and there.  A full description of new features will be provided when 2.0 is released.

Regarding the 2.0 release cycle, I hope to get most of the rest of the 2.0 feature list  implemented in the next 2 to 3 weeks. There’s still more media semantics work to do.  I’m hoping to take advantage of the nepomuk user action ontology to improve on the media semantics implemented so far.  I also have a few ideas for optimizing list engine performance and well as few other welcome, quick-to-code-up features not on the feature list.  I’m keeping a careful eye on startup time and basic memory consumption since it really is not my intent for Bangarang to be everything to everyone.

In any event, hopefully sometime around the end of June we can release an alpha to get some early testing feedback, with a feature freeze and beta shortly after that.  The project is on a feature based release cycle, so it’ll be ready when it’s ready.  That said, I’m really eager to get this next release out.  Sooo, if you’d like to see a Bangarang 2.0 release sooner rather than later and would like to help, feel free to stop by the project page or just speak up here.  We welcome both coding and non-coding help.

peace and much respect!

May 17, 2010

Wishes…

Filed under: Uncategorized — Tags: , — jamboarder @ 10:04 am

Oh how I wish I could say that

Oh well.  Like many of us, the requirements of family and work prevent me from participating in some of these events.  Has anyone had much success with remote participation at events like these?  It’s definitely not the same as being there but it’s better than not being there at all (at least for the remote participant).  If anyone has ideas for remote participation drop me a note.  I’d be interested in discussions and sharing information regarding multimedia and Nepomuk.  Either way, hope everyone has a great time there.

As for Bangarang related news: Just added audio settings (eq) – good grief that was easy.  Gotta love this platform. 🙂

April 12, 2010

Preparing Breakfast (or what’s up in bangarang:master)

Filed under: Uncategorized — Tags: , , , — jamboarder @ 8:26 pm

Warning: this is a screenshot-laden post.  Nobody likes those kind of posts about a project in development so feel free to ignore what follows… 🙂

It’s been roughly two months since the last release of Bangarang, so I thought I share a little of what’s been happening for the 2.0 (Breakfast) release.  Just to be clear, we’re still probably at least a couple months away from even an alpha release, so anything described here exists in a so-seriously-early-I-can’t-even-call-it-pre-alpha state.

One of the focal points for this next release is putting information in front of the user that helps them make decisions quickly.  It’s generically identified as “Media semantics” on the target feature list and most of the underlying framework is now in place to start using throughout the app.  It took some time to work out but it is starting to take shape.  The idea is to take information accumulated by users in the normal course of enjoying their media and use that to provide context-relevant info that should hopefully help the user make decisions.  The screenshots clippings below show the first cut at how this’ll look and work:

The info view from the 1.0 version has been transformed into the sidebar on the right (shown or hidden with the familiar Info icon).  The idea is for the information in this sidebar to reflect contextual information for whatever is currently being viewed/selected in the main media list view.  So when the list of artists are being shown it shows contextual information about all artists.  When an artist is selected it shows information about that artist – supplemented by some info from dbpedia – and so on…

Information about a selected media item is available in the sidebar as well (metadata is editable directly in the item view as well).

While the screenshots above are for Music, similiar data is/will be provided for Movies, TV shows, Actors, etc. as well.  It is definitely not all working perfectly or smoothly yet and not all types of data has all the contextual information yet, but I hope this provides a little info on how this particular feature might be shaping up.  It is definitely not the end-all of ideas for media semantics but underlying the framework – which includes the usual heavy dose of nepomuk – allows for a decent amount of flexibility that would certainly allow for other even more interesting contextual semantics (never played, most played at this time of day/year, unfinished movies, playback timelines, etc.).  Perhaps I’ll blog separately on this framework.

By the way, if anyone is interested in contributing to KDE I encourage you to consider Nepomuk. It is neat technology and Sebastian is awesome and definitely welcomes participation.

All the work so far hasn’t just been on this feature though.  Notice the album art in the in album list screenshot and basic bookmarking support was added this weekend.

Hope you found this interesting and don’t worry, I’m still trying to fix bugs, maintaining some ui restraint and working on the basics. 🙂

As always if anyone is interested in helping please feel free to holler at me (especially if you live in North America or the Caribbean, but all are welcome). See the gitorious project page for more info.

Thanks for reading!

« Newer PostsOlder Posts »

Blog at WordPress.com.