|3^^|3
A tool to generate random music from short patterns using operads, colored operads, and bud generating systems.
Copyright (C) 2019--2023 Samuele Giraudo -
[email protected]
-
This program offers a complete language allowing to represent musical patterns, to compute over them, and to randomly generate some of them. Results can be converted to files in the abc format and then into MIDI files.
- Multi-pattern creation
- Multi-pattern operations
- Specificating the context
- Colored multi-patterns and random generation
- An example on the Hirajoshi scale. Listen here.
- An example on the Hirajoshi scale. Listen here.
- An example on the Hirajoshi scale. Listen here.
- An example on the natural major scale. Listen here.
- An example on the harmonic minor scale. Listen here.
- An example on the minor pentatonic scale. Listen here.
- An example on the minor pentatonic scale. Listen here.
- An example on the major pentatonic scale. Listen here.
- A Mix of patterns. Listen here.
- A horizontal transformations. Listen here.
- A vertical transformations. Listen here.
- Some local variations. Listen here.
- A full piece. Listen here.
Here is the changelog of the different versions.
The following instructions hold for up-to-date Linux systems.
The following programs are needed:
make
ocaml
ocamlbuild
ocamlfind
menhir
abcmidi
abcm2ps
timidity
Moreover, a proper installation of a SoundFont is necessary.
Here are the required steps to build the interpreter Bud Music Box
:
- Clone the repository somewhere by running
git clone https://github.com/SamueleGiraudo/Bud-Music-Box.git
-
Install all dependencies (see the section below).
-
Build the project by running
make
.
This creates an executable bmb
. The following sections explain how to use it.
This page contains the description of the Bud Music Box instruction set and language.
Files containing such instructions must have .bmb
as extension. Given such a file
Program.bmb
, the command
./bmb --file Program.bmb
executes the instructions of Program.bmb
, sequentially from the first one to the last one.
To get the syntax highlighting in the text editor vim
for the Bud Music Box language, put
the file bmb.vim at ~/.vim/syntax/bmb.vim
and the file
bmb.vim at ~/.vim/fdetect/bmb.vim
.
An operad is an algebraic structure wherein elements are operations. This generative method is based upon an abstraction of polyphonic musical phrases called multi-patterns, forming the music box model. The set of these objects is endowed with the structure of an operad, thus enabling us to perform computations on musical phrases. Indeed, the operad structure on multi-patterns makes it possible to consider any multi-pattern as an operation on multi-patterns. The main idea is that one can, from a set of small musical phrases, randomly generate a new musical phrase by computing various random compositions of these patterns.
-
About operads:
-
M. Méndez. Set operads in combinatorics and computer science. Springer, Cham, SpringerBriefs in Mathematics, xvi+129, 2015.
-
S. Giraudo. Nonsymmetric Operads in Combinatorics. Springer Nature Switzerland AG, ix+172, 2018.
-
-
About operads and combinatorial generation:
-
S. Giraudo. Colored operads, series on colored operads, and combinatorial generating systems. Discrete Math., 342, 6, 1624--1657, 2019.
-
S. Giraudo. Combinatorial operads from monoids. J. Algebr. Comb., 41, Issue 2, 493–538, 2015.
-
-
About the operad of patterns:
-
S. Giraudo. Generation of musical pattern through operads. Journées d'informatique musicale, 2020.
-
S. Giraudo. The music box operad: random generation of musical phrases from patterns, Work in progress, 2022.
-