nakas commited on
Commit
fe84f3e
1 Parent(s): fb4b49c

forked from huggingface demucs

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .DS_Store +0 -0
  2. CODE_OF_CONDUCT.md +76 -0
  3. CONTRIBUTING.md +23 -0
  4. Demucs.ipynb +115 -0
  5. LICENSE +21 -0
  6. MANIFEST.in +6 -0
  7. Makefile +19 -0
  8. README.md +379 -13
  9. baselines/.DS_Store +0 -0
  10. baselines/IRM2/test/AM Contra - Heart Peripheral.json.gz +3 -0
  11. baselines/IRM2/test/Al James - Schoolboy Facination.json.gz +3 -0
  12. baselines/IRM2/test/Angels In Amplifiers - I'm Alright.json.gz +3 -0
  13. baselines/IRM2/test/Arise - Run Run Run.json.gz +3 -0
  14. baselines/IRM2/test/BKS - Bulldozer.json.gz +3 -0
  15. baselines/IRM2/test/BKS - Too Much.json.gz +3 -0
  16. baselines/IRM2/test/Ben Carrigan - We'll Talk About It All Tonight.json.gz +3 -0
  17. baselines/IRM2/test/Bobby Nobody - Stitch Up.json.gz +3 -0
  18. baselines/IRM2/test/Buitraker - Revo X.json.gz +3 -0
  19. baselines/IRM2/test/Carlos Gonzalez - A Place For Us.json.gz +3 -0
  20. baselines/IRM2/test/Cristina Vane - So Easy.json.gz +3 -0
  21. baselines/IRM2/test/Detsky Sad - Walkie Talkie.json.gz +3 -0
  22. baselines/IRM2/test/Enda Reilly - Cur An Long Ag Seol.json.gz +3 -0
  23. baselines/IRM2/test/Forkupines - Semantics.json.gz +3 -0
  24. baselines/IRM2/test/Georgia Wonder - Siren.json.gz +3 -0
  25. baselines/IRM2/test/Girls Under Glass - We Feel Alright.json.gz +3 -0
  26. baselines/IRM2/test/Hollow Ground - Ill Fate.json.gz +3 -0
  27. baselines/IRM2/test/James Elder & Mark M Thompson - The English Actor.json.gz +3 -0
  28. baselines/IRM2/test/Juliet's Rescue - Heartbeats.json.gz +3 -0
  29. baselines/IRM2/test/Little Chicago's Finest - My Own.json.gz +3 -0
  30. baselines/IRM2/test/Louis Cressy Band - Good Time.json.gz +3 -0
  31. baselines/IRM2/test/Lyndsey Ollard - Catching Up.json.gz +3 -0
  32. baselines/IRM2/test/M.E.R.C. Music - Knockout.json.gz +3 -0
  33. baselines/IRM2/test/Moosmusic - Big Dummy Shake.json.gz +3 -0
  34. baselines/IRM2/test/Motor Tapes - Shore.json.gz +3 -0
  35. baselines/IRM2/test/Mu - Too Bright.json.gz +3 -0
  36. baselines/IRM2/test/Nerve 9 - Pray For The Rain.json.gz +3 -0
  37. baselines/IRM2/test/PR - Happy Daze.json.gz +3 -0
  38. baselines/IRM2/test/PR - Oh No.json.gz +3 -0
  39. baselines/IRM2/test/Punkdisco - Oral Hygiene.json.gz +3 -0
  40. baselines/IRM2/test/Raft Monk - Tiring.json.gz +3 -0
  41. baselines/IRM2/test/Sambasevam Shanmugam - Kaathaadi.json.gz +3 -0
  42. baselines/IRM2/test/Secretariat - Borderline.json.gz +3 -0
  43. baselines/IRM2/test/Secretariat - Over The Top.json.gz +3 -0
  44. baselines/IRM2/test/Side Effects Project - Sing With Me.json.gz +3 -0
  45. baselines/IRM2/test/Signe Jakobsen - What Have You Done To Me.json.gz +3 -0
  46. baselines/IRM2/test/Skelpolu - Resurrection.json.gz +3 -0
  47. baselines/IRM2/test/Speak Softly - Broken Man.json.gz +3 -0
  48. baselines/IRM2/test/Speak Softly - Like Horses.json.gz +3 -0
  49. baselines/IRM2/test/The Doppler Shift - Atrophy.json.gz +3 -0
  50. baselines/IRM2/test/The Easton Ellises (Baumi) - SDRNR.json.gz +3 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
