The dfscore system is a realtime dynamic score system built to function over a local network to display a variety of musical material. The primary motivations for building the system were to allow for a middle ground between composition and improvisation, and to be able to dynamically restructure and reorchestrate material on any given instrumentation.


The dfscore system enables groups of any size to collectively improvise without a human conductor while still retaining moments of synchronicity. Each performer’s device, connected to a central router or wifi network, displays information that is only relevant to them: melodic or rhythmic fragments, accompanying tempo and count in, role to assume, etc…


I built the original version of dfscore in Max, and as part of a Jazz North commission Richard Knight rebuilt dfscore from the ground up to work completely in a web browser (click here to read about the development and improvements in dfscore 2.0). This instantly expands the types of devices it could work on. dfscore could run on any device that had a browser, including iPhones/iPads. This also opened up the possibility for a broader range of dynamic score types. The original dfscore focused on static panels of text, notation, and images. Using a browser as the rendering engine meant a dfscore could be anything that can be displayed in a browser. So your dreams of having a Facebook score, embedded YouTube score, and interactive javascript graphics can finally come true!

Richard also refined how composers work with the system. He restructured the composition language to be written in javascript inside a simple XML container. He created a wiki with a dfscore API and composition tutorial which walks new users how to create pieces for the system. Within the javascript spec, the code was structured around Roles (dynamically assignable roles within the composition/code) and Events (the panels which are displayed to the performer) allowing for a much more open and dynamic compositional approach. He then condensed each composition into a package containing all of the necessary code and assets so that it can be easily shared and loaded.


The hardware that runs the system also changed with this update. dfscore now runs on a Raspberry Pi (running Linux) meaning no individual computer needs to run as the server for the system. This headless system also works as a Wi-Fi hotspot so performers can simply power up the Raspberry Pi and join the dfscore server/network with their phones, without a laptop involved at all.

You can download the latest software and read the wiki/instructions/tutorials here.

Here are some performances using dfscore 2.0:


You can read a blog post detailing the development process of the dfscore system along with commentaries from composers who have written pieces for the system by clicking here.

The videos about the original dfscore system can be seen here : (dfscore Introduction, dfscore Premiere, dfscore Student Workshop).

Performances using the original dfscore system can be seen here : (Constanzo, Andreae).

