{'fraction_non_alphanumeric': 0.014941302027748132, 'fraction_numerical': 0.0, 'mean_word_length': 5.028938906752412, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Exploring melody space in a live context using declarative functional programming

This paper introduces Composer, a system offering composition capabilities for live performance, requiring no prior experience with composition and programming. Current research in computer assisted composition is focused on offline composition. A composer is seen as a person that composes pieces of music which are then performed at a later date, either by the composer or an artist. There has been work done in computer assisted live performance, but the focus in that field has mainly been on the live generation of synthesizers and novel, virtual instruments and musical interfaces. Unlike existing systems, Composer is intended to be used in a live context for the composition of novel melodies. The system makes no assumptions about the user's existing experience as a composer or a programmer. Instead of giving the user unbounded freedom, the system only allows the user to manipulate key properties of the desired melodies. The constraints the user can put on the melodies are the scale or mode in which the melody is set; the tonic note of the scale or mode; the cadence of the melody; the tempo of the melody; and the relative gap-size between notes in the melody. These rules are modelled using a declarative programming model that also supports automatic enumeration of the space of valid melodies. As complete enumeration of this search space is infeasible in a live context, experiments have been performed and their results are presented, to limit the size of the enumerated space while still yielding sufficient variation in the composed pieces. Furthermore, the general system design is presented and it is discussed how choices concerning the inter-communication between components in the system helps the system to be responsive and usable in a live composition context.