All Projects → evancchow → Jazzml

evancchow / Jazzml

A (very incomplete) project that combines machine learning with music.

Projects that are alternatives of or similar to Jazzml

Pandas Highcharts
Beautiful charting of pandas.DataFrame with Highcharts
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Pydqc
python automatic data quality check toolkit
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Drkg
A knowledge graph and a set of tools for drug repurposing
Stars: ✭ 231 (-1.7%)
Mutual labels:  jupyter-notebook
My tech resources
List of tech resources future me and other Javascript/Ruby/Python/Elixir/Elm developers might find useful
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Web scraping with python
Python 入门爬虫和数据分析实战
Stars: ✭ 234 (-0.43%)
Mutual labels:  jupyter-notebook
Learning Pyspark
Code repository for Learning PySpark by Packt
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Datasets
source{d} datasets ("big code") for source code analysis and machine learning on source code
Stars: ✭ 231 (-1.7%)
Mutual labels:  jupyter-notebook
Dlwpt Code
Code for the book Deep Learning with PyTorch by Eli Stevens, Luca Antiga, and Thomas Viehmann.
Stars: ✭ 3,054 (+1199.57%)
Mutual labels:  jupyter-notebook
Datavisualization
Tutorials on visualizing data using python packages like bokeh, plotly, seaborn and igraph
Stars: ✭ 234 (-0.43%)
Mutual labels:  jupyter-notebook
Lasio
Python library for reading and writing well data using Log ASCII Standard (LAS) files
Stars: ✭ 234 (-0.43%)
Mutual labels:  jupyter-notebook
Pyhessian
PyHessian is a Pytorch library for second-order based analysis and training of Neural Networks
Stars: ✭ 232 (-1.28%)
Mutual labels:  jupyter-notebook
Jupyterwith
declarative and reproducible Jupyter environments - powered by Nix
Stars: ✭ 235 (+0%)
Mutual labels:  jupyter-notebook
Python Script Examples
This repository contains my python (3) script examples that focus on use cases for Network Engineers.
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Whilemymcmcgentlysamples
my blog
Stars: ✭ 232 (-1.28%)
Mutual labels:  jupyter-notebook
Jddc solution 4th
2018-JDDC大赛第4名的解决方案
Stars: ✭ 235 (+0%)
Mutual labels:  jupyter-notebook
Smt
Surrogate Modeling Toolbox
Stars: ✭ 233 (-0.85%)
Mutual labels:  jupyter-notebook
Rl learn
我的强化学习笔记和学习材料📖 still updating ... ...
Stars: ✭ 234 (-0.43%)
Mutual labels:  jupyter-notebook
Book
Deep Learning 101 with PaddlePaddle (『飞桨』深度学习框架入门教程)
Stars: ✭ 2,621 (+1015.32%)
Mutual labels:  jupyter-notebook
Deep learning examples
Examples of using deep learning in Bioinformatics
Stars: ✭ 234 (-0.43%)
Mutual labels:  jupyter-notebook
Pyschedule
pyschedule - resource scheduling in python
Stars: ✭ 232 (-1.28%)
Mutual labels:  jupyter-notebook

JazzML: Computational Jazz Improvisation

Originally inspired by Gillick et al. (2010): "Machine Learning of Jazz Grammars" http://www.mitpressjournals.org/doi/pdf/10.1162/COMJ_a_00006

UPDATE: See branch "research" for the latest working demo of the project. When executed correctly (download all files, run "$ python pipe.py"), assuming all libraries are installed, it will generate guitar improvisation and play it against the prerecorded accompaniment.

Computer jazz improvisation powered by machine learning, specifically trigram modeling, K-Means clustering, and chord inference with SVMs.

Needs to be better modularized.

Dependencies:

  • NumPy
  • SciPy
  • Pandas
  • Scikit-Learn
  • Matplotlib

In addition, you'll need a couple of specialized music libraries for Python:

  • music21 - for MIDI data extraction
  • mingus (https://code.google.com/p/mingus/) - for playback
  • fluidsynth - for playback

If you just want to read about my work (without running any code), please use the nbviewer for iPython notebooks 6a and 6b, which document the full process (except for parsing the raw MIDI data). Here are the links to my work:

Go into the directory: http://nbviewer.ipython.org/github/evancchow/jazzml/tree/master/oscar/oscar2/

In that directory, take a look at:
Notebook 1, getting the notes and generating the n-grams: 6a. The N-Gram Pipeline Part I.
Notebook 2, all the advanced clustering/classification for the ngrams: 6b. The N-Gram Pipeline, Part II.
Notebook 3, creating and training the SVM needed for (6b): 7. Predictive Chord Modeling with Bitwise Note Vectors.

For viewing those notebooks, if you get a 400 error on the nbviewer, refresh the page once or twice. Working on this error.

Check out the subdirectory "./presentationfiles" if you'd like to see some pictures of generated vs. original music.

I worked mainly in the subdirectory "./oscar/oscar2", so all of my main code is over there (although it's in iPython files, so you'll have to either get iPython or view the ipython files with http://nbviewer.ipython.org/.


If you're new here: Included is a sample MIDI file (Oscar-Peterson-2.mid) for analysis and generation. For a quick demo, go to the subdirectory "./oscar/oscar2" and run things in this order (assuming you have the dependencies):

First, run the script oscar2.py as:

$ python oscar2.py > oscar2chords.txt (or $ python oscar2.py > oscar2notes.txt based on stdin)

This should give you two data files which represent the chords and the notes encoded in the original MIDI file: oscar2chords.txt, and oscar2notes.txt.

Next, to generate new notes with the N-Gram model, run iPython notebook 6a: The N-Gram Pipeline, Part I which writes out the n-grams to the file oscar2ngrams.txt.

Next, to generate the chord classifier (SVM) with chord notes, first run iPython notebook 5: Extract Chords to process the raw data in oscar2chords.txt, clean it up, and write it out to oscar2chords_extract.txt. Then run iPython notebook 7: Predictive Chord Modeling with Bitwise Note Vectors, which reads in that just-created file, trains an SVM to return those chords based on consonant pentatonic notes (semirandomly generated), and cPickles that SVM to disk.

Finally, for chord accompaniment and dynamic playback, run notebook 6b: The N-Gram Pipeline, Part II.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].