You can download the original dfscore software here along with the first proof-of-concept compositions used in the first performance here.


  • […] Rodrigo Constanzo – Jazz North Commission, dfscore System, Distractfold Ensemble Rodrigo Constanzo has recently been awarded a commission from Jazz North to complete a dynamic score software system for composing for improvisers. The first performance of the system will be on the 18th of September in Manchester at The Noise Upstairs, and will feature : Richard Craig, Linda Jankowska, Anton Hunter, Sam Andreae, and Constanzo. More information about the dfscore system can be found here. […]

  • This seems great, and something i’ve been dreaming about being able to do for a long time but I can’t quite figure out how to use it all. Is there a forthcoming more detailed explanation of how to set it all up? I know it’s a work in progress so excuse me if it’s coming soon, i’m just pretty excited about this.


    • There definitely will be. There will be more (tutorial) videos, and some thorough manual/documentation too.

  • Brilliant! I’d think that even if I hadn’t heard the results last night (@Noise Upstairs) It makes perfect sense for this kind of performance, and seemed to produce much more variety in the performance overall than you may get from completely free improv, while still allowing freedom of expression for each player. Keep up the good work I look forward to hearing more.

    • Thank you!
      There will be a 2nd video coming soonish too, detailing the process/thinking leading up to the first performance, including rehearsal/performance footage.

  • Hey man, this looks so great!

    my orchestra is building an osc-based system for timing and interaction between machines, so I think I’ll be keeping a close eye on your progress!

    You’re doing awesome things, and it’s always keeping me interested.

  • This looks cool! If you haven’t already, you might consider submitting this to the TENOR conference. There was a networked improvisational system that focused on graphical scores presented this year, and lots of interesting presentations. The call for papers for this year just went out.


    • Thanks for pointing that out! I’m soon to be unaffiliated, academically, making conferences an unsustainable out-of-pocket practice. We’re rolling out the 2.0 version of this this weekend at the Manchester Jazz Festival which is a *complete* rewrite of the system to work 100% in a browser. Some really cutting edge stuff for what browsers can do with regards to timing/rendering/etc…
      You can have a sneak peek here (http://www.dfscore.com) but more info is very soon to come.

  • […] jam or (for the more technologically inquisitive)  Rodrigo Constanzo‘s showcasing of his dfscore software. The latter’s a creative music tool, cueing improvisers via graphical, visual and […]

  • Hi Rodrigo, this looks fantastic, I can immediately see how this could be useful to the improvising and contemporary orchestra I’m playing with, ONCEIM http://onceim.fr. Some composers who write for us: Stephen O’Malley, Eliane Radigue, Bertrand Denzler, P.A. Badaroux, Frederic Blondy (founder).

    What we always need is a very basic shared and synchronised clock display for
    the comprovisations/graphic score based pieces. We’ve also come across one composer’s desire to give cues using light, but that was so blatantly annoying that he reverted to a fixed-time score with one laptop displaying a big clock. Here, and for some current pieces like Stephen O’Malley’s “Gruides”, the event count-in and display could work wonders.

    Is such a simple synchronised clock planned for dfscore? If not, where could I start looking how to add this to the code myself?

    BTW, in my team at Ircam, we do work on highly synchronous (audio) event distribution over the web to smartphones with web audio api in the Cosima http://cosima.ircam.fr/ and Wave http://wave.ircam.fr/ projects.


    • Hi Diemo and Rodrigo,

      I am just checking this as well. A little short day to put it to the test next Friday Diemo but it is surely tempting ;-)

      It seems that the instructions of the composers sometimes quite determine what is happening. That is good for the structure in what we hear but at the same time it feels quite rigid from an improvisational perspective. I would love to see a mix between this system (or the way in which it is interpreted by the composers) and the much more simple but also very effective system from Palle Dahlsted and Pier Anders Nilsson called bucket system: http://www.nime.org/wp-publications/pdahlstedtb2015/

      What is very nice about that system is that it allows performers to put their own initiatives within the piece making them even more active participants within the ensemble (not unlike cobra). Will dfscore allow for such a treatment?

      Apart from that mild critique I think this is another step forward in the comprovisational world of bigger ensembles.

      Thanks, Hans.

      • Yes, performer feedback is already built into the system (and used in a couple of the pieces composed so far), but is not super documented yet. There are trigger events and listener events that can be mapped to anything.

        Since the system is pretty open ended it is up to each piece to be built around it. So Bucket System could be a “piece” in dfscore, if so desired (which I might look into doing, as it’s a cool idea). Which makes me think I should build a Shackle “piece” too, just using dfscore as the protocol for these other systems/pieces.

        This is being extended to incorporate audio analysis to function as another part of the non-central agency where formal changes can be initiated by the performers through actual musical performance, rather than manual user input. So something can be changed or moved forward when, say, 15 loud events happen within 5seconds, or a pitch above G5 is sustained for 2 seconds, or when the overall loudness of the group goes above/below a certain threshold etc…

        Thanks for the link to the Bucket System, some interesting ideas in there, which I will look through. I very much like the idea of a distributed/democratic approach to composition/improvisation.

        • Great, that makes it even more interesting. Did you also use it in an educational context yet? I think that the approach of structured improvisation can also help people to learn how to (free) improvise or even learn to play their (self developed) electronic instrument. I was thinking of building such a system within MAX but it might be better to do so in your instrument. And yes, the Shackle piece will most definitely fit within the system as well. I was already thinking that it must have been an inspiration for it. ;-)

          It might be nice to do something with your system around Electric Spring. I am sure Diemo will be all for it as well. In fact I think PA would contact you about doing something in Manchester on the 23rd of February. Would that be an option?

          • Yeah a big part of it is its educational possibilities. We did a workshop with it last year that even involved a small amount of programming pedagogy too (https://www.youtube.com/watch?v=_1K173HwtMU). This will be a future development of the system where it can be used to not only teach how to improvise, but also teach how to think (and code) programatically in a musical way with instant feedback as you can test the piece/ideas right away.

            Shackle was something I came across when researching the approach to use but I’d say Noise Quartets by Eric Lyon was more of a direct inspiration.

            Yeah would be good to do something when you guys are around, and by that point we (Richard and I) should have developed the system a bit further. PA was in touch about some stuff and I sent him some possible links/resources/ideas, so hopefully something comes from that.

Leave a comment


Rodrigo Constanzo
-makes music and art
-lives in Porto/Manchester
-is a crazy person

Learn from me (for free!)

I am offering free lessons / conversations / consultations / mentoring / time / support to creative people, locally or remotely.
Want in on this?!

Read my PhD Thesis!

Composition, Performance,
and Making Things,
sitting in a tree :


Upcoming Performances

No upcoming performances