Infno: Generating Synth Pop and Electronic Dance Music on demand
نویسنده
چکیده
Infno is an algorithmic generator of electronic dance music (EDM) and synth pop fully implemented in SuperCollider 3, the latest generative music work in a line of ‘Infinite Length Pieces’. The program attempts to model the production of electropop and dance music styles with a closer union of parts than typical in many previous algorithmic composition systems. Voices, including a percussion section, bass, chord and lead lines, are not independently created; the parts, generated in any order, are influenced by underlying harmonic ideas, rhythmic templates and already generated lines. In particular, dynamic programming is used to select melodic lines under cost constraints of register, harmonic template, existing voices and voice leading heuristics. This paper is the first technical write-up of Infno’s mechanisms, and also reports evaluation by online questionaires and a seminar listening survey. Source code and musical examples are available at the author’s web site. 1. GENERATIVE POPULAR MUSIC Infno is a generative music program written to demonstrate on-demand creation of convincing musical pieces which engage popular electronic styles and employ live synthesis and effects. Research goals include substantial variation of output between each run, and an investigation of the close inter-relation of parts alongside arbitrary part creation order. Whilst the Illiac Suite is the more famous, a highly relevant early algorithmic composition is Push Button Bertha from 1956 (Datatron program designed by Douglas Bolitho and Martin Klein, with the output melody line set to lyrics by Jack Owens [1]). Despite a failure in the pop charts (perhaps linked to only receiving one radio play), the engagement with popular music is itself of note, and it provides an inspiration to this project. Another precedent from the algorithmic composition literature is Ames and Domino’s Cybernetic Composer [2], which tackled MIDI data generation in four styles (standard jazz, latin jazz, rock and ragtime) as a demonstration program for Kurzweil synthesisers. An early example where live synthesis is built into the program is provided by the various releases of Arguru and WakaX’s Saiko (2000), a goa trance simulator. It is not fully autonomous, requiring manual control of many parameters, and does not deals with any longer term form than a single (at most) 64 step pattern. In 2002, the MadWaves company released a generative music player as part of a portable MP3 player, the MadPlayer. Tackling a number of styles using six instrumental parts, this proprietary device creates music on demand and allows the realtime substitution of parts, and the export of favourites; it can operate autonomously, with additional options for user tweaking. The device uses sample sets for synthesis and an internal MIDI representation. A more recent venture is Mungo Enterprise’s Infinite Horizon (2006) a hardware box which can generate techno tracks constructed of standard voicings, with manual user control of form. My own first (MIDI based) techno generation program was written in 1997 in York as an exercise in C programming; I have pursued such research extensively over the last decade. Algorithmic composition experiments with UK garage and jungle styles (amongst many others) have been previously described [5], and I might mention a contribution to John Eacott’s Morpheus CDROM of 2001, and the various manifestations of BBCut. 1 My most recent project attempts to up the scale of automatic music engaging with contemporary styles. It is both a compositional response to, and an investigation of, new technological directions, as well as a necessarily musicological study through heuristic modelling. The genre labels ’synth pop’ and ’techno’ are used to indicate a general stylistic space of action, and to side step the dance music culture’s genre fixation. Synth pop is treated since pursuing techno alone would leave the author open to accusations of modelling too simple a style (even though I would argue that many authors substantially underestimate the many facets of musical complexity across EDM). Live synthesis is used for all voices, and the largest samples are at the level of 100-250msec sources for sample playback synthesis, primarily for percussive events. The paper will describe the main aspects of the program’s implementation, alongside evaluation based on internet surveying and seminar groups. 2. OVERVIEW OF INFNO Describing every detail of Infno would be exhausting; ultimately the program is its own best description, but I will 1 A chapter on this work appears as part of my 2006 PhD thesis. Figure 1. Instrument class and subclasses provide a guide to notable aspects of the design and technological novelties. A note should be made concerning the balance of machine learning and expert system in this project. Whilst a database of chord sequences has been developed for one of the harmonic models, Infno uses a vast number of manually specified rules (heuristics). In terms of Pearce et al. [7] it is primarily an ’algorithmic composition’ and not empirical musicology. Although it engages with contemporary styles, the impossibility of portraying them without also influencing their development through technology is acknowledged in advance. 2.1. Object oriented design Unified Modeling Language class diagrams are presented in figures 1 and 2, highlighting the main inheritance, associative and container 2 relations of the Infno class hierarchy. Many attributes and operations have been missed out for reasons of space, and to focus on essential design decisions. The abstract Instrument superclass represents a particular compositional voice, of which there are nine available by default (kick, snare, hat, perc(ussion), bass, leads 1 to 3, and chord). Subclasses implement the play method polymorphically to playback n elements of a 64 step sequence (by default, representing sixteenths over four 4/4 bars). This innate quantisation is appropriate to the stylistic domain, and whilst timing can be adapted by groove and fill parameters, provides a basic framework for generation and playback. Monophonic/glissando playback capability is provided in the Pitched class as a common ancestor of MonoBass and MonoLead; the lags attribute and precalculatelagtimings operation allow the genera2 marked as 1 to many (*) in UML Figure 2. Infno main classes tion, in advance of playback, of necessary additional scheduling parameters for a monophonic sequence. The Chordal class has instance variables for sustain parameters, and various specialist material generation instance methods are noted for basslines and the melody generation algorithm based on dynamic programming to be discussed below. Indeed, each class has its own methods for the generation of appropriate material. Each voice can support or oppose other previously created parts, such that the order of creation of the parts impacts substantially on the algorithmic composition. The chief innovation is the getRelations method, which, given a specified list of preferences of the form [voice, chance of opposition] runs through that list to find the first existing voice which will influence material generation for the new voice to be created. Support or opposition of voices is primarily of rhythmic material but becomes pitch based for the lead parts in particular, through the dynamic programming cost algorithm detailed below. The second UML diagram in figure 2 shows the main classes in Infno; Infno itself is the central singleton class whose single instance represents the generative program. The various methods from demo to techno will be described below and enable particular forms for generative pieces created on demand. Both Harmony and Rhythm are abstract template classes which provide chord sequences and aggregate probabilistic rhythmic templates as starting points for material generation within a given HyperMeasure, from which the individual Instrument subclasses are guided in creating parts; Harmonywill be more closely studied in the next section. Each HyperMeasure is generated as a four measure phrase, though they may be played back over a smaller number of beats and under various fill and variation operations which subtly or strongly alter existing material. 2.2. Harmony generation Twomain methods for generating harmonic templates have been designed. Both create a list of chords (for the chordal part and as dyamic programming constraints) and bass root notes (for the bassline generation) with an accompanying harmonic rhythm (allowing for example a three beat then one beat pair of chords in a bar rather than a single full measure chord). The first method draws on a database of typical pop chord sequences, described either via a diatonic representation of (duration, degree) for the quick specification of major/minor chord pop sequences or a chromatic system of (duration, root chroma, chord type) for more involved sequences. There is a chance of variations on the database sequences by rotation and permutation, root alteration and transposition. The secondmethod is a rather more complicated heuristic system. Chord qualities are altered and extended by sevenths, ninths, elevenths, by suspensions and other harmonic devices. Chord substitutions and root inversions are available, as well as the Prokofievan device of an entirely nonstandard bass root note. Whilst C major is the home key, there are chances for both global and local (hypermeasure) key changes. An instance of the Harmony class holds the data after generation and provides various helper methods for creating possible matching scales and querying harmonic data at any given point in a hypermeasure. 2.3. Dynamic programming algorithm for melodic lines The most technical part of the Infno program is a dynamic programming algorithm for melodic line generation which takes into account existing parts, harmonic constraints and note transitions. In order to explore different possible melodic algorithms, the costs associated with the dynamic programming are altered (within controlled bounds) for each run, following certain heuristics, which allows for different characters for each run. The full dynamic programming algorithm would take much longer than this paper to reproduce, so only important facets are discussed here. For each required note at a given step of the sequence, costs are determined for every chromatic tone over a two octave range (24 possibilities) and with transition cost from the last 24. Contributions to the calculated cost value of each option are detailed in Table 1. The numerical ranges give a rough idea of the relative values costs can take on, but the actual distributions guiding the selection of values for each dynamic programming run are more complicated and locked to SuperCollider code, so are not further detailed here. The curious reader can examine the source code method InfnoLead:dynamicprogramming1 for further information. The Harmony class provides functions to find the best fitting scales at a given moment in time, taking into account local chord choices. Diatonic notes are then determined from these scale patterns. Deliberate noise can be added both at the individual transition and best path selection stages. A final cost for each possible transition from note i to note j at a given time in the hypermeasure is established
منابع مشابه
A Case Series of Life-Threatening MDMA Poisoning in An Electronic Dance Music Party in Hong Kong
Background: MDMA (3,4-methylenedioxymethamphetamine), which is also known as Ecstasy or Molly, is a commonly found abusive agent in Hong Kong. MDMA abuse is widely reported in electronic dance music (EDM) festivals all over the world. It brings about uncommon mortality and serious morbidity with recreational use, which are believed to be related to serotonin toxicity. Cyproheptadine has anti-hi...
متن کاملKey Estimation in Electronic Dance Music
In this paper we study key estimation in electronic dance music, an umbrella term referring to a variety of electronic music subgenres intended for dancing at nightclubs and raves. We start by defining notions of tonality and key before outlining the basic architecture of a template-based key estimation method. Then, we report on the tonal characteristics of electronic dance music, in order to ...
متن کاملNote sequence morphing algorithms for performance of electronic dance music
This paper describes algorithms that can musically augment the realtime performance of electronic dance music by generating new musical material by morphing. Note sequence morphing involves the algorithmic generation of music that smoothly transitions between two existing musical segments. The potential of musical morphing in electronic dance music is outlined and previous research is summarise...
متن کاملA Research on the Fragmented Culture of Iran’s Youth in the Content of Pop Music Lyrics
This research was done in order to describe the content of proposed lyrics’ concepts in permissible pop music based on published audio works’ list of music publication office in 2009 among 200 albums of music office published audio works, the 10 number of pop singers were randomly selected and the lyrics’ concept of 70 music were also investigated. In the process of data analysis in the first ...
متن کاملComputational Analysis of Musical Influence: A Musicological Case Study Using MIR Tools
Are there new insights through computational methods to the thorny problem of plotting the flow of musical influence? This project, motivated by a musicological study of early synth pop, applies MIR tools as an aid to the investigator. Web scraping and web services provide one angle, sourcing data from allmusic.com, and utilising python APIs for last.fm, EchoNest, and MusicBrainz. Charts of inf...
متن کامل