Name
Last commit
Last update
sources Added DistributionShape usage
stanford_mir more knn; stanford_mir.get_features
.gitignore added mp3 to gitignore
CNAME Create CNAME
LICENSE Initial commit
README.md new notebooks with placeholders. work in progress
Vagrantfile lots of updates, too lazy to make descriptive commit message
about.html removing hide input js
about.ipynb removing hide input js
adtlib.html librosa.clicks
adtlib.ipynb librosa.clicks
audio_representation.html audio representation
audio_representation.ipynb audio representation
autocorrelation.html autocorrelation
autocorrelation.ipynb autocorrelation
basic_feature_extraction.html fixed plots
basic_feature_extraction.ipynb fixed plots
basic_mir.html basic mir; evaluation
basic_mir.ipynb basic mir; evaluation
basic_mir.slides.html slides
beat_tracking.html ipywidgets; matplotlib inline
beat_tracking.ipynb ipywidgets; matplotlib inline
beat_tracking.slides.html slides
beat_tracking_essentia.html beat tracking; split notebooks
beat_tracking_essentia.ipynb beat tracking; split notebooks
classify_separated_signals.html Loading commit data...
classify_separated_signals.ipynb Loading commit data...
cross_validation.html Loading commit data...
cross_validation.ipynb Loading commit data...
custom.css Loading commit data...
dtw.html Loading commit data...
dtw.ipynb Loading commit data...
evaluation.html Loading commit data...
evaluation.ipynb Loading commit data...
exercise_genre_recognition.html Loading commit data...
exercise_genre_recognition.ipynb Loading commit data...
feature_extraction_essentia.ipynb Loading commit data...
feature_sonification.html Loading commit data...
feature_sonification.ipynb Loading commit data...
fourier_transform.html Loading commit data...
fourier_transform.ipynb Loading commit data...
genre_recognition.html Loading commit data...
genre_recognition.ipynb Loading commit data...
get_good_at_ipython.html Loading commit data...
get_good_at_ipython.ipynb Loading commit data...
get_good_at_ipython.slides.html Loading commit data...
hpss.html Loading commit data...
hpss.ipynb Loading commit data...
index.html Loading commit data...
index.ipynb Loading commit data...
ipython_audio.html Loading commit data...
ipython_audio.ipynb Loading commit data...
ipython_audio.slides.html Loading commit data...
kmeans.html Loading commit data...
kmeans.ipynb Loading commit data...
kmeans_instrument_classification.html Loading commit data...
kmeans_instrument_classification.ipynb Loading commit data...
knn.html Loading commit data...
knn.ipynb Loading commit data...
knn_instrument_classification.html Loading commit data...
knn_instrument_classification.ipynb Loading commit data...
lsh_fingerprinting.html Loading commit data...
lsh_fingerprinting.ipynb Loading commit data...
mfcc.html Loading commit data...
mfcc.ipynb Loading commit data...
mfcc.slides.html Loading commit data...
neural_networks.html Loading commit data...
neural_networks.ipynb Loading commit data...
nmf.html Loading commit data...
nmf.ipynb Loading commit data...
nmf_source_separation.html Loading commit data...
nmf_source_separation.ipynb Loading commit data...
numpy_basics.html Loading commit data...
numpy_basics.ipynb Loading commit data...
numpy_basics.slides.html Loading commit data...
onset_detection.html Loading commit data...
onset_detection.ipynb Loading commit data...
onset_detection.slides.html Loading commit data...
pca.html Loading commit data...
pca.ipynb Loading commit data...
pitch_transcription_answer.ipynb Loading commit data...
pitch_transcription_exercise.html Loading commit data...
pitch_transcription_exercise.ipynb Loading commit data...
python_basics.html Loading commit data...
python_basics.ipynb Loading commit data...
segmentation.html Loading commit data...
segmentation.ipynb Loading commit data...
sheet_music_representations.html Loading commit data...
sheet_music_representations.ipynb Loading commit data...
spectral_features.html Loading commit data...
spectral_features.ipynb Loading commit data...
spectral_features_essentia.html Loading commit data...
spectral_features_essentia.ipynb Loading commit data...
stft.html Loading commit data...
stft.ipynb Loading commit data...
symbolic_representations.html Loading commit data...
symbolic_representations.ipynb Loading commit data...
tempo_estimation.html Loading commit data...
tempo_estimation.ipynb Loading commit data...
tuning_systems.html Loading commit data...
tuning_systems.ipynb Loading commit data...
why_mir.html Loading commit data...
why_mir.ipynb Loading commit data...
why_mir.slides.html Loading commit data...
zcr.html Loading commit data...
zcr.ipynb Loading commit data...

