Concerto 2 Beta – IndiaIbex Release

Hi Everyone!  I’m usually excited when we’re announcing a new version of Concerto, but this version has me extra excited.  We’ve managed to pack more bug fixes, improvements, and features into our 0.7.0.IndiaIbex release than the previous couple releases we’ve put out.  If you’ve been ignoring these updates, or Concerto 2 in general, this is definitely the release to check out.  To get started quickly, you should download the latest concerto_server VM here and fire it up to follow along.


This release added some much needed security for screens with the addition of screen authentication.  Screen security, something that Concerto 1 lacked, is something we (and by we I mean Mike) spent a lot of time thinking about for Concerto 2.  I couldn’t do it justice in this short form, so we’ll dive into the details in a full post after we’ve tidied up the last few bugs.

We also added support for Capistrano-based deployments if you’re into that sorta thing.  Our external error-reporting has been fixed in this release so we should get those bug reports automatically streaming in if you’ve check the box during setup.  If you’ve tried to visit that settings page and gotten an error, we’ve fixed that as well.  The config / settings as a whole should be a lot easier to navigate as well.  The VM is properly writing logs now so you can see what’s going on in logs/production.log and the dynamic content updaters are running in the background like they should be.  Behind the scenes this release also includes some improvements to our JSON / XML API that we’ll be including in V2, it’s not quite ready for mainstream yet but we’re making progress.

You can find a full diff of the work we did here.  Our installation instructions should be up to date, but you should really just download the VM and run it for a fast start.  Alternatively, you can check out our instance running this release @  Do let us know what bugs you run into or features you’d like by writing to our Google Group or opening Github Issues.

HotelHummingbird Release

After a few hiccups along the way (like the mysterious 0.5.0.GolfOtter release), we’re ready to share 0.6.0.HotelHummingbird with you.  It’s been over a month since our last release and we’ve been busy at work making the experience a bit snappier and improving the Add Content form.  To get started, you can find our installation to get started in our Github wiki.

Since you likely missed out on the 0.5.0.GolfOtter release you also missed a new background processing model which should make Dynamic Content processing much more robust and reliable.  Concerto now includes a script to kick off background processing using something like sudo /etc/init.d/concerto start and manage the background workers just like you would a regular process.

Some notable changes include:

  • Textile support in the Ticker Text field.
  • Frontend support for subdirectories, like /concerto/frontend/1.
  • Slightly better garbage collection in the frontend.
  • New background processing model.
  • New feed selector, system-wide.
  • New templated creation / editing workflow.
  • New content creation experience with preview support.

You can find the full list of changes between our last announced release and this one here. Please get in touch with us via our group or issue tracker if you come across a bug or have a feature suggestion for us!

EchoInchworm Beta Release

We’ve just finished pushing our latest update to the Concerto 2 beta, “0.3.2.EchoInchworm”.  In the two weeks since our last release we’ve been busy addressing a handful of feature requests and bugs reported since the last release. You can find our installation to get started in our Github wiki.

Among the notable changes you’ll find support for legacy (V1) screen urls.  Concerto 2 correctly responds to urls like http://concerto/?mac=00:aa:bb just like Concerto 1 did.  You should now be able to test out Concerto 2 without updating the URL on your existing clients.

We also added a new <iframe> content type.  If you need to display a remote web page or dashboard, you can create a piece of content which will use an iframe to display the url on a screen.

This release also includes some speed improvements to content browsing and bug fixes to template importing (aka it works now, unlike the last release).

Almost as exciting as all of those changes is the updated demo system.  Head on over to and check out this Concerto 2 release running on Heroku.  If you haven’t taken the plunge yet, the demo’s worth checking out to see what Concerto 2 is all about!

Do get in touch with us via our group or issue tracker if you come across a bug or have a feature suggestion for us.  It’s great to hear when things work (or don’t) so we can improve for the future!

You can find a full list of changes for this “0.3.2.echoinchworm” release here.

Concerto 2 Beta

Five years ago today a half dozen students debuted “Concerto”, the home-grown digital signage system for RPI.  Today we’re proud to announce the first beta release of Concerto 2, building a much more robust an extensible platform for open source signage of the future.  To get started head over to our installation guide here.

When we first released Concerto 1 at RPI we had no immediate plans publicize the open source software powering it.  None of us were quite sure if the project was going to take off past the 2 maiden screens on campus, never mind have a place outside our small collegiate community.  We’ve been more than a bit surprised how well Concerto’s been received this far and are excited by all the interesting places screens have popped up.