CODE_OF_CONDUCT.md ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to make participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies within all project spaces, and it also applies when
49
+ an individual is representing the project or its community in public spaces.
50
+ Examples of representing a project or community include using an official
51
+ project e-mail address, posting via an official social media account, or acting
52
+ as an appointed representative at an online or offline event. Representation of
53
+ a project may be further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at <opensource-conduct@fb.com>. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
CONTRIBUTING.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributing to Demucs
2
+
3
+ ## Pull Requests
4
+
5
+ In order to accept your pull request, we need you to submit a CLA. You only need
6
+ to do this once to work on any of Facebook's open source projects.
7
+
8
+ Complete your CLA here: <https://code.facebook.com/cla>
9
+
10
+ Demucs is the implementation of a research paper.
11
+ Therefore, we do not plan on accepting many pull requests for new features.
12
+ We certainly welcome them for bug fixes.
13
+
14
+
15
+ ## Issues
16
+
17
+ We use GitHub issues to track public bugs. Please ensure your description is
18
+ clear and has sufficient instructions to be able to reproduce the issue.
19
+
20
+
21
+ ## License
22
+ By contributing to this repository, you agree that your contributions will be licensed
23
+ under the LICENSE file in the root directory of this source tree.
Demucs.ipynb ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "colab_type": "text",
7
+ "id": "Be9yoh-ILfRr"
8
+ },
9
+ "source": [
10
+ "# [*Colab code for Demucs*](https://github.com/facebookresearch/demucs/)\n",
11
+ "\n",
12
+ "Original version by marlluslustosa **https://github.com/marlluslustosa/demucs/blob/master/Demucs.ipynb**\n",
13
+ "\n",
14
+ "However, now things are much simpler with Demucs v2, so this might not be so useful. There is now a Colab version:\n",
15
+ "https://colab.research.google.com/drive/1jCegIzLIuqqcM85uVs3WCeAJiSoYq3oh?usp=sharing"
16
+ ]
17
+ },
18
+ {
19
+ "cell_type": "code",
20
+ "execution_count": null,
21
+ "metadata": {
22
+ "colab": {
23
+ "base_uri": "https://localhost:8080/",
24
+ "height": 139
25
+ },
26
+ "colab_type": "code",
27
+ "executionInfo": {
28
+ "elapsed": 12277,
29
+ "status": "ok",
30
+ "timestamp": 1583778134659,
31
+ "user": {
32
+ "displayName": "Marllus Lustosa",
33
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgLl2RbW64ZyWz3Y8IBku0zhHCMnt7fz7fEl0LTdA=s64",
34
+ "userId": "14811735256675200480"
35
+ },
36
+ "user_tz": 180
37
+ },
38
+ "id": "kOjIPLlzhPfn",
39
+ "outputId": "c75f17ec-b576-4105-bc5b-c2ac9c1018a3"
40
+ },
41
+ "outputs": [],
42
+ "source": [
43
+ "!pip install demucs"
44
+ ]
45
+ },
46
+ {
47
+ "cell_type": "markdown",
48
+ "metadata": {
49
+ "colab_type": "text",
50
+ "id": "Y1BdlzOQi3y7"
51
+ },
52
+ "source": [
53
+ "\n",
54
+ "\n",
55
+ "---\n",
56
+ "\n",
57
+ "\n",
58
+ "# **Here begins the code for separating the audio source (model pretrained)**\n",
59
+ "###**- Upload your song to demucs/ folder and edit YOUR-SONG-PATH.mp3**\n",
60
+ "\n",
61
+ "\n",
62
+ "---\n",
63
+ "\n"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "metadata": {
70
+ "colab": {},
71
+ "colab_type": "code",
72
+ "id": "5lYOzKKCKAbJ"
73
+ },
74
+ "outputs": [],
75
+ "source": [
76
+ "!python3 -m demucs.separate test.mp3"
77
+ ]
78
+ },
79
+ {
80
+ "cell_type": "code",
81
+ "execution_count": null,
82
+ "metadata": {},
83
+ "outputs": [],
84
+ "source": []
85
+ }
86
+ ],
87
+ "metadata": {
88
+ "accelerator": "GPU",
89
+ "colab": {
90
+ "authorship_tag": "ABX9TyM9xpVr1M86NRcjtQ7g9tCx",
91
+ "collapsed_sections": [],
92
+ "name": "Demucs.ipynb",
93
+ "provenance": []
94
+ },
95
+ "kernelspec": {
96
+ "display_name": "Python 3",
97
+ "language": "python",
98
+ "name": "python3"
99
+ },
100
+ "language_info": {
101
+ "codemirror_mode": {
102
+ "name": "ipython",
103
+ "version": 3
104
+ },
105
+ "file_extension": ".py",
106
+ "mimetype": "text/x-python",
107
+ "name": "python",
108
+ "nbconvert_exporter": "python",
109
+ "pygments_lexer": "ipython3",
110
+ "version": "3.8.3"
111
+ }
112
+ },
113
+ "nbformat": 4,
114
+ "nbformat_minor": 1
115
+ }
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Facebook, Inc. and its affiliates.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
MANIFEST.in ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ include *.md
2
+ include LICENSE
3
+ include setup.cfg
4
+ incude demucs.png
5
+ include requirements.txt
6
+ recursive-include docs *.md
Makefile ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ default: tests
2
+
3
+ all: linter tests docs dist
4
+
5
+ linter:
6
+ flake8 demucs
7
+
8
+ tests:
9
+ python3 -m demucs.separate -n demucs_unittest test.mp3
10
+ python3 -m demucs.separate -n demucs_unittest --mp3 test.mp3
11
+
12
+ dist:
13
+ python3 setup.py sdist
14
+
15
+ clean:
16
+ rm -r dist build *.egg-info
17
+
18
+
19
+ .PHONY: linter tests dist
README.md CHANGED
@@ -1,13 +1,379 @@
1
- ---
2
- title: Demucs Playground
3
- emoji: 🌍
4
- colorFrom: green
5
- colorTo: yellow
6
- sdk: gradio
7
- sdk_version: 3.12.0
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Music Source Separation in the Waveform Domain
2
+
3
+ ![tests badge](https://github.com/facebookresearch/demucs/workflows/tests/badge.svg)
4
+ ![linter badge](https://github.com/facebookresearch/demucs/workflows/linter/badge.svg)
5
+
6
+ **Branch was rename to main**: Run `git pull && git checkout main` to switch to the new branch.
7
+
8
+ **Demucs was just updated!**: much better SDR, smaller models, more data augmentation and PyPI support.
9
+
10
+ **For the initial version of Demucs:** [Go this commit][original_demucs].
11
+ If you are experiencing issues and want the old Demucs back, please fill an issue, and then you can get back to the v1 with
12
+ `git checkout v1`.
13
+
14
+ We provide an implementation of Demucs and Conv-Tasnet for music source separation on the [MusDB][musdb] dataset.
15
+ They can separate drums, bass and vocals from the rest with state-of-the-art results, surpassing previous waveform or spectrogram based methods.
16
+ The architecture and results obtained are detailed in our paper
17
+ [Music Source Separation in the waveform domain][demucs_arxiv].
18
+
19
+ Demucs is based on U-Net convolutional architecture inspired by [Wave-U-Net][waveunet] and
20
+ [SING][sing], with GLUs, a BiLSTM between the encoder and decoder, specific initialization of weights
21
+ and transposed convolutions in the decoder.
22
+
23
+ [Conv-Tasnet](https://arxiv.org/abs/1809.07454)
24
+ is a separation model developed for speech which predicts a mask on a learnt over-complete linear representation
25
+ using a purely convolutional model with stride of 1 and dilated convolutional blocks.
26
+ We reused the code from the [kaituoxu/Conv-TasNet][tasnet]
27
+ repository and added support for multiple audio channels.
28
+
29
+
30
+ Demucs achieves a state-of-the-art SDR performance of 6.3 when trained only on MusDB.
31
+ Conv-Tasnet achieves an SDR of 5.7, to be compared with the best performing spectrogram domain model [D3Net][d3net]
32
+ with an average SDR of 6.
33
+ Unlike Conv-Tasnet, Demucs reacts positively to pitch/tempo shift augmentation (+0.5 SDR). However, Demucs
34
+ still suffers from leakage from other sources, in particular between the vocals and other sources, which is less of a problem
35
+ for Conv-Tasnet. When trained with 150 extra tracks, Demucs reaches an SDR of 6.8, and even surpasses the IRM oracle
36
+ for the bass source (7.6 against 7.1 for the oracle).
37
+ See [our paper][demucs_arxiv] Section 6 for more details or listen to our
38
+ [audio samples][audio] .
39
+
40
+ <p align="center">
41
+ <img src="./demucs.png" alt="Schema representing the structure of Demucs,
42
+ with a convolutional encoder, a BiLSTM, and a decoder based on transposed convolutions."
43
+ width="800px"></p>
44
+
45
+
46
+ ## Important news if you are already using Demucs
47
+
48
+ See the [release notes](./docs/release.md) for more details.
49
+
50
+ - 11/05/2021: Adding support for MusDB-HQ and arbitrary wav set, for the MDX challenge. For more information
51
+ on joining the challenge with Demucs see [the Demucs MDX instructions](docs/mdx.md)
52
+ - 28/04/2021: **Demucs v2**, with extra augmentation and DiffQ based quantization.
53
+ **EVERYTHING WILL BREAK**, please restart from scratch following the instructions hereafter.
54
+ This version also adds overlap between prediction frames, with linear transition from one to the next,
55
+ which should prevent sudden changes at frame boundaries. Also, Demucs is now on PyPI, so for separation
56
+ only, installation is as easy as `pip install demucs` :)
57
+ - 13/04/2020: **Demucs released under MIT**: We are happy to release Demucs under the MIT licence.
58
+ We hope that this will broaden the impact of this research to new applications.
59
+
60
+
61
+ ## Comparison with other models
62
+
63
+ An audio comparison of Demucs and Conv-Tasnet with other state-of-the-art methods such as [Wave-U-Net][waveunet], [OpenUnmix][openunmix] or
64
+ [MMDenseLSTM][mmdenselstm] is available on [the audio comparison page][audio].
65
+ We provide hereafter a summary of the different metrics presented in the paper.
66
+ You can also compare [Spleeter][spleeter], Open-Unmix, Demucs and Conv-Tasnet on one of my favorite
67
+ songs on our [soundcloud playlist][soundcloud].
68
+
69
+ ### Comparison of accuracy
70
+
71
+ `Overall SDR` is the mean of the SDR for each of the 4 sources, `MOS Quality` is a rating from 1 to 5
72
+ of the naturalness and absence of artifacts given by human listeners (5 = no artifacts), `MOS Contamination`
73
+ is a rating from 1 to 5 with 5 being zero contamination by other sources. We refer the reader to our [paper][demucs_arxiv], Section 5 and 6,
74
+ for more details.
75
+
76
+ | Model | Domain | Extra data? | Overall SDR | MOS Quality | MOS Contamination |
77
+ | ------------- |-------------| -----:|------:|----:|----:|
78
+ | [Open-Unmix][openunmix] | spectrogram | no | 5.3 | 3.0 | 3.3 |
79
+ | [D3Net][d3net] | spectrogram | no | 6.0 | - | - |
80
+ | [Wave-U-Net][waveunet] | waveform | no | 3.2 | - | - |
81
+ | Demucs (this) | waveform | no | **6.3** | **3.2** | 3.3 |
82
+ | Conv-Tasnet (this) | waveform | no | 5.7 | 2.9 | **3.4** |
83
+ | Demucs (this) | waveform | 150 songs | **6.8** | - | - |
84
+ | Conv-Tasnet (this) | waveform | 150 songs | 6.3 | - | - |
85
+ | [MMDenseLSTM][mmdenselstm] | spectrogram | 804 songs | 6.0 | - | - |
86
+ | [D3Net][d3net] | spectrogram | 1.5k songs | 6.7 | - | - |
87
+ | [Spleeter][spleeter] | spectrogram | 25k songs | 5.9 | - | - |
88
+
89
+
90
+
91
+ ## Requirements
92
+
93
+ You will need at least Python 3.7. See `requirements.txt` for requirements for separation only,
94
+ and `environment-[cpu|cuda].yml` if you want to train a new model.
95
+
96
+ ### For Windows users
97
+
98
+ Everytime you see `python3`, replace it with `python.exe`. You should always run commands from the
99
+ Anaconda console.
100
+
101
+ ### For musicians
102
+
103
+ If you just want to use Demucs to separate tracks, you can install it with
104
+
105
+ python3 -m pip -U install demucs
106
+
107
+ Advanced OS support are provided on the following page, **you must read the page for your OS before posting an issues**:
108
+ - **If you are using Windows:** [Windows support](docs/windows.md).
109
+ - **If you are using MAC OS X:** [Mac OS X support](docs/mac.md).
110
+ - **If you are using Linux:** [Linux support](docs/linux.md).
111
+
112
+ ### For machine learning scientists
113
+
114
+ If you have anaconda installed, you can run from the root of this repository:
115
+
116
+ conda env update -f environment-cpu.yml # if you don't have GPUs
117
+ conda env update -f environment-cuda.yml # if you have GPUs
118
+ conda activate demucs
119
+ pip install -e .
120
+
121
+ This will create a `demucs` environment with all the dependencies installed.
122
+
123
+
124
+ You will also need to install [soundstretch/soundtouch](https://www.surina.net/soundtouch/soundstretch.html): on Mac OSX you can do `brew install sound-touch`,
125
+ and on Ubuntu `sudo apt-get install soundstretch`. This is used for the
126
+ pitch/tempo augmentation.
127
+
128
+ ### Running in Docker
129
+
130
+ Thanks to @xserrat, there is now a Docker image definition ready for using Demucs. This can ensure all libraries are correctly installed without interfering with the host OS. See his repo [Docker Facebook Demucs](https://github.com/xserrat/docker-facebook-demucs) for more information.
131
+
132
+
133
+ ### Running from Colab
134
+
135
+ I made a Colab to easily separate track with Demucs. Note that
136
+ transfer speeds with Colab are a bit slow for large media files,
137
+ but it will allow you to use Demucs without installing anything.
138
+
139
+ [Demucs on Google Colab](https://colab.research.google.com/drive/1jCegIzLIuqqcM85uVs3WCeAJiSoYq3oh?usp=sharing)
140
+
141
+ ## Separating tracks
142
+
143
+ In order to try Demucs or Conv-Tasnet on your tracks, simply run from the root of this repository
144
+
145
+ ```bash
146
+ python3 -m demucs.separate PATH_TO_AUDIO_FILE_1 [PATH_TO_AUDIO_FILE_2 ...] # for Demucs
147
+ python3 -m demucs.separate --mp3 PATH_TO_AUDIO_FILE_1 --mp3-bitrate BITRATE # output files saved as MP3
148
+ python3 -m demucs.separate -n tasnet PATH_TO_AUDIO_FILE_1 ... # for Conv-Tasnet
149
+ ```
150
+
151
+ If you have a GPU, but you run out of memory, please add `-d cpu` to the command line. See the section hereafter for more details on the memory requirements for GPU acceleration.
152
+
153
+ Separated tracks are stored in the `separated/MODEL_NAME/TRACK_NAME` folder. There you will find four stereo wav files sampled at 44.1 kHz: `drums.wav`, `bass.wav`,
154
+ `other.wav`, `vocals.wav` (or `.mp3` if you used the `--mp3` option).
155
+
156
+ All audio formats supported by `torchaudio` can be processed (i.e. wav, mp3, flac, ogg/vorbis etc.).
157
+ Audio is resampled on the fly if necessary.
158
+ The output will be a wave file, either in int16 format or float32 (if `--float32` is passed).
159
+ You can pass `--mp3` to save as mp3 instead, and set the bitrate with `--mp3-bitrate` (default is 320kbps).
160
+
161
+ Other pre-trained models can be selected with the `-n` flag.
162
+ The list of pre-trained models is:
163
+ - `demucs`: Demucs trained on MusDB,
164
+ - `demucs_quantized`: Quantized Demucs with [diffq](https://github.com/facebookresearch/diffq),
165
+ this is much smaller (150MB instead of 1GB) and quality should be exactly the same. Let me know if you disagree.
166
+ As a result, this is the one used by default.
167
+ - `demucs_extra`: Demucs trained with extra training data,
168
+ - `demucs48_hq`: Demucs with 48 initial hidden channels, trained on [MusDB-HQ](https://zenodo.org/record/3338373),
169
+ used as a baseline for the [Music Demixing Challenge 2021](https://www.aicrowd.com/challenges/music-demixing-challenge-ismir-2021),
170
+ - `tasnet`: Conv-Tasnet trained on MusDB,
171
+ - `tasnet_extra`: Conv-Tasnet trained with extra training data.
172
+
173
+
174
+ The `--shifts=SHIFTS` performs multiple predictions with random shifts (a.k.a the *shift trick*) of the input and average them. This makes prediction `SHIFTS` times
175
+ slower but improves the accuracy of Demucs by 0.2 points of SDR.
176
+ It has limited impact on Conv-Tasnet as the model is by nature almost time equivariant.
177
+ The value of 10 was used on the original paper, although 5 yields mostly the same gain.
178
+ It is deactivated by default but it does make vocals a bit smoother.
179
+
180
+ The `--overlap` option controls the amount of overlap between prediction windows (for Demucs one window is 10 seconds).
181
+ Default is 0.25 (i.e. 25%) which is probably fine.
182
+
183
+
184
+ ### Memory requirements for GPU acceleration
185
+
186
+ If you want to use GPU acceleration, you will need at least 8GB of RAM on your GPU for `demucs` and 4GB for `tasnet`. Sorry, the code for demucs is not super optimized for memory! If you do not have enough memory on your GPU, simply add `-d cpu` to the command line to use the CPU. With Demucs, processing time should be roughly equal to the duration of the track.
187
+
188
+
189
+ ## Examining the results from the paper experiments
190
+
191
+ The metrics for our experiments are stored in the `results` folder. In particular
192
+ `museval` json evaluations are stored in `results/evals/EXPERIMENT NAME/results`.
193
+ You can aggregate and display the results using
194
+ ```bash
195
+ python3 valid_table.py -p # show valid loss, aggregated with multiple random seeds
196
+ python3 result_table.py -p # show SDR on test set, aggregated with multiple random seeds
197
+ python3 result_table.py -p SIR # also SAR, ISR, show other metrics
198
+ ```
199
+ The `std` column shows the standard deviation divided by the square root of the number of runs.
200
+
201
+ ## Training Demucs and evaluating on the MusDB dataset
202
+
203
+ If you want to train Demucs from scratch, you will need a copy of the MusDB dataset.
204
+ It can be obtained on the [MusDB website][musdb].
205
+ To start training on a single GPU or CPU, use:
206
+ ```bash
207
+ python3 -m demucs -b 4 --musdb MUSDB_PATH # Demucs
208
+ python3 -m demucs -b 4 --musdb MUSDB_PATH --tasnet --samples=80000 --split_valid # Conv-Tasnet
209
+ ```
210
+ The `-b 4` flag will set the batch size to 4. The default is 4 and will crash on a single GPU.
211
+ Demucs was trained on 8 V100 with 32GB of RAM.
212
+ The default parameters (batch size, number of channels etc)
213
+ might not be suitable for 16GB GPUs.
214
+ To train on all available GPUs, use:
215
+ ```bash
216
+ python3 run.py --musdb MUSDB_PATH [EXTRA_FLAGS]
217
+ ```
218
+
219
+ This will launch one process per GPU and report the output of the first one. When interrupting
220
+ such a run, it is possible some of the children processes are not killed properly, be mindful of that.
221
+ If you want to use only some of the available GPUs, export the `CUDA_VISIBLE_DEVICES` variable to
222
+ select those.
223
+
224
+ To see all the possible options, use `python3 -m demucs --help`.
225
+
226
+
227
+ ### MusDB HQ
228
+
229
+ To train on MusDB HQ, use the following flags:
230
+
231
+ ```bash
232
+ python3 -m demucs -b 4 --musdb MUSDB_HQ_PATH --is_wav [...]
233
+ ```
234
+
235
+ ### Custom wav dataset
236
+
237
+ You can trained on a custom wav dataset using the following command.
238
+ At the moment, you still need to pass the MusDB path for evaluation, and the model
239
+ must use the standard sources (bass, drums, other, vocals). However, it should be relatively
240
+ easy to fork the code to support different patterns.
241
+
242
+ ```bash
243
+ python3 -m demucs -b 4 --wav PATH_TO_WAV_DATASET [...]
244
+ ```
245
+
246
+ The folder `PATH_TO_WAV_DATASET` should contain two sub-directories : `train` and `valid`. Each of those
247
+ should contain one folder per track. Each track folder must contain one file for each source (`drums.wav`, `bass.wav`, `other.wav`, `vocals.wav`) and one file for the mixture (`mixture.wav`).
248
+
249
+ By default, the custom wav dataset will replace MusDB. To concatenate it with MusDB, pass `--concat` (if you are using musdbhq, dont forget to pass `--is_wav`).
250
+
251
+ ### Fine tuning
252
+
253
+ You can fine tune from one of the pre-trained models listed in the [Separating tracks Section](#separating-tracks)
254
+ by passing the `--init=PRETRAINED_NAME`, i.e. for Demucs or ConvTasnet:
255
+
256
+ ```bash
257
+ python3 -m demucs -b 4 --musdb MUSDB_PATH --init demucs # Demucs
258
+ python3 -m demucs -b 4 --musdb MUSDB_PATH --tasnet --samples=80000 --split_valid --init tasnet # Conv-Tasnet
259
+ ```
260
+
261
+ ### About checkpointing
262
+
263
+ Demucs will automatically generate an experiment name from the command line flags you provided.
264
+ It will checkpoint after every epoch. If a checkpoint already exist for the combination of flags
265
+ you provided, it will be automatically used. In order to ignore/delete a previous checkpoint,
266
+ run with the `-R` flag.
267
+ The optimizer state, the latest model and the best model on valid are stored. At the end of each
268
+ epoch, the checkpoint will erase the one from the previous epoch.
269
+ By default, checkpoints are stored in the `./checkpoints` folder. This can be changed using the
270
+ `--checkpoints CHECKPOINT_FOLDER` flag.
271
+
272
+ Not all options will impact the name of the experiment. For instance `--workers` is not
273
+ shown in the name, therefore, changing this parameter will not impact the checkpoint file
274
+ used. Refer to [parser.py](demucs/parser.py) for more details.
275
+
276
+
277
+ ### Test set evaluations
278
+
279
+ Test set evaluations computed with [museval][museval] will be stored under
280
+ `evals/EXPERIMENT NAME/results`. The experiment name
281
+ is the first thing printed when running `python3 run.py` or `python3 -m demucs`. If you used
282
+ the flag `--save`, there will also be a folder `evals/EXPERIMENT NAME/wavs` containing
283
+ all the extracted waveforms.
284
+
285
+
286
+ #### Running on a cluster
287
+
288
+ If you have a cluster available with Slurm, you can set the `run_slurm.py` as the target of a
289
+ slurm job, using as many nodes as you want and a single task per node. `run_slurm.py` will
290
+ create one process per GPU and run in a distributed manner. Multinode training is supported.
291
+
292
+ ### Extracting Raw audio for faster loading
293
+
294
+ We observed that loading from compressed mp4 audio lead to unreliable speed, sometimes reducing by
295
+ a factor of 2 the number of iterations per second. It is possible to extract all data
296
+ to raw PCM f32e format. If you wish to store the raw data under `RAW_PATH`, run the following
297
+ command first:
298
+
299
+ ```bash
300
+ python3 -m demucs.raw [--workers=10] MUSDB_PATH RAW_PATH
301
+ ```
302
+
303
+ You can then train using the `--raw RAW_PATH` flag, for instance:
304
+ ```bash
305
+ python3 run.py --raw RAW_PATH --musdb MUSDB_PATH
306
+ ```
307
+ You still need to provide the path to the MusDB dataset as we always load the test set
308
+ from the original MusDB.
309
+
310
+
311
+ ### Results reproduction
312
+ To reproduce the performance of the main Demucs model in our paper:
313
+ ```bash
314
+ # Extract raw waveforms. This is optional
315
+ python3 -m demucs.data MUSDB_PATH RAW_PATH
316
+ export DEMUCS_RAW=RAW_PATH
317
+ # Train models with default parameters and multiple seeds
318
+ python3 run.py --seed 42 # for Demucs
319
+ python3 run.py --seed 42 --tasnet --X=10 --samples=80000 --epochs=180 --split_valid # for Conv-Tasnet
320
+ # Repeat for --seed = 43, 44, 45 and 46
321
+ ```
322
+
323
+ You can visualize the results aggregated on multiple seeds using
324
+ ```bash
325
+ python3 valid_table.py # compare validation losses
326
+ python3 result_table.py # compare test SDR
327
+ python3 result_table.py SIR # compare test SIR, also available ISR, and SAR
328
+ ```
329
+
330
+ You can look at our exploration file [dora.py](dora.py) to see the exact flags
331
+ for all experiments (grid search and ablation study). If you have a Slurm cluster,
332
+ you can also try adapting it to run on your own.
333
+
334
+
335
+ ### Environment variables
336
+
337
+ If you do not want to always specify the path to MUSDB, you can export the following variables:
338
+ ```bash
339
+ export DEMUCS_MUSDB=PATH TO MUSDB
340
+ # Optionally, if you extracted raw pcm data
341
+ # export DEMUCS_RAW=PATH TO RAW PCM
342
+ ```
343
+
344
+ ## How to cite
345
+
346
+ ```
347
+ @article{defossez2019music,
348
+ title={Music Source Separation in the Waveform Domain},
349
+ author={D{\'e}fossez, Alexandre and Usunier, Nicolas and Bottou, L{\'e}on and Bach, Francis},
350
+ journal={arXiv preprint arXiv:1911.13254},
351
+ year={2019}
352
+ }
353
+ ```
354
+
355
+ ## License
356
+
357
+ Demucs is released under the MIT license as found in the [LICENSE](LICENSE) file.
358
+
359
+ The file `demucs/tasnet.py` is adapted from the [kaituoxu/Conv-TasNet][tasnet] repository.
360
+ It was originally released under the MIT License updated to support multiple audio channels.
361
+
362
+
363
+ [nsynth]: https://magenta.tensorflow.org/datasets/nsynth
364
+ [sing_nips]: https://research.fb.com/publications/sing-symbol-to-instrument-neural-generator
365
+ [sing]: https://github.com/facebookresearch/SING
366
+ [waveunet]: https://github.com/f90/Wave-U-Net
367
+ [musdb]: https://sigsep.github.io/datasets/musdb.html
368
+ [museval]: https://github.com/sigsep/sigsep-mus-eval/
369
+ [openunmix]: https://github.com/sigsep/open-unmix-pytorch
370
+ [mmdenselstm]: https://arxiv.org/abs/1805.02410
371
+ [demucs_arxiv]: https://hal.archives-ouvertes.fr/hal-02379796/document
372
+ [musevalpth]: museval_torch.py
373
+ [tasnet]: https://github.com/kaituoxu/Conv-TasNet
374
+ [audio]: https://ai.honu.io/papers/demucs/index.html
375
+ [spleeter]: https://github.com/deezer/spleeter
376
+ [soundcloud]: https://soundcloud.com/voyageri/sets/source-separation-in-the-waveform-domain
377
+ [original_demucs]: https://github.com/facebookresearch/demucs/tree/dcee007a350467abc3295dfe267034460f9ffa4e
378
+ [diffq]: https://github.com/facebookresearch/diffq
379
+ [d3net]: https://arxiv.org/abs/2010.01733
baselines/.DS_Store ADDED
Binary file (6.15 kB). View file
 
baselines/IRM2/test/AM Contra - Heart Peripheral.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a1e79ff415009526e480beba3666e14b163fe33c23dab4040e2077e25c61bbe
3
+ size 26828
baselines/IRM2/test/Al James - Schoolboy Facination.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8caae5351b7dd0bc7fce2ee4cc915e291ed4636709dfbaf19962aee0f0a618ab
3
+ size 24865
baselines/IRM2/test/Angels In Amplifiers - I'm Alright.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed9d8a341ceb370fa8e8b7cc6f336def7efa00941edac1cb834f573fd5c82253
3
+ size 23052
baselines/IRM2/test/Arise - Run Run Run.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9066cfe82dc69614fae9338dcfdef5a65f7e2ebdb7dadadb6d27df321d6c3005
3
+ size 25900
baselines/IRM2/test/BKS - Bulldozer.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a54943bbd84ca3474a1bf2985d5c34796b1eebe8291f9d84807b1b81695cf24
3
+ size 42911
baselines/IRM2/test/BKS - Too Much.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:57c5c90e3cbb955ce0210cc6d5aaad3af84ff23493aea10e6c30f189fc364c87
3
+ size 21123
baselines/IRM2/test/Ben Carrigan - We'll Talk About It All Tonight.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed5db465dd93085a257b3044c55c2381ffd60845067ed47f0d6ad6d9b1061d10
3
+ size 20579
baselines/IRM2/test/Bobby Nobody - Stitch Up.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:74f77a2bf52249b78c23a9be577de79d9168d95cf00fb3a674468ec35342f5ba
3
+ size 23353
baselines/IRM2/test/Buitraker - Revo X.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:feee80b8fa70d36eb2ef8a7de45c087db7cec4b6b0145218d14a4be99ed9f785
3
+ size 28203
baselines/IRM2/test/Carlos Gonzalez - A Place For Us.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3aaadf03103b92715015653ec7d5af59db586dc8d45c4ced2b2ef5e4db4f8e83
3
+ size 31961
baselines/IRM2/test/Cristina Vane - So Easy.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8470eebddeb221bf2702c162cc7f19c2d5e7f8eb14d6520ad1e060165c7773b6
3
+ size 28275
baselines/IRM2/test/Detsky Sad - Walkie Talkie.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf8778f15c4ad7bb3fa30428ca2d780be40b22f3268227d01e5ae803afda180c
3
+ size 11024
baselines/IRM2/test/Enda Reilly - Cur An Long Ag Seol.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:14e7d069a2840224a8876fdc7f328ca52a865e6540a2939c3c2aef0ccd6fe7df
3
+ size 21139
baselines/IRM2/test/Forkupines - Semantics.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba47a499b526cde808fbb10ca2858886c4606f1bccee921ae54721091573a80f
3
+ size 21237
baselines/IRM2/test/Georgia Wonder - Siren.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cca85c851447e94539bfdefe0b00a6fcb4746e34197058b2dc8b4feb46b193a1
3
+ size 36791
baselines/IRM2/test/Girls Under Glass - We Feel Alright.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a7e24e0628f44ee1cc774e2c454ac4cea0a9c63064348af6e33225505c2f1d2
3
+ size 21935
baselines/IRM2/test/Hollow Ground - Ill Fate.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f37c5bc36becaed3d9649b36e6d68b8f4a86960b4103fcc2f5710fa772dae37
3
+ size 12330
baselines/IRM2/test/James Elder & Mark M Thompson - The English Actor.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:09faaffbfd9825a3104c935ac27da722700c895f1c5c095b6f9570ed551a189a
3
+ size 20687
baselines/IRM2/test/Juliet's Rescue - Heartbeats.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a5ec942c2019fabba64dbbcad131b7ac986f126d87fdb9ebbd3c8d139217d158
3
+ size 27498
baselines/IRM2/test/Little Chicago's Finest - My Own.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdaf06d216ad224f0c78ca9163f190311157718618e17e462bd781d1b36c3e25
3
+ size 31610
baselines/IRM2/test/Louis Cressy Band - Good Time.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f7191c053ebc148d9ca86e6583cb0ecafaa773e4e0107a5d7c0915bab034c03e
3
+ size 21264
baselines/IRM2/test/Lyndsey Ollard - Catching Up.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a54bda98c9b061c4c994b173df4b1c895de56475484cb29973e2a86c5133699b
3
+ size 25709
baselines/IRM2/test/M.E.R.C. Music - Knockout.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1e81ed157dec77de057bbb712ad78bf574305d8d2ef4d24e84f2a8ca69ce88ee
3
+ size 26605
baselines/IRM2/test/Moosmusic - Big Dummy Shake.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:164e3f93976f698750757c21dd5c77e932c90b7f5cbccae6c44a976abc86ff86
3
+ size 22563
baselines/IRM2/test/Motor Tapes - Shore.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1938098d0212e9afdff2a0371887b66842718fdca141ce9c017ceadc9e2ef822
3
+ size 25089
baselines/IRM2/test/Mu - Too Bright.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:68ca54ac8985fbad1c47137ced2e302831bb9c5b35ddb2c6c45ec4f8848ea3bf
3
+ size 22522
baselines/IRM2/test/Nerve 9 - Pray For The Rain.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:829f8efcda9469b277961892dff22d4b569a3e57f7cc29bc773e686d9a23455b
3
+ size 32881
baselines/IRM2/test/PR - Happy Daze.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0d41b2eb0aff25e1e1ba1e884a50257bfb1e87905bc396a2cd2cf6eda0f5e7d
3
+ size 21052
baselines/IRM2/test/PR - Oh No.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd6a60a64165c2f4f427f041c6955a18776858201afc293c9eb50f92b82369bf
3
+ size 9804
baselines/IRM2/test/Punkdisco - Oral Hygiene.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4186d9e9b295ffc6ef41e39534d1109d19b0182cb92288b7a7abdca8afb1aaff
3
+ size 19114
baselines/IRM2/test/Raft Monk - Tiring.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:535a886ce8cdf756f489fc36cf7d73298d09839e241121f5039046c96be1d20b
3
+ size 23263
baselines/IRM2/test/Sambasevam Shanmugam - Kaathaadi.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:648a338396f76e002c61f3bd10323cebc155a7675e630ac6dbee8335fcdf2828
3
+ size 23183
baselines/IRM2/test/Secretariat - Borderline.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ac1a105faf4ee9bb3ec09273d21aeadf5de7752cb0eb0ca292f673210d77bfd3
3
+ size 27299
baselines/IRM2/test/Secretariat - Over The Top.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e1a432abaa8b5e5bf6fdc6df892706e047dc5bd96e2e2da874dca5f14684441
3
+ size 21642
baselines/IRM2/test/Side Effects Project - Sing With Me.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:594dc701ab7ce759ff1006e8947688f1609e9bc87a18aba638b83432d9e2d32e
3
+ size 28539
baselines/IRM2/test/Signe Jakobsen - What Have You Done To Me.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c9347bd26e385f06a0f7350534a7f205245765e6d3eb145922cdb4cf3de4f0f7
3
+ size 22512
baselines/IRM2/test/Skelpolu - Resurrection.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:494b2d48e6d33b2167f542cc1b63c45377514f126245fd634d270f34495f8251
3
+ size 14837
baselines/IRM2/test/Speak Softly - Broken Man.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8e049a84e184aed110458ca26ac929ddc79caef637dfa8decdcb4d438afb4232
3
+ size 25457
baselines/IRM2/test/Speak Softly - Like Horses.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a29311792a22e9e15c970d8e9a84932e54ed969d0efc2dcd8ba188e409924a08
3
+ size 27657
baselines/IRM2/test/The Doppler Shift - Atrophy.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3beaba378e7e0c92d1204fcd7712aeecc09c8ee63c3e56b45e9357d64ae426a1
3
+ size 42460
baselines/IRM2/test/The Easton Ellises (Baumi) - SDRNR.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d6b5f83f1984d9440a4e5ceb5c68d80dc84d887861da24a9dc96017aa2a399f5
3
+ size 29888