Algorithmic Composition

An introduction to computer-generated music

Roberto M.F.

@h4ckademy alumni

2015-08-19 00:00:00 +0000 UTC

Who (the heck) am I?

Almost all my base is belong to the music:
12 years studying music and playing the oboe

Software tinkerer and Math lover since I was born:
programmer nowadays

What's an oboe?

Returning to Algorithmic Composition...

what is IT*?

Is a technique for composing music

that involves the use of algorithms

Thanks, Captain Obvious! (¬¬)

That's not new!

Isorhythmic motets from the 13th century were composed this way

Medieval music composers taught their pupils with this technique

Algorithms are slow to calculate

We are not on the 13th century

We now have computers!

We can make Computer Music* based on algorithms

What type of music is produced by this technique?

Completely automatic

The computer is able to make choices of its own

As a help to the composer

The computer is a tool managed by a human


The computer is the one who plays its music

In sheet form

The music is played by musicians or on another form

Physical examples

The Well-Sequenced Synthesizer

Self-played & user-controlled


  • 352-processors supercomputer

  • Sponsored by the University of Málaga

  • Biomimetic and evo-devo

Sheet-producer & automatic

Software examples

Computer Music Lab (

research projects


Sheet-producer & user-controlled

Mathematical formulas

Raw music data


Sheet-producer & user-controlled

(and runs well on Linux with Wine!)

  • Methodology of composition
  • Parallels between                Music and Plastic Arts

Thank you!

<script> Reveal.initialize({ width: SLConfig.deck.width, height: SLConfig.deck.height, margin: 0.05, controls: true, progress: true, history: true, mouseWheel: false, showNotes: SLConfig.deck.share_notes ? 'separate-page' : false, slideNumber: SLConfig.deck.slide_number, autoSlide: SLConfig.deck.auto_slide_interval || 0, autoSlideStoppable: true, rollingLinks: false, center: || false, shuffle: SLConfig.deck.shuffle || false, loop: SLConfig.deck.should_loop || false, rtl: SLConfig.deck.rtl || false, transition: SLConfig.deck.transition, backgroundTransition: SLConfig.deck.background_transition, pdfMaxPagesPerSlide: 1 }); if( window.hljs ) hljs.initHighlightingOnLoad(); </script>