If you’re looking at setting up a new digital signage system give Concerto 2 a try! We’re eager to hear any feedback and help with any problems that arise during the installation / setup process; let us know how it goes.  Reading our past early preview posts [1, 2, 3] will share an overview of the features you can expect to find in Concerto 2.

For the Concerto 1 users, this beta release includes all the core functionality you’re familiar with in V1.  Some of the more noticeable changes include a redesigned UI and workflow (the buttons are different, the nouns are the same), more granular authentication and authorization controls, and the notion of plugins so we can add support for additional content types to the system like RSS feeds, YouTube Videos, and more.  Behind the scenes we rebuilt the system from scratch, trading PHP for Ruby on Rails.

Those who’ve been living on the bleeding edge with us through the rockier early preview releases should find all of the current show-stopping bugs fixed in this release.  Everything that we knew about that was broken has been fixed and we made significant strides to achieve feature parity with the common V1 installation.  We’ve added a clock to the frontend among other improvements, tossed in a weather plugin, and fixed some misbehaving user management pages.  Thanks for all your help testing out the Early Preview releases!

Please get in touch with us via our group or issue tracker if you come across a bug or have a feature suggestion for us.  You can find a full list of code changes for this “0.1.0.charliehorse” beta release here.

Introducing Dynamic Content in Concerto 2 (and more!)

Concerto 2 has come a long way since we released the last update (0.0.2.alphamoose) back in December. Today we’re releasing the latest preview of Concerto 2, 0.0.3.bravochicken. This new build includes support for dynamic content, a fresh new content browsing UI, and dozens of backend improvements, bugfixes, and tweaks spread across over 230 commits!

To get started with the latest build of Concerto, check out our installation guide or view the 0.0.3.bravochicken tag directly. We’ve got virtual machine images, Debian/Ubuntu packages, and the regular old source code standing by to help get you up and running quickly.

Please note: this is an early software preview and a lot will still change from this version. The Concerto 2 Alpha is only for testing purposes and should NOT be used for actual deployments.

Dynamic Content

RSS Content Creation Concerto 2 introduces a plugin model to allow different types of Dynamic Content to be uploaded directly in the Add Content form letting you can setup an RSS feed in the same familiar place you would upload a new graphic. For now we’ve bundled Concerto 2 with plugins to support a very simple RSS display and YouTube video support. As we develop more plugins for the Concerto ecosystem administrators will be able to provide their users with a variety options when uploading content, hopefully with forms that don’t require you to serialize PHP arrays in your head.  We’re going to devote a full blogpost to the nitty gritty details of dynamic content in the future, stay tuned for more on this front!  If you’ve got a specific idea for a dynamic content source we should be keeping in mind open up an issue on Github.

Updated Content Browsing UI

Content BrowsingWe redesigned the core content browsing experience to provide a bigger window to show off the individual pieces of content in the system. For systems with lots of content, pagination lets users explore all the content in a large installation without an initial loading bottleneck. We also introduced some new filter controls let you rewind time to explore content of yesteryear or take a peak at what’s coming up in the future. If you’ve got Dynamic Content in the mix you’ll see Concerto 2 introduces stacks to collect all the content together under the it’s root.

Almost There…

Our first Early Preview release was shared with you back in late November. We quickly pushed out some updates in December’s release pushing Concerto 2 to to just about match the feature parity V1 provided. With this release we’ve tackled some of the harder challenges and limitations of Concerto 1 and I can safely speak for the rest of the team saying that we’re looking forward to sharing a stable beta release ready for testing in production environments quite soon.

After getting Concerto 2 up and running please send your feedback along to us (or send it along if you can’t get it up and running), we’ll be monitoring the Google Group closely for V2 related content and are keen to track down any bugs or unexpected behaviors that crop up.

V2 Early Preview

Today we’re releasing an early tech preview of Concerto 2, bringing a fresh technology stack to the open source digital signage ecosystem that we’ve been cultivating for the better part of the past five years.  Concerto 2 has been rewritten from the ground up, providing a stable platform we can use to solve some of the challenges we’ve run into with version 1 like the confusing setup process, limited system configurability, and lack of support for new content types like video.  Over the next few weeks we’ll be releasing some of the new features Concerto 2 supports, starting today with the core stack.

