Git Product home page Git Product logo

procmusic's Introduction

ProcMusic

ProcMusic is a procedural music generator.

Setup and Requirements

This program requires Java (free download at http://www.java.com). Once Java is installed, you can launch this program with the command

java -jar ProcMusic.jar

once you navigate to the directory that you've downloaded the file to.

How To Use

Once the program starts, hit the button marked "Play" to get four bars of randomly generated music. If you check the box marked "Loop," the program will generate another four bars as soon as the previous phrase finishes playing. The slider at the top allows you to set the speed for the next phrase.

The window at the bottom shows you the chord progression and rhythms that have been created for the current phrase.

Planned Features

I'll be working on this project on and off for a while, and I have a fairly good idea of the direction I'll be taking it.

Randomly generated harmony lines
Bass and counter-melodies should be generated alongside the main melody, playing off of the generated motifs and rhythms.
Improved rhythm generation
The current method essentially pulls a pre-written set of notes from a large sample pool, then scales it to fit the current chord. Ideally, the program will eventually be able to generate these lines on its own, allowing for a much broader set of possibilites.
Broader song planning
ProcMusic works on a phrase-by-phrase basis, generating a few bars of music at a time. I plan to add the ability for generated phrases to affect how later parts of the song are composed, adding repeating motifs and better overall structure to songs.
More control
One of the main goals of ProcMusic is to be able to have a fully composed song on demand based on a small set of parameters. Very-long-term, the software could be built into a simple game engine, taking small bits of information such as player health, number of nearby enemies, type of terrain, time of day, and so on. Short-term, that means adding sliders for sparseness of the melody, amount of syncopation in the rhythms, and changes to the underlying bass line.

procmusic's People

Contributors

erictdobbs avatar

Watchers

James Cloos avatar  avatar Grant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.