  This paper presents Skini, a programming methodology and an execution
environment for interactive structured music. With this system, the composer
programs his scores in the HipHop.js synchronous reactive language. They are
then executed, or played, in live concerts, in interaction with the audience.
The system aims at helping composers to find a good balance between the
determinism of the compositions and the nondeterminism of the interactions with
the public. Each execution of a Skini score yields to a different but
aesthetically consistent interpretation. This work raises many questions in the
musical fields. How to combine composition and interaction? How to control the
musical style when the audience influences what is to play next? What are the
possible connections with generative music? These are important questions for
the Skini system but they are out of the scope of this paper that focuses
exclusively on the computer science aspects of the system. From that
perspective, the main questions are how to program the scores and in which
language? General purpose languages are inappropriate because their elementary
constructs (i.e., variables, functions, loops, etc.) do not match the
constructions needed to express music and musical constraints. We show that
synchronous programming languages are a much better fit because they rely on
temporal constructs that can be directly used to represent musical scores and
because their malleability enables composers to experiment easily with artistic
variations of their initial scores. The paper mostly focuses on scores
programming. It exposes the process a composer should follow from his very
first musical intuitions up to the generation of a musical artifact. The paper
presents some excerpts of the programming of a classical music composition that
it then precisely relates to an actual recording. Examples of techno music and
jazz are also presented, with audio artifact, to demonstrate the versatility of
the system. Finally, brief presentations of past live concerts are presented as
an evidence of viability of the system.
