GithubHelp home page GithubHelp logo

songcreator's Introduction

SongCreator

This is a machine learning based song creator. It follows the principles of the Microsoft Research edited Songsmith (ex Mysong) software, as exposed in [1] and [2]. In this first stage, it can do two things:

  • produce some graphical output based on a MusicXML file

    • frequency display for all chord transitions present in the file
    • frequency display of the twelve chromatic notes over the chords that appear in the song
  • produce some graphical output based on a folder containing MusicXML files

Usage

Click the Open .mxml file to load a MusicXML file. The two tabs are then updated according to the data from the file.

  • The Chord analysis tab displays a bar plot with the chord transitions that appear in the tune and their frequency Screenshot
  • the Melody analysis tab displays a matrix with each row being the frequency of the twelve chromatic notes played over each chord in the song Screenshot

Note: when clicking the transpose to C button, you'll see the equivalent chords and melody matrices if the song was played in C major. Screenshot

Open the Folder analysis tab and click on the button Open folder containing .mxml files to parse all MusicXML files in a directory. Two matrices will be displayed in the graphical view. Screenshot

  • On the left, you'll see the chord transition matrix, indexed by chord root. The five rows underneath each root correspond to major, minor, augmented, diminished and suspended chord types.
  • On the right, you'll see the melody observation matrix, indexed by chord root in rows and note in columns. This gives the probability of playing a given note over a given chord in the melody.

Bibliography

  1. D. Morris, I. Simon, and S. Basu, "Exposing Parameters of a Trained Dynamic Model for Interactive Music Creation.," in AAAI, 2008, pp. 784โ€“791.
  2. I. Simon, D. Morris, and S. Basu, "MySong: automatic accompaniment generation for vocal melodies," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 2008, pp. 725โ€“734.

Links

songcreator's People

Contributors

flothesof avatar

Stargazers

Moshe Jonathan Gordon Radian avatar Marc avatar  avatar Emil Maran avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Forkers

httpsgithu

songcreator's Issues

Generating Songsmith-compatible model files

I'm trying to use SongCreator to analyze the Wikifonia scores archive for use with Songsmith now, but I can't figure out how to get a result that looks anything like the stock ones (available here ). The files there give log probabilities. Maybe I need to do some sort of conversion?

Assorted errors

Hi, I was hoping to use this program to make new Songsmith chord and melody matrices from this MusicXML collection but I keep getting various errors that I don't know how to address; I figured I'd list them here. The first is that running the folder analysis on this repo's wikifonia folder only shows empty graphs. The second: running melody or chord analysis on one of the included files gives the TypeError message, "setText(self, str): argument 1 has unexpected type 'tuple'. Also, starting SongCreator.py is giving Qt-related messages: "Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created."

I'm using Python 3.5.4, by the way, on Windows. When I used Python 3.6.9 I kept getting a different error about how the function that reads a zip file was expecting bytes and not strings.

Difficulties with chord transitions matrix

From the screenshots in the readme it looks like SongCreator treats some chords as repeating--which makes sense, except when I asked the creator of Songsmith why his program does not allow for these "self-transitions," he answered in this thread . Maybe they should be ruled out?

Printing matrices to file?

I'm hoping to create model files that I could try out in Songsmith. Is there any easy way to print the matrices to a text file? It looks like SongCreator creates numpy arrays, but I've never used numpy and I don't know if there's an easy way to print them.

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.