stanford-mir

Instructional material for the Music Information Retrieval Workshop at CCRMA, Stanford University, 2014-16.

How to Use This Repo

This repo contains a bunch of IPython notebooks related to music information retrieval.

If you're a visitor, browse a read-only version of this repo at musicinformationretrieval.com.

If you're a workshop participant, follow the steps below to get started with Git and IPython.

Install Git

Git is a version control system. You will use Git to retrieve the latest version of our IPython notebooks and to track changes that you make to these notebooks.

  1. Download Git, and install it on your local machine.

  2. Clone this repo onto your local machine:

    macbook:~$ git clone https://github.com/stevetjoa/stanford-mir

Start IPython

A majority of our instruction and laboratory work will occur inside the IPython notebook. You can think of the IPython notebook like the Mathematica or Matlab desktop, except it's in Python and it runs inside your web browser.

  1. Start the IPython notebook server:

    stanford-mir:~$ ipython notebook
  2. On your host machine, visit http://localhost:8888.

  3. Open the notebook index.ipynb, or click on any .ipynb file to open it.

Congratulations, you are now running an IPython notebook, and you can get started with the workshop material.

Contributions

Your contributions are very welcome! You can contribute in two ways:

  1. Submit an issue. Click on "Issues" in the right navigation bar, then "New Issue". Issues can include Python bugs, spelling mistakes, broken links, requests for new content, and more. For a prioritized list of open issues awaiting contribution, click on the blue "Ready" button above.

  2. Submit changes to source code or documentation. Fork this repo, make edits, then submit a pull request.

This repo is statically hosted using GitHub Pages. Any changes to HTML files in the gh-pages branch will be seen on musicinformationretrieval.com.

To edit musicinformationretrieval.com:

  1. Edit a notebook, e.g.:

    $ ipython notebook kmeans.ipynb
  2. Convert notebook to HTML:

    $ ipython nbconvert --to html kmeans.ipynb
  3. Commit the notebook and the HTML:

    $ git add kmeans.ipynb kmeans.html
    $ git commit
    $ git push

    You may need to wait 1-2 minutes before the changes are live on GitHub Pages.

Appendix

This information may not be up to date. Proceed at your own risk.

Install Vagrant

We use Vagrant to create a local virtual machine running Ubuntu 12.04. Vagrant ensures that every person has exactly the same development environment with the same installed packages.

Vagrant is available for all major operating systems, including Windows, Mac OS X, and Linux. It's a breeze to install.

  1. Install VirtualBox and Vagrant.

  2. Create a new virtual machine using our customized Vagrant box built upon Ubuntu 12.04 64-bit.

    macbook:~/stanford-mir$ vagrant up

    If this is your first time running vagrant up, this step may take five minutes to download the Vagrant box.

  3. Finally, login to the new virtual machine:

    macbook:~/stanford-mir$ vagrant ssh

    This step logs you in to Ubuntu locally as user vagrant with default password vagrant.

    Note: do not upgrade the virtual machine to Ubuntu 14.04 when prompted.

    Note: outdated versions of Mac OS X may yield problems with vagrant ssh. To avoid such problems, please upgrade (for free) to the latest version of Mac OS X.

Troubleshooting Vagrant

  • Problem: When on a Windows host machine, vagrant ssh results in a timeout error: ssh_exchange_identification: read: Connection reset by peer.

    Solution: Go into the BIOS, and make sure that Hardware Virtualization is enabled. For details, see this answer on Stack Overflow.

  • Problem: The folder stanford-mir on the guest machine is empty.

    Solution: Vagrant probably failed to sync folders between the host and the guest machines. Try vagrant provision or vagrant reload from the host machine.