Crescendo OpenSource Media Center and Launchpad

Topics: CAB & Smart Client Software Factory
Apr 2, 2006 at 9:02 PM
originally posted by: JaredBienz

Crescendo is an open-source (GPL) media center and application launchpad similar to XBOX Media Center, MediaCar and BeyondMedia. Crescendo differs from these offerings in the following ways:

Written entirely in C# on the .Net 2.0 framework
Crescendo makes use of 2.0 elements like generics and anonymous methods to establish a codebase that's clean, maintainable and efficient.

Built on the Windows Presentation Foundation
Windows Presentation Foundation (WPF) provides much of the core functionality for Crescendo including full hardware acceleration, a scalable user interface and media playback. WPF is one of Microsoft's core strategies for the future of interactive media applications and we’re excited to be using it now.

Leverages the Composite UI Application Block
The Composite UI Application Block (CAB) is being developed by a Microsoft team close to the Enterprise Library. The CAB was initially designed as a tool to assist developers of Smart Client applications but quickly grew into a flexible application building framework. With the CAB, major components of Crescendo can be broken down in to smaller manageable blocks called Modules. This pattern also allows developers to create add-ins for Crescendo without those components having to be in the main source tree.

Major features of Crescendo include:
Multimedia Module

Audio and video playback of local content as well as network streams
Application-wide command system allows media control from any module
Smooth fast-forward with supported media and hardware
Unlimited playlists with metadata (artist, album, genre, image, lyrics, etc)
Slideshow Module

Animated transition system that can be extended using WPF storyboards
Unlimited Imgelists with metadata (camera type, shutter speed, flash used, etc.)
Lyrics Module

Translucent overlay allows lyrics to be displayed over most modules
Timestamp synchronization support (think karaoke)
Launchpad Module

Launch applications in their own window or integrate them within Crescendo
Sliding 'Media Bar' allows control of music playback without having to leave the application

Metadata providers allow support for new file types as they become available (ID3v2 currently supported using TagNetLib, EXIF tags are also currently supported)
Playlist and Imagelist providers hide the true location of lists allowing them to be dynamically created from disk, stored in a database, streamed from a website, etc.

If you're interested in learning more or possibly contributing, please visit