项目作者: SamueleGiraudo

项目描述 :
Generative music through operads.
高级语言: OCaml
项目地址: git://github.com/SamueleGiraudo/Bud-Music-Box.git
创建时间: 2019-12-18T07:22:27Z
项目社区:https://github.com/SamueleGiraudo/Bud-Music-Box

开源协议:GNU General Public License v3.0

下载


Bud Music Box

|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 -
giraudo.samuele@uqam.ca -

Quick overview and examples

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.

Main functionalities

  1. Multi-pattern creation
  2. Multi-pattern operations
  3. Specificating the context
  4. Colored multi-patterns and random generation

Some examples

  1. An example on the Hirajoshi scale.
    Listen here.
  2. An example on the Hirajoshi scale.
    Listen here.
  3. An example on the Hirajoshi scale.
    Listen here.
  4. An example on the natural major scale.
    Listen here.
  5. An example on the harmonic minor scale.
    Listen here.
  6. An example on the minor pentatonic scale.
    Listen here.
  7. An example on the minor pentatonic scale.
    Listen here.
  8. An example on the major pentatonic scale.
    Listen here.

Other examples

  1. A Mix of patterns.
    Listen here.
  2. A horizontal transformations.
    Listen here.
  3. A vertical transformations.
    Listen here.
  4. Some local variations.
    Listen here.
  5. A full piece.
    Listen here.

Versions

Here is the changelog of the different versions.

Installation

The following instructions hold for up-to-date Linux systems.

Dependencies

The following programs are needed:

  • make
  • ocaml
  • ocamlbuild
  • ocamlfind
  • menhir
  • abcmidi
  • abcm2ps
  • timidity

Moreover, a proper installation of a SoundFont is necessary.

Building

Here are the required steps to build the interpreter Bud Music Box:

  1. Clone the repository somewhere by running

    1. git clone https://github.com/SamueleGiraudo/Bud-Music-Box.git
  2. Install all dependencies (see the section below).

  3. Build the project by running make.

This creates an executable bmb. The following sections explain how to use it.

User guide

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.

Miscellaneous

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.

Theoretical aspects

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.

Bibliography

  • 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: