GenoMus download genotype functions about

GenoMus: a human-machine collaborative tool for music composition

GenoMus is a computer assisted composition project based on metaprogramming of procedural musical genotypes. Each genotype is a functional expression in JavaScript. The evaluation of these expressions produces music excerpts (or phenotypes). Both genotypes and phenotypes are encoded as unidimensional normalized vectors, which is convenient to apply different machine learning techniques.

GenoMus is based on JavaScript and Max, via Node.js. The bach (bach automated composer's helper) package is also used to visualize the musical output of GenoMus.

features

modularity

Based on a very simple syntax. This should allow the recombination of processes in the most open manner possible, expanding the search space and promoting new and unexpected recombination of subprocesses.

compactness

Maximal compression of procedural information. In the encoded counterpart of the processes, a representation system must be possible that reduces complex functional structures to simple sequences of values.

isomorphism

Same structure for all encoded entities. The representation system must allow associating the same type of basic data structure to relate inputs and outputs, that is, programs and results of their evaluation.

extensibility

Subsets and supersets of the grammar easily handled. The architecture must be so simple that it allows adding (or limiting) functions with new processes smoothly.

readability

Both abstract and human-readable formats interchangeable. A coding and decoding system is needed to work simultaneously with a programming language and with numerical vectors, and the transformation between both needs to be reliable, secure, and efficient in terms of information compression.

repeatability

Same initial conditions always generate the same output. This is an evident condition, but it will require delicate design decisions to not limit modularity and extensibility.

self-referenceable

Support for on internal autoreferences. This is essential for representing many basic formal structures based on repetition and variation, and also for many processes in algorithmic music that require recursion.

versatility

Applicable to other contexts and domains. The level of abstraction should make it transferable to other fields. As a generative system that handles simultaneous sequences of events in time, with arbitrarily complex information patterns, it can be applied to other fields such as video synthesis, remote lighting control, motion control, etc. Multimedia art is one of the working horizons of this research.

why GenoMus

The name encapsulates the expression genome of music and emphasizes the goal of decoding the underlying processes of musical composition in a way that can be sequenced, akin to applying analogs to genetic engineering: enabling us to learn, analyze, and synthesize new music based on previous knowledge.