Improve mashTape

    Goals

    mashTape is cool because it collects and displays information that is scattered all over the web about the media item that is being played back and presents it in a serendipitous way.

    1. Better performance (should be less resource-intensive)
    2. Flexible configuration/display (show only what I want to see)
    3. Less janky UI

    Services

    • Artist information - eg: bio, photo, discography, related links, tags, members (user selects a single service)
      • Artist Photo: Last.fm (Testcase # 1355)
      • Artist Bio: Last.fm & Wikipedia (Testcase # 1354, 1543)
      • Discography: MusicBrainz (Testcase # 1356)
      • Members: Freebase & Wikipedia (Testcase # 1357, 1362)
      • Tags: Last.fm (Testcase # 1358)
      • Related Links: MusicBrainz & Wikipedia (Testcase # 1359)
    • Photos (aggregate services)
      • Flickr (Testcase # 1363)
      • SmugMug (Testcase # 1364)
    • Videos (aggregate services)
      • Yahoo Music API (Testcase # 1366)
      • YouTube (Testcase # 1365)
    • RSS (aggregate services)
      • Google News (Testcase # 1367)
      • Google Blog Search (Testcase # 1368)
      • Hype Machine (Testcase # 1369)
      • Digg (Testcase # 1370)
      • Yahoo News (Testcase # 1371)
      • MTV News (Testcase # 1372)

    The following services should be removed because there are stand-alone add-ons that offer functionality that is more complete than what can be offered in mashTape.

    New Features

    • User has the ability to select a set of services for mashTape to display
      • Certain service types require users to select a single service
      • Certain service types support users to select n number of services
      • Certain service types will create its own tab and display that don't mix with other services
    • Add-on developers can create add-ons that extend the services that mashTape understands
      • A few example services will be shipped with mashTape as example code
      • Documentation about the API
    • The content in the display pane should scale to the size of the pane
      • Scale in height when the user resizes the pane using the resizer
      • Scale in height when the user maximizes the pane to take up the whole content area when the maximize button is clicked
      • Scale in width as the main window is resized
      • Scale in width when the service pane and/or right sidebar is shown or hidden

    APIs

    ID P
    Cost
    Title
    Details
    Testcase

    1
    2
    Allow developer to create and add-on that provides content for an existing tab pane How the content provider is used will depend on the type of the tab pane - eg: artist info supports a single content provider at a time but the news tab pane supperts multiple at a time.
    ?

    2
    1
    Allow developer to create and add-on that provides additional content for one of the 4 panes

    test to ensure the documentation is live.

    1
    1
    Additional mashTape providers should be enabled automatically after install

    1580

    1
    1
    Additional mashTape providers should be automatically disabled and removed from mashTape if they are disabled or uninstalled from the add-ons manager

    1581, 1582

    1
    1
    mashTape preferences are updated to reflect all available content providers and tab panes without developers having to take specific action

    1583

    1
    0
    Developer is able to add their add-on in the mashTape content provider list on the add-on site
    Adding the 'mashtape' tag to the add-on will accomplish this
    Nest test covered elsewhere

    1
    1
    mashTape default height should be same as AlbumArt
    194px apparently is the right height
    1553


    Wireframes

    • Display pane vs media page
      • Using a media page will give us more screen realestate to display whatever we want to display but it will be at the cost of serendipity. Also, a media page is attached to a media list which is going to have too much metadata compared to just focusing on the media item that is being played. Let's continue using display panes. We'll see about adding a way to allow users to maximize/minimize the display pane.
    • Bottom display pane vs right display pane
      • Not too many add-ons use the bottom pane - mashTape should be displayed in the bottom pane so that is can coexist with other add-ons well.
    • HTML vs XUL
      • We have the ablity to implmenet each pane using XUL and/or HTML. Because we want the photo pane to animate, we should see about using some open source off the shelf js solution and HTML to implement that. The feed pane could benefit from some animation and effects but it is a nice to have. All other panes can be implemented using XUL.

    General

    ID P
    Cost
    Title
    Details
    Testcase

    2
    2 HTML-specific CSS file to match the feather
    Create a CSS file that gets shipped with the feather that add-on developers can include in HTML documents to make the styling match. The CSS file should limit rules to things like colors, background-colors/images, borders.
    not testable

    1
    1
    Open all links in the main browser
    All links - in XUL or in HTML - should open in the main borwser when clicked on. If the link is clicked on in the media tab then open the page in a new tab. If the link is clicked on while in a tab other than the media tab then update the browser for the selected tab with new content.
    1548

    2
    1
    Show all dates in "n units ago" format
    The tooltip/title value for the time should releave the real data/time value. (The birdhouse has a JS date-to-ago converter that Blake wrote a while back which might be reusable?)
    1549

    1
    1
    Don't refresh mashTape when the track changes and the artist for the previous track and the artist for the current track are the same
    Artist info & photos won't refresh, but RSS & Flash should refresh so as to pull in any additional new content there
    1550

    1
    1
    When the sequence of music ends, or the user hits stop, mashTape should switch to "Nothing Playing"

    1551

     

    Pane types

    Artist info


     ID P
    Cost
    Title
    Details
    Testcase

    1 2
    Display artist information from the user-defined (in prefs) service for the currently playing track

    1542

    1
    1
    Discography & bio should have "Read More" links to expand if there is more detail

    1555

    1
    1
    Generic filler for when no info is found
    Show a generic artist image if no photo is found.  If no bio is found, give a link to allow users to edit and create a bio @ last.fm
    1557

    1
    2
    Make a default artist info provider
    Collect the artist metadata from a number of sources.
    • Last.fm: photo, full bio, discography images
    • Freebase:  members.
    • MusicBrainz: discography, related links,

    This provider should ship with mashTape - it should be disable-able but not uninstall-able.

    1542

     

    Photos

     ID P
    Cost
    Title
    Details
    Testcase

    1
    2
    Display relevant photos from all enabled photo services for the currently playing track
    Each photo should display the following metadata
    • Title (link to photo)
    • Author (link to author page)
    • Published date
    • Service favicon (link to photo)
    1558

    2
    1
    Expose controls for next photo, previou photo, pause/resume slideshow

    1559

    1
    1
    Make Flickr a photo service
    This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1569

    1
    1
    Mouse wheel should scroll the photo stream

    1560

    1
    1
    Clicking individual photos should open the photo detail page in the main browser

    1561



     

    Videos

    ID P
    Cost
    Title
    Details
    Testcase

    1
    1
    Display a column of thumbnails for relevant videos from all video services for the currently playing track Each row should include:
    • Video thumbnail
    • Service source favicon
    • Title
    • Length
    1563

    1
    1
    Display video and full video metadata for the selected thumbnail
    Details include:
    • Video
    • Service source favicon (link to video)
    • Title (link to video)
    • Author (link to author page)
    • Length
    • Description
    1564

    2
    1
    Scale video to either full height or full width depending on display pane size
    Not sure exactly what the rule for this would be. We can move the metadata to the right of the video or below to support the resizing.
    1374, 1376

    1
    1
    Make YouTube a video service
    This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1365

    1
    1
    Make Yahoo Music a video service
    This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1366

    1
    1
    Auto-select newest video upon load
    When the user changes tracks, display a loading image until all video providers return results, then pre-select the newest (chronologically) video
    1567

    1
    1
    Index should be sorted chronologically

    1568



     

    News

    ID P
    Cost
    Title
    Details
    Testcase

    1
    1
    Display a column of news titles for relevant news from all news feed services for the currently playing track Each row should include:
    • Service source favicon
    • Title
    • Published date
    1570

    1
    1
    Display full news article for the selected news title
    Details include:
    • Service source favicon (link to original article)
    • Title (link to original article)
    • Author (link to author page)
    • Published date
    • Article
    1571

    2
    1
    Make Digg a news service
    This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1573

    2
    1
    Make Hype Machine a news service This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1574

    1
    1
    Make Google News a news service This provider should ship with mashTape - it should be disable-able but not uninstall-able. 1575

    1
    1
    Auto-select newest article upon load
    When the user changes tracks, display a loading image until all RSS providers return results, then pre-select the newest (chronologically) article
    1576

    1
    1
    Index should be sorted chronologically

    1577



     

    No content found

    no content found state

    ID P
    Cost
    Title
    Details
    Testcase

    1
    1
    Display blank pane when mashTape was unable to find content for the currently playing track for a given tab pane.
    The text should read "Unable to find $(pane name) for currently playing track" where $(pane name) would be "artist info", "photos", "videos", "news" 1545

     

     

     

     

    Nothing playing

    nothing playing state

    ID P
    Cost
    Title
    Details
    Testcase


    1
    Display blank pane when playback state is not play/paused

    1546


    1
    Don't display the "Nothing playing" pane between track changes
    Instead of going from something -> nothing playing -> something, mashTape should present the transition between track changes in a seamless way.
    1547

     

    Preferences

    prefs


    P
    Cost
    Title
    Details
    Testcase

    2
    1
    Each tab can be enabled/disabled

    1425

    2
    1
    Each service for a given tab can be enabled/disabled

    1428

    1
    1
    Display a link to a listing of all available mashTape content providers
    The link should point to the add-on site with a listing of add-ons with a specific tag which results in a list of content providers for mashTape.
    1578

    1
    0
    Ability to uninstall 3rd party content providers
    3rd party content providers can be uninstalled through the add-on manager.
    1579

     

    Production Notes

    The following graphic asses need to be created:

    • tab icons (need normal/no-content states)
      • artist bio
      • photos
      • videos
      • news
      • preferences
    • open source page button
    • slideshow
      • play button
      • pause button
      • scroll right button
      • scroll left button
    • mashTape service add-on icon

    References

    Tag page
    • No tags
    Viewing 3 of 3 comments: view all
    <strong>37 points for all stories</strong> - of which some are complete/in-development at the time of costing
    Posted 11:30, 5 Sep 2008
    we need to make sure we have a story here to get the mashtape addon into the core trunk repo.
    Posted 17:38, 5 Sep 2008
    Boris: update tests for RSS to check for photo and video icons. Steve suggests MTV articles.

    Add test for case when user stops playback to show "nothing playing" in mashtape. edited 16:49, 1 Oct 2008
    Posted 16:35, 1 Oct 2008
    Viewing 3 of 3 comments: view all
    You must login to post a comment.
    Powered by MindTouch Core
    Real Time Web Analytics