From 322533c58fe85b139d159dabc07894c086e83600 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Wed, 1 Mar 2017 21:00:17 -0500 Subject: [PATCH 01/10] updating documentation build --- docs/changes.rst | 3 -- docs/conf.py | 36 +++++-------- docs/examples.rst | 104 +++++++++++++++++++++++++++++++++++ docs/index.rst | 120 ++++++----------------------------------- muda/deformers/util.py | 4 +- 5 files changed, 135 insertions(+), 132 deletions(-) create mode 100644 docs/examples.rst diff --git a/docs/changes.rst b/docs/changes.rst index fca6241..79670d3 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -1,8 +1,5 @@ .. _changes: -Changelog -========= - v0.1.2 ------ This ia a minor bug-fix revision. diff --git a/docs/conf.py b/docs/conf.py index ee8ab9f..52e6ee3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -58,24 +58,18 @@ # Mock the dependencies import six +import mock -if six.PY3: - from unittest.mock import MagicMock -else: - from mock import Mock as MagicMock +MOCK_MODULES = ['librosa', + 'jsonpickle', + 'soundfile', + 'jams', + 'numpy', + 'numpy.random', + 'pyrubberband', + 'pandas'] -class Mock(MagicMock): - @classmethod - def __getattr__(cls, name): - return Mock() - - -MOCK_MODULES = ['librosa', 'librosa.util', 'librosa.output', - 'jsonpickle', 'soundfile', 'jams', - 'numpy', 'numpy.random', - 'pyrubberband', 'pandas'] - -sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) +sys.modules.update((mod_name, mock.Mock()) for mod_name in MOCK_MODULES) # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -292,10 +286,8 @@ def __getattr__(cls, name): # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'python': ('http://docs.python.org/2', None), - 'numpy': ('http://docs.scipy.org/doc/numpy/', None), - 'np': ('http://docs.scipy.org/doc/numpy/', None), - 'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None), - 'sklearn': ('http://scikit-learn.org/stable/', None), - 'librosa': ('http://bmcfee.github.io/librosa', None), +intersphinx_mapping = {'python': ('https://docs.python.org/2', None), + 'numpy': ('https://docs.scipy.org/doc/numpy/', None), + 'scipy': ('https://docs.scipy.org/doc/scipy/reference/', None), + 'librosa': ('http://librosa.github.io/librosa', None), 'jams': ('http://pythonhosted.org/jams', None)} diff --git a/docs/examples.rst b/docs/examples.rst new file mode 100644 index 0000000..1ad1d3d --- /dev/null +++ b/docs/examples.rst @@ -0,0 +1,104 @@ +.. _examples: +This section gives a quick introduction to using `muda` through example applications. + +Loading data +^^^^^^^^^^^^ + +In `muda`, all data pertaining to a track is contained within a `jams` object. +Before processing any tracks with `muda`, the jams object must be prepared using one of +`muda.load_jam_audio` or `muda.jam_pack`. These functions prepare the `jams` object to +contain (deformed) audio and store the deformation history objects. + + +.. code-block:: python + + >>> # Loading data from disk + >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') + >>> # Ready to go! + + >>> # Loading audio form disk with an existing jams + >>> j_orig = jams.load('existing_jams_file.jams') + >>> j_orig = muda.load_jam_audio(existing_jams, 'orig.ogg') + >>> # Ready to go! + + >>> # Loading in-memory audio with an existing jams + >>> j_orig = jams.load('existing_jams_file.jams') + >>> j_orig = muda.jam_pack(existing_jams, _audio=dict(y=y, sr=sr)) + >>> # Ready to go! + + +Applying a deformation +^^^^^^^^^^^^^^^^^^^^^^ +Once the data has been prepared, we are ready to start applying deformations. +This example uses a simple linear pitch shift deformer to generate five perturbations of +an input. Each deformed example is then saved to disk. + +.. code-block:: python + + >>> pitch = muda.deformers.LinearPitchShift(n_samples=5, lower=-1, upper=1) + >>> for i, jam_out in enumerate(pitch.transform(j_orig)): + muda.save('output_{:02d}.ogg'.format(i), + ... 'output_{:02d}.jams'.format(i), + ... jam_out) + +The deformed audio data can be accessed directly in the dictionary +``jam_out.sandbox.muda._audio``. Note that a full history of applied transformations +is recorded within ``jam_out.sandbox.muda`` under the ``state`` and ``history`` objects. + +Pipelines +^^^^^^^^^ + +The following example constructs a two-stage deformation pipeline. The first stage +applies random pitch shifts, while the second stage applies random time stretches. +The pipeline therefore generates 25 examples from the input `j_orig`. + +.. code-block:: python + + >>> # Load an example audio file with annotation + >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') + >>> # Construct a deformation pipeline + >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) + >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) + >>> pipeline = muda.Pipeline(steps=[('pitch_shift', pitch_shift), + ... ('time_stretch', time_stretch)]) + >>> for j_new in pipeline.transform(j_orig): + process(j_new) + +Bypass operators +^^^^^^^^^^^^^^^^ +When using pipelines, it is sometimes beneficial to allow a stage to be skipped, so that +the input to one stage can be fed through to the next stage without intermediate +processing. This is easily accomplished with `Bypass` objects, which first emit the +input unchanged, and then apply the contained deformation as usual. This is demonstrated +in the following example, which is similar to the pipeline example, except that it +guarantees that each stage is applied to `j_orig` in isolation, as well as in +composition. It therefore generates 36 examples (including `j_orig` itself as the first +output). + +.. code-block:: python + + >>> # Load an example audio file with annotation + >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') + >>> # Construct a deformation pipeline + >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) + >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) + >>> pipeline = muda.Pipeline(steps=[('pitch_shift', muda.deformers.Bypass(pitch_shift)), + ... ('time_stretch', muda.deformers.Bypass(time_stretch))]) + >>> for j_new in pipeline.transform(j_orig): + process(j_new) + + +Saving deformations +^^^^^^^^^^^^^^^^^^^ +All deformation objects, including bypasses and pipelines, can be serialized to +plain-text (JSON) format, saved to disk, and reconstructed later. +This is demonstrated in the following example. + +.. code-block:: python + + >>> pipe_str = muda.serialize(pipeline) + >>> new_pipe = muda.deserialize(pipe_str) + >>> for j_new in new_pipe.transform(j_orig): + process(j_new) + + diff --git a/docs/index.rst b/docs/index.rst index b742f65..e2b5c15 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,6 +2,8 @@ Musical Data Augmentation ========================= +.. toctree:: + :maxdepth: 3 The `muda` package implements annotation-aware musical data augmentation, as described in the `muda paper `_ [1]_. @@ -33,110 +35,6 @@ After applying deformations, the modified audio and annotations can be stored to Alternatively, because transformations are generators, results can be processed online by a stochastic learning algorithm. -Example usage -------------- -This section gives a quick introduction to using `muda` through example applications. - -Loading data -^^^^^^^^^^^^ - -In `muda`, all data pertaining to a track is contained within a `jams` object. -Before processing any tracks with `muda`, the jams object must be prepared using one of -`muda.load_jam_audio` or `muda.jam_pack`. These functions prepare the `jams` object to -contain (deformed) audio and store the deformation history objects. - - -.. code-block:: python - - >>> # Loading data from disk - >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') - >>> # Ready to go! - - >>> # Loading audio form disk with an existing jams - >>> j_orig = jams.load('existing_jams_file.jams') - >>> j_orig = muda.load_jam_audio(existing_jams, 'orig.ogg') - >>> # Ready to go! - - >>> # Loading in-memory audio with an existing jams - >>> j_orig = jams.load('existing_jams_file.jams') - >>> j_orig = muda.jam_pack(existing_jams, _audio=dict(y=y, sr=sr)) - >>> # Ready to go! - - -Applying a deformation -^^^^^^^^^^^^^^^^^^^^^^ -Once the data has been prepared, we are ready to start applying deformations. -This example uses a simple linear pitch shift deformer to generate five perturbations of -an input. Each deformed example is then saved to disk. - -.. code-block:: python - - >>> pitch = muda.deformers.LinearPitchShift(n_samples=5, lower=-1, upper=1) - >>> for i, jam_out in enumerate(pitch.transform(j_orig)): - muda.save('output_{:02d}.ogg'.format(i), - ... 'output_{:02d}.jams'.format(i), - ... jam_out) - -The deformed audio data can be accessed directly in the dictionary -``jam_out.sandbox.muda._audio``. Note that a full history of applied transformations -is recorded within ``jam_out.sandbox.muda`` under the ``state`` and ``history`` objects. - -Pipelines -^^^^^^^^^ - -The following example constructs a two-stage deformation pipeline. The first stage -applies random pitch shifts, while the second stage applies random time stretches. -The pipeline therefore generates 25 examples from the input `j_orig`. - -.. code-block:: python - - >>> # Load an example audio file with annotation - >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') - >>> # Construct a deformation pipeline - >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) - >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) - >>> pipeline = muda.Pipeline(steps=[('pitch_shift', pitch_shift), - ... ('time_stretch', time_stretch)]) - >>> for j_new in pipeline.transform(j_orig): - process(j_new) - -Bypass operators -^^^^^^^^^^^^^^^^ -When using pipelines, it is sometimes beneficial to allow a stage to be skipped, so that -the input to one stage can be fed through to the next stage without intermediate -processing. This is easily accomplished with `Bypass` objects, which first emit the -input unchanged, and then apply the contained deformation as usual. This is demonstrated -in the following example, which is similar to the pipeline example, except that it -guarantees that each stage is applied to `j_orig` in isolation, as well as in -composition. It therefore generates 36 examples (including `j_orig` itself as the first -output). - -.. code-block:: python - - >>> # Load an example audio file with annotation - >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') - >>> # Construct a deformation pipeline - >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) - >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) - >>> pipeline = muda.Pipeline(steps=[('pitch_shift', muda.deformers.Bypass(pitch_shift)), - ... ('time_stretch', muda.deformers.Bypass(time_stretch))]) - >>> for j_new in pipeline.transform(j_orig): - process(j_new) - - -Saving deformations -^^^^^^^^^^^^^^^^^^^ -All deformation objects, including bypasses and pipelines, can be serialized to -plain-text (JSON) format, saved to disk, and reconstructed later. -This is demonstrated in the following example. - -.. code-block:: python - - >>> pipe_str = muda.serialize(pipeline) - >>> new_pipe = muda.deserialize(pipe_str) - >>> for j_new in new_pipe.transform(j_orig): - process(j_new) - Requirements ------------ @@ -155,15 +53,27 @@ separately. * sox * rubberband-cli +Examples +-------- +.. toctree:: + :maxdepth: 2 + + examples + API Reference ------------- .. toctree:: :maxdepth: 3 - muda core deformers + +Release notes +------------- +.. toctree:: + :maxdepth:: 1 + changes Contribute diff --git a/muda/deformers/util.py b/muda/deformers/util.py index 8bc663a..a2a87ca 100644 --- a/muda/deformers/util.py +++ b/muda/deformers/util.py @@ -45,8 +45,8 @@ def transform(self, jam): jam : pyjams.JAMS A muda-enabled JAMS object - Generates - --------- + Yields + ------ jam_out : pyjams.JAMS iterator The first result is `jam` (unmodified), by reference All subsequent results are generated by `transformer` From 5b29d2943f139d0e71831b7c6bd63bd952307c57 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Wed, 1 Mar 2017 21:05:39 -0500 Subject: [PATCH 02/10] documentation formatting --- docs/changes.rst | 3 +++ docs/examples.rst | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/docs/changes.rst b/docs/changes.rst index 79670d3..425c540 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -1,5 +1,8 @@ .. _changes: +Release notes +============= + v0.1.2 ------ This ia a minor bug-fix revision. diff --git a/docs/examples.rst b/docs/examples.rst index 1ad1d3d..07f7cd5 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -1,4 +1,8 @@ .. _examples: + +Example usage +============= + This section gives a quick introduction to using `muda` through example applications. Loading data From c8c7b7d944c91d99d9fff576b1596272d31489f4 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Wed, 1 Mar 2017 21:23:11 -0500 Subject: [PATCH 03/10] expanding documentation --- docs/examples.rst | 55 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 07f7cd5..15448aa 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -20,12 +20,12 @@ contain (deformed) audio and store the deformation history objects. >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') >>> # Ready to go! - >>> # Loading audio form disk with an existing jams + >>> # Loading audio from disk with an existing jams >>> j_orig = jams.load('existing_jams_file.jams') >>> j_orig = muda.load_jam_audio(existing_jams, 'orig.ogg') >>> # Ready to go! - >>> # Loading in-memory audio with an existing jams + >>> # Loading in-memory audio (y, sr) with an existing jams >>> j_orig = jams.load('existing_jams_file.jams') >>> j_orig = muda.jam_pack(existing_jams, _audio=dict(y=y, sr=sr)) >>> # Ready to go! @@ -60,14 +60,49 @@ The pipeline therefore generates 25 examples from the input `j_orig`. >>> # Load an example audio file with annotation >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') + >>> # Construct a deformation pipeline >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) >>> pipeline = muda.Pipeline(steps=[('pitch_shift', pitch_shift), ... ('time_stretch', time_stretch)]) + >>> for j_new in pipeline.transform(j_orig): process(j_new) +Unions +^^^^^^ + +`Union` operators are similar to `Pipelines`, in that they allow multiple deformers to be +combined as a single object that generates a sequence of deformations. +The difference between `Union` and `Pipeline` is that a pipeline composes deformations +together, so that a single output is the result of multiple stages of processing; +a union only applies one deformation at a time to produce a single output. + +The following example is similar to the pipeline example above: + +.. code-block:: python + + >>> # Load an example audio file with annotation + >>> j_orig = muda.load_jam_audio('orig.jams', 'orig.ogg') + >>> # Construct a deformation pipeline + >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) + >>> time_stretch = muda.deformers.RandomTimeStretch(n_samples=5) + >>> union = muda.Union(steps=[('pitch_shift', pitch_shift), + ... ('time_stretch', time_stretch)]) + >>> for j_new in union.transform(j_orig): + process(j_new) + +Each of the resulting `j_new` objects produced by the `union` has had either +its pitch shifted by the `pitch_shift` object or its time stretched by the +`time_stretch` object, but not both. + +Unions apply deformations in a round-robin schedule, so that the first output +is produced by the first deformer, the second output is produced by the second +deformer, and so on, until the list of deformers is exhausted and the first deformer +produces its second output. + + Bypass operators ^^^^^^^^^^^^^^^^ When using pipelines, it is sometimes beneficial to allow a stage to be skipped, so that @@ -100,9 +135,23 @@ This is demonstrated in the following example. .. code-block:: python + >>> # Encode an existing pitch shift deformation object + >>> pitch_shift = muda.deformers.RandomPitchShift(n_samples=5) + >>> ps_str = muda.serialize(pitch_shift) + >>> print(ps_str) + {"params": {"n_samples": 5, "mean": 0.0, "sigma": 1.0}, + "__class__": {"py/type": "muda.deformers.pitch.RandomPitchShift"}} + + >>> # Reconstruct the pitch shifter from its string encoding + >>> ps2 = muda.deserialize(ps_str) + + >>> # Encode a full pipeline as a string >>> pipe_str = muda.serialize(pipeline) + + >>> # Decode the string to reconstruct a new pipeline object >>> new_pipe = muda.deserialize(pipe_str) + + >>> # Process jams with the new pipeline >>> for j_new in new_pipe.transform(j_orig): process(j_new) - From 602d623f2173ea941b694c1a28bca80d70ea7a3e Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Wed, 1 Mar 2017 21:25:51 -0500 Subject: [PATCH 04/10] expanding documentation --- docs/examples.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/examples.rst b/docs/examples.rst index 15448aa..20b61cd 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -41,7 +41,7 @@ an input. Each deformed example is then saved to disk. >>> pitch = muda.deformers.LinearPitchShift(n_samples=5, lower=-1, upper=1) >>> for i, jam_out in enumerate(pitch.transform(j_orig)): - muda.save('output_{:02d}.ogg'.format(i), + ... muda.save('output_{:02d}.ogg'.format(i), ... 'output_{:02d}.jams'.format(i), ... jam_out) @@ -91,7 +91,7 @@ The following example is similar to the pipeline example above: >>> union = muda.Union(steps=[('pitch_shift', pitch_shift), ... ('time_stretch', time_stretch)]) >>> for j_new in union.transform(j_orig): - process(j_new) + ... process(j_new) Each of the resulting `j_new` objects produced by the `union` has had either its pitch shifted by the `pitch_shift` object or its time stretched by the @@ -124,7 +124,7 @@ output). >>> pipeline = muda.Pipeline(steps=[('pitch_shift', muda.deformers.Bypass(pitch_shift)), ... ('time_stretch', muda.deformers.Bypass(time_stretch))]) >>> for j_new in pipeline.transform(j_orig): - process(j_new) + ... process(j_new) Saving deformations @@ -153,5 +153,5 @@ This is demonstrated in the following example. >>> # Process jams with the new pipeline >>> for j_new in new_pipe.transform(j_orig): - process(j_new) + ... process(j_new) From f57c599eab16f9eb55775c03d1e918a8c2c00a03 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Wed, 1 Mar 2017 21:27:16 -0500 Subject: [PATCH 05/10] expanding documentation --- docs/examples.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples.rst b/docs/examples.rst index 20b61cd..7619260 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -68,7 +68,7 @@ The pipeline therefore generates 25 examples from the input `j_orig`. ... ('time_stretch', time_stretch)]) >>> for j_new in pipeline.transform(j_orig): - process(j_new) + ... process(j_new) Unions ^^^^^^ From 0a36e6ea69f945ad92a6628d62fb32cc1a3b0f47 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Sat, 4 Mar 2017 14:51:15 -0500 Subject: [PATCH 06/10] updated version and release notes --- docs/changes.rst | 21 ++++++++++++++++++++- muda/version.py | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/changes.rst b/docs/changes.rst index 425c540..c3ee17a 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -3,9 +3,28 @@ Release notes ============= +v0.1.3 +------ + +* `#40`_ `BackgroundNoise` now stores sample positions in its output history +* `#44`_ fixed a bug in reconstructing muda-output jams files +* `#47`_ removed dependency on scikit-learn +* `#48`_, `#54`_ converted unit tests from nose to py.test +* `#49`_ `TimeStretch` and `PitchShift` deformers now support multiple values +* `#52`_ added the `Union` classs + +.. _#40: https://github.com/bmcfee/muda/pull/40 +.. _#44: https://github.com/bmcfee/muda/pull/44 +.. _#47: https://github.com/bmcfee/muda/pull/47 +.. _#48: https://github.com/bmcfee/muda/pull/48 +.. _#49: https://github.com/bmcfee/muda/pull/49 +.. _#52: https://github.com/bmcfee/muda/pull/52 +.. _#54: https://github.com/bmcfee/muda/pull/54 + + v0.1.2 ------ -This ia a minor bug-fix revision. +This is a minor bug-fix revision. * The defaults for `LogspaceTimeStretch` have been changed to a more reasonable setting. * Track duration is now overridden when loading audio into a jams object. diff --git a/muda/version.py b/muda/version.py index 0c4c5e5..20f3f16 100644 --- a/muda/version.py +++ b/muda/version.py @@ -3,4 +3,4 @@ """Version info""" short_version = '0.1' -version = '0.1.3dev' +version = '0.1.3' From c40548c1d34a710d0039d11e08955b62c427d089 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Sat, 4 Mar 2017 15:25:16 -0500 Subject: [PATCH 07/10] fixed some docstring formatting and sphinx cruft --- docs/core.rst | 8 +++----- docs/deformers.rst | 31 +++++++++++++------------------ muda/base.py | 2 +- 3 files changed, 17 insertions(+), 24 deletions(-) diff --git a/docs/core.rst b/docs/core.rst index 68dd3e9..7f9f92b 100644 --- a/docs/core.rst +++ b/docs/core.rst @@ -18,12 +18,10 @@ Classes .. autoclass:: BaseTransformer :members: - :no-undoc-members: .. autoclass:: Pipeline - :members: - :no-undoc-members: + :inherited-members: .. autoclass:: Union - :members: - :no-undoc-members: + :inherited-members: + diff --git a/docs/deformers.rst b/docs/deformers.rst index f42daa5..b0c8446 100644 --- a/docs/deformers.rst +++ b/docs/deformers.rst @@ -7,43 +7,38 @@ Deformation reference Utilities --------- .. autoclass:: Bypass - :no-members: - :no-undoc-members: + :inherited-members: Audio deformers --------------- .. autoclass:: BackgroundNoise - :no-members: - :no-undoc-members: + :inherited-members: + .. autoclass:: DynamicRangeCompression - :no-members: - :no-undoc-members: + :inherited-members: Time-stretch deformers ---------------------- .. autoclass:: TimeStretch - :no-members: - :no-undoc-members: + :inherited-members: .. autoclass:: RandomTimeStretch - :no-members: - :no-undoc-members: + :inherited-members: + .. autoclass:: LogspaceTimeStretch - :no-members: - :no-undoc-members: + :inherited-members: Pitch-shift deformers --------------------- .. autoclass:: PitchShift - :no-members: - :no-undoc-members: + :inherited-members: + .. autoclass:: RandomPitchShift - :no-members: - :no-undoc-members: + :inherited-members: + .. autoclass:: LinearPitchShift - :no-members: - :no-undoc-members: + :inherited-members: diff --git a/muda/base.py b/muda/base.py index 51df3f2..18e4131 100644 --- a/muda/base.py +++ b/muda/base.py @@ -138,7 +138,7 @@ def transform(self, jam): Examples -------- >>> for jam_out in deformer.transform(jam_in): - process(jam_out) + ... process(jam_out) ''' for state in self.states(jam): From 3da5697afb619e2286f5e23454cdebb8215a4b01 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Sat, 4 Mar 2017 15:28:00 -0500 Subject: [PATCH 08/10] updated intersphinx --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 52e6ee3..cc76c31 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -290,4 +290,4 @@ 'numpy': ('https://docs.scipy.org/doc/numpy/', None), 'scipy': ('https://docs.scipy.org/doc/scipy/reference/', None), 'librosa': ('http://librosa.github.io/librosa', None), - 'jams': ('http://pythonhosted.org/jams', None)} + 'jams': ('http://jams.readthedocs.io/en/latest/', None)} From 9ff5ca0c5db7c271611a35683bf2efe594ef4122 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Sat, 4 Mar 2017 15:34:39 -0500 Subject: [PATCH 09/10] updated sphinx toctree again --- docs/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index e2b5c15..5cedaa5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,9 +1,9 @@ .. _muda: +.. toctree:: + :maxdepth: 3 Musical Data Augmentation ========================= -.. toctree:: - :maxdepth: 3 The `muda` package implements annotation-aware musical data augmentation, as described in the `muda paper `_ [1]_. From deb8c0edbee6c3b7641eb6d40fbf378d37cb6665 Mon Sep 17 00:00:00 2001 From: Brian McFee Date: Sat, 4 Mar 2017 15:37:02 -0500 Subject: [PATCH 10/10] switched version to rc0 --- muda/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/muda/version.py b/muda/version.py index 20f3f16..1cb615c 100644 --- a/muda/version.py +++ b/muda/version.py @@ -3,4 +3,4 @@ """Version info""" short_version = '0.1' -version = '0.1.3' +version = '0.1.3rc0'