ZScore

ZScore is a composition and performance environment that enables all participants to connect over a computer network and make music together. Composers, Conductors, Musicians, Audience, electronic music and video Artists, as well as various digital audio and video Engines can all interact and control composition flow in real-time over a network, thereby blurring the boundaries between traditional music making roles.

This project has been in development since 2016 and is a part of my PhD research at Goldsmiths College, London.

At this point ZScore is not available to public as its current implementation is not generic enough for general usage.

Networked music performance systems

In a networked system, a number of components communicate and coordinate actions by passing messages over a computer network. Modern high-performance networks are capable of processing thousands of messages per second within humanly imperceptible time periods.

A music score, in this case, becomes a collection of data and algorithms that define who can see what at a particular point in time. Each participant is given an appropriate score representation based on their role.

Dynamic Notation in Zscore

In Nov 2019 workshop with the fantastic Ligeti Quartet we tested some of the new Comprovisation features. The video below explains some of the recently implemented dynamic notation features.

Score authoring and distribution

The video above was created a while ago so some components are obsolete. It presents basic processes of instrumental score generation and distribution during a performance.

"Ukodus" cello part view showing alternating pane layout used for all instrumental score parts. At any point of time during a performance, there is always one active and one preparatory pane. Preparatory pane gets updated with upcoming notation while active pane is played. This gives some look-ahead time for players to get ready for upcoming notation.

ZScore implementation

ZScore scheduling and distribution engine is implemented in Java 8. It utilises non-blocking Disruptor pattern for high frequency, low latency data delivery (tens of microseconds end-to-end). Admin front end is currently implemented in Java FX.

All notation front ends (for Musicians, Audience ...) are implemented in HTML/javascript and run in any Internet browser. The preferred score display device for musicians is iPad 12.9" due to its form factor. Alternatively MS Surface Pro or any laptop can be used for musician's score viewing. All musicians are wired over Ethernet for tighter latency. Audience usually connects over Wifi with their mobile phones or tablets.

Digital audio is currently rendered via a proprietary MAX patch, however, any OSC enabled engine can be connected. For a large screen visualisation, InScore application was used, however, it should be possible to use any engine capable of rendering SVG or consuming OSC messages.