Skip to main content

Automusic

An automatic music generation system


Paul Paterson
(paulpaterson)

An automatic music generation system based on a cellular automaton sequencer.

This is a simple music generation system that allows you to create music automatically using a variety of instruments. The music comes from a sequence of notes which are played by a simple 2d cellular automaton.

Left click to create an active cell. Active cells move towards the boundaries and are reflected. As they do this they generate a note, which depends on where they hit on the boundary. If two cells occupy the same square then they will each rotate their direction by 90 degrees clockwise.

These simple rules generate patterns that gradually evolve over time.

The idea was based on the Otomata sequencer (http://www.earslap.com/projectslab/otomata) Version 0.1 includes basic instruments with sounds from Apple's Garage Band.

There is no UI to edit the instruments but if you are adventurous then you can poke around in the "instruments" folders and change notes, sounds etc.

Links

Home Page
http://perpetualpyramid.com/drupal/?q=automusic_game

Releases

Automusic 0.1 — 3 Aug, 2013

Pygame.org account Comments

  • Yassin Philip 2013-08-05 03:25:27

    This is quite wonderful, I must say. And so elegant. Wow.

    Paul Paterson 2013-08-05 14:25:25

    Thanks - all credit on that front should go to Batuhan Bozkurt, who came up with the idea. I'm hoping to be able to use this in some future games!

  • Alfem 2013-08-30 12:21:20

    I have to say I got hypnotyzed with the music this program generated. I think I could even use it as background soundtrack for a game!

    Good work.

  • wcb98 2013-10-05 16:54:53

    Is it possible to make a music file with this program?

    Duality 2015-02-12 01:08:12

    you could probably code up a script to do that.

  • emerson 2013-10-05 19:21:46

    Very nice music! Once I was trying to make a simple metronome in pygame, but then I realized that the tempo wasn't quite right. I noticed this program have the same problem. I would like to know what is going on and how to solve that...