• Stars
    star
    380
  • Rank 112,101 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 8 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Use deep learning to generate and harmonize music in the style of Bach

BachBot

BachBot is a research project utilizing long short term memory (LSTMs) to generate Bach compositions.

Installation

Docker container images are hosted on DockerHub.

CPU-only

docker pull fliang/bachbot:base

CUDA-7.5

docker pull fliang/bachbot:CUDA-7.5

Getting Started

Set up environment

source scripts/activate

Prepare polyphonic Bach chorale corpus and train torch-rnn LSTM.

bachbot chorales prepare_poly && \
	bachbot concatenate_corpus scratch/*.utf && \
	bachbot make_h5 && \
	bachbot train

Sample the trained LSTM and decode output to musicXML.

bachbot sample <path_to_checkpoint> -t <temperature> && \
	bachbot decode decode_chord_constant_t_utf scratch/utf_to_txt.json scratch/sampled_<temperature>.utf

Workflow

  • source ./scripts/activate.zsh to set up the working environment
    • Pro-tip: Add source ~/bachbot/scripts/activate to your .{bash|zsh}rc
  • To develop on the scripts
     cd ./scripts
     pip install --editable .
    
    The bachbot shell command will use the entry point defined inside ./scripts/setup.py.
  • To generate ctags which include system Python libraries
     ctags -R -f ./tags `python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"`<CR>
    

More Repositories

1

cats-logo

Cats Free Monad implementation of a Logo interpreter
Scala
14
star
2

Euler-Tour

Finds Euler tour from an edge list
Python
6
star
3

DNN-HMM-HTK-helpers

Shell scripts for automating training and investigation of DNN-HMMs using HTK
Shell
6
star
4

SICP-racket

Racket implementations of code examples in Structure and Interpretation of Computer Programs
Racket
5
star
5

Organic-Synthesis-Study-Guide

An overview of the synthetically useful organic reactions covered in Organic Chemistry II at Amherst College
4
star
6

OSTicket-Reborn

Rethinking a popular PHP helpdesk
PHP
4
star
7

Photo-Doodler

Photo Doodler lets you collaboratively doodle on your Facebook photos. Annotate, draw, or just doodle and then share it with your friends!
JavaScript
4
star
8

dist-svgd

Experiments in parallel and distributed Stein's variational gradient descent
Python
4
star
9

All-Pairs-Shortest-Paths

Implementation of Floyd Warshall algorithm
Python
3
star
10

subjective-evaluation-server

Node backend for conducting subjective evaluation of music samples
JavaScript
2
star
11

alexa-circleci

Alexa skill to report status of builds in circleci
JavaScript
2
star
12

citadel

Shell
2
star
13

dotfiles

Python
2
star
14

Comparison-Sort-Runtime-Analysis

Java implementation of insertion, merge, and quick sort with runtimes measured
Java
2
star
15

NQueens-Parallel

Parallelization of the N-queens combinatorial search using OpenMPI and C
C
2
star
16

Monte-Carlo-Pi

Estimates Pi using a Monte Carlo Simulation
Python
1
star
17

newton-sketches

Explorations of sketched second order optimization algorithms
Python
1
star
18

openfst-practical

TeX
1
star
19

obs-realsense-depth-source

OBS Source for Intel Realsense Depth sensor, tested against Intel D435
C++
1
star
20

MaxArray

Solves the maximum subarray problem in nlgn time
Python
1
star
21

feynmanliang.com

1
star
22

FeynWiki

Basic wiki to run on Google App-Engine
Python
1
star
23

Dynamic-Programming-Examples

Python
1
star
24

Sieve-of-Erathosthemes

Solves for prime number list
Python
1
star
25

dotlite

Simpler dotfiles built for interpretability and maintainability
Vim Script
1
star
26

COSC201-Final-Review

Study sheet for the final exam in Data Structures & Algorithms I
1
star
27

PayToPottie

Rent bathrooms by the minute
JavaScript
1
star
28

SplitIt

php application to identify mutually compatible meeting times for users
PHP
1
star
29

memoir

Photo Slideshow Generator
Ruby
1
star
30

huffman-rle-compression

File compression using run-length encoding and Huffman coding
Python
1
star
31

searchbird-2.0

Distributed inverted-index using Finagle, Thrift, Scrooge, and twitter-server.
Scala
1
star
32

MonteCarloLocalization

Localization for robot sensing
Python
1
star
33

decanter

Real-time whisky auction app
JavaScript
1
star
34

Cash-Tracker

Location-aware app to help track and visualize how you spend your cash
CoffeeScript
1
star