This early preview release provides what we consider core Concerto functionality — the ability to upload content to feeds, have that content moderated by responsible parties, and then be displayed on screens subscribed to feeds.  This build doesn’t include many of the long-touted features like video support or better dynamic content; we’re committed to releasing these soon but need to start gathering some feedback on the core experience first.

If you’re interested in taking a sneak peek at what we’re working on in Concerto 2, I encourage you to follow the setup process here to get started.  Please note, Concerto 2 is still under heavy construction.  This software should not be used in a production environment. It is also not backwards compatible with a V1 database, so we’ve included a tool with instructions to import your V1 data into V2.

We’re aware of a handful of outstanding issues with this early preview, but we’d love to start getting your feedback to start ironing out as many issues as possible in the scope of this release.  Let us know what you think by posting your experience on the Google Group, or opening a bug on our Github Issue Tracker.

Note: Concerto 2 reports many production errors back to the development team using Airbrake by default.  At the moment this is an opt-out service, you can turn it off in the Dashboard or by deleting Gemfile-reporting.  We use this automatic reporting to help identify crashes and errors so we can fix them as quickly as possible.  We’ll post a blog with a bit more information on this process soon.

Frontend v2

As part of Concerto 2 we are completely rewriting the front end of the system, overhauling the JavaScript that powers the screens to be significant better structured so it’s easier to maintain, extend, and just play around with.  There will probably be fewer inappropriate comments as well (though we haven’t yet started to work on the automatic text-resizing problem yet… no promises).

Right now we’re developing the new front end using Google’s Closure Library, which will let us reap the benefits of well-structured object oriented JavaScript and minify really well using the Closure Compiler.  There isn’t as much documentation out there for the library as there are for many other tools like jQuery, Coffeescript, or Backbone.js but I was quite satisfied with the results when I used it for another project.  It seems to provide strong interfaces to lots of HTML5 components that we’d like to take advantage of as we push towards having offline capabilities and more interactive screen experiences.

If you’re curious about the technical details, the core of the frontend is a 5 layer cake.  I can’t draw a picture of a cake, but I can describe it in words.  At the bottom we have the Screen, which is really just used to encapsulate the whole process in one object and provide a standard connection interface to talk back to the Concerto server.  On top of the Screen we draw a Template, which right now consists of a huge image background (perhaps it could be HTML-based in the future) and bunch of Positions.  Each position represents one block on the screen, you see them in the backend when you’re previewing templates that show where your content will go.  Positions have a location to be shown and some styles, but most importantly they have a Field.  A field is where the Content ends up getting fetched, rendered, and transitioned into place.  They do most of the heavy lifting after the initial HTML scaffolding is setup.

To recap: Screen > Template > Positions > Field > Content.

In Concerto 1 there isn’t really any sort of layered cake in use, it’s much more like a fruitcake.  You can kind of see the different bits and pieces if you look really hard, but it’s mainly one big monolithic structure.

What does this mean besides a lot of extra files to manage when you’re working on the frontend?  Well for starters it let me refactor the code base to support what we call “mini screens” in about 20 minutes.  A mini screen is just that, a small screen that doesn’t take over the entire window.  You can see one when you visit right on the homepage, but in V1 that shares a completely different codebase (with an included memory leak for IE users) than the actual screen frontend.  Not so in Concerto 2, you can have a lot of screens on the same page without any additional work.

Four screens rendered in the same browser. Pretend the blue is the background and the green are fields.

Digital Signage on Google TV

The Fall update to the Google TV brought the Android Market to Google TV devices, allowing developers to write and publish applications for some digital-signage sized screens.  If you’re looking to run some digital signage on your Google TV you’re in luck, you can find a Concerto app in the Market today!

Concerto on the Android Market

Concerto for the Google TV lets you configure and connect to a Concerto server, letting you specify a server URL and customize a MAC address as needed.  If you’re interested in tweaking your server slightly, the device will also pass the current screen width and height as parameters in the initial URL.  If you’re having trouble sizing the screen manually like traditional Concerto v1 screens, you can use these to automatically set the size of the screen so content will render appropriately.

Don’t have a Concerto server but still want to check out a Concerto player?  The app comes pre-configured to connect to automagically connect to a demo server and pull in some dynamic content  keeping the information fresh.

The source code for the application is available on GitHub, and I encourage you to report any issues you run into.

Customize the URL and MAC address for Concerto on the Google TV