diff --git a/doc/source/classes/base.rst b/doc/source/classes/base.rst
new file mode 100644
index 00000000..9ab19682
--- /dev/null
+++ b/doc/source/classes/base.rst
@@ -0,0 +1,27 @@
+============
+Base Classes
+============
+
+
+Base Class
+==========
+
+All MusPy classes inherit from the :class:`muspy.Base` class. A :class:`muspy.Base` object supports the following operations.
+
+- :meth:`muspy.Base.to_ordered_dict`: convert the content into an ordered dictionary
+- :meth:`muspy.Base.from_dict` (class method): create a MusPy object of a certain class
+- :meth:`muspy.Base.print`: show the content in a YAML-like format
+- :meth:`muspy.Base.validate`: validate the data stored in an object
+- :meth:`muspy.Base.is_valid`: return a boolean indicating if the stored data is valid
+- :meth:`muspy.Base.adjust_time`: adjust the timing of an object
+
+
+ComplexBase Class
+=================
+
+MusPy classes that contains list attributes also inherit from the :class:`muspy.ComplexBase` class. A :class:`muspy.ComplexBase` object supports the following operations.
+
+- :meth:`muspy.ComplexBase.append`: append an object to the corresponding list
+- :meth:`muspy.ComplexBase.remove_invalid`: remove invalid items from the lists
+- :meth:`muspy.ComplexBase.sort`: sort the lists
+- :meth:`muspy.ComplexBase.remove_duplicate`: remove duplicate items from the lists
diff --git a/doc/source/classes/index.rst b/doc/source/classes/index.rst
index aa7b8137..aeee2865 100644
--- a/doc/source/classes/index.rst
+++ b/doc/source/classes/index.rst
@@ -2,9 +2,15 @@
MusPy Classes
=============
+MusPy provides several classes for working with symbolic music. Here is an illustration of the relations between different MusPy classes.
+
+.. image:: ../images/classes.svg
+
+
.. toctree::
:hidden:
+ base
music
track
metadata
@@ -15,31 +21,3 @@ MusPy Classes
annotation
note
chord
-
-MusPy provides several classes for working with symbolic music. Here is an illustration of the relations between different MusPy classes.
-
-.. image:: ../images/classes.svg
-
-
-Base Class
-==========
-
-All MusPy classes inherit from the :class:`muspy.Base` class. A :class:`muspy.Base` object supports the following operations.
-
-- :meth:`muspy.Base.to_ordered_dict`: convert the content into an ordered dictionary
-- :meth:`muspy.Base.from_dict` (class method): create a MusPy object of a certain class
-- :meth:`muspy.Base.print`: show the content in a YAML-like format
-- :meth:`muspy.Base.validate`: validate the data stored in an object
-- :meth:`muspy.Base.is_valid`: return a boolean indicating if the stored data is valid
-- :meth:`muspy.Base.adjust_time`: adjust the timing of an object
-
-
-ComplexBase Class
-=================
-
-MusPy classes that contains list attributes also inherit from the :class:`muspy.ComplexBase` class. A :class:`muspy.ComplexBase` object supports the following operations.
-
-- :meth:`muspy.ComplexBase.append`: append an object to the corresponding list
-- :meth:`muspy.ComplexBase.remove_invalid`: remove invalid items from the lists
-- :meth:`muspy.ComplexBase.sort`: sort the lists
-- :meth:`muspy.ComplexBase.remove_duplicate`: remove duplicate items from the lists
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 62c57d5d..ea191a5c 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -22,8 +22,6 @@
project = "MusPy"
copyright = "2020, Hao-Wen Dong"
author = "Hao-Wen Dong"
-version = muspy.__version__
-release = muspy.__version__
# -- General configuration ---------------------------------------------------
diff --git a/doc/source/datasets/datasets.rst b/doc/source/datasets/datasets.rst
new file mode 100644
index 00000000..34681c5a
--- /dev/null
+++ b/doc/source/datasets/datasets.rst
@@ -0,0 +1,23 @@
+==================
+Supported Datasets
+==================
+
+Here is a list of the supported datasets.
+
+============================ ======== ====== ======= ========= ====== ====== ==========
+Dataset Format Hours Songs Genre Melody Chords Multitrack
+============================ ======== ====== ======= ========= ====== ====== ==========
+Lakh MIDI Dataset MIDI >5000 174,533 misc \* \* \*
+MAESTRO Dataset MIDI 201.21 1,282 classical
+Wikifonia Lead Sheet Dataset MusicXML 198.40 6,405 misc O O
+Essen Folk Song Dataset ABC 56.62 9,034 folk O O
+NES Music Database MIDI 46.11 5,278 game O O
+Hymnal Tune Dataset MIDI 18.74 1,756 hymn O
+Hymnal Dataset MIDI 17.50 1,723 hymn
+music21's Corpus misc 16.86 613 misc \* \*
+Nottingham Database ABC 10.54 1,036 folk O O
+music21's JSBach Corpus MusicXML 3.46 410 classical O
+JSBach Chorale Dataset MIDI 3.21 382 classical O
+============================ ======== ====== ======= ========= ====== ====== ==========
+
+(Asterisk marks indicate partial support.)
diff --git a/doc/source/datasets/index.rst b/doc/source/datasets/index.rst
index fb8e7c71..695e1479 100644
--- a/doc/source/datasets/index.rst
+++ b/doc/source/datasets/index.rst
@@ -22,52 +22,11 @@ MusPy provides an easy-to-use dataset management system. Each supported dataset
dataset = nes.to_pytorch_dataset(representation="pianoroll")
-Iterating over a MusPy Dataset object
-=====================================
-
-Here is an illustration of the two internal processing modes for iterating over
-a MusPy Dataset object.
-
-.. image:: ../images/on_the_fly.svg
- :align: center
- :width: 475px
-
-.. image:: ../images/preconverted1.svg
- :align: center
- :width: 500px
-
-.. image:: ../images/preconverted2.svg
- :align: center
- :width: 475px
-
-
-Supported Datasets
-==================
-
-Here is a list of the supported datasets.
-
-============================ ======== ====== ======= ========= ====== ====== ==========
-Dataset Format Hours Songs Genre Melody Chords Multitrack
-============================ ======== ====== ======= ========= ====== ====== ==========
-Lakh MIDI Dataset MIDI >5000 174,533 misc \* \* \*
-MAESTRO Dataset MIDI 201.21 1,282 classical
-Wikifonia Lead Sheet Dataset MusicXML 198.40 6,405 misc O O
-Essen Folk Song Dataset ABC 56.62 9,034 folk O O
-NES Music Database MIDI 46.11 5,278 game O O
-Hymnal Tune Dataset MIDI 18.74 1,756 hymn O
-Hymnal Dataset MIDI 17.50 1,723 hymn
-music21's Corpus misc 16.86 613 misc \* \*
-Nottingham Database ABC 10.54 1,036 folk O O
-music21's JSBach Corpus MusicXML 3.46 410 classical O
-JSBach Chorale Dataset MIDI 3.21 382 classical O
-============================ ======== ====== ======= ========= ====== ====== ==========
-
-(Asterisk marks indicate partial support.)
-
-
.. toctree::
:hidden:
+ iterator
+ datasets
base
local
remote
diff --git a/doc/source/datasets/iterator.rst b/doc/source/datasets/iterator.rst
new file mode 100644
index 00000000..73587647
--- /dev/null
+++ b/doc/source/datasets/iterator.rst
@@ -0,0 +1,18 @@
+=====================================
+Iterating over a MusPy Dataset object
+=====================================
+
+Here is an illustration of the two internal processing modes for iterating over
+a MusPy Dataset object.
+
+.. image:: ../images/on_the_fly.svg
+ :align: center
+ :width: 475px
+
+.. image:: ../images/preconverted1.svg
+ :align: center
+ :width: 500px
+
+.. image:: ../images/preconverted2.svg
+ :align: center
+ :width: 475px
diff --git a/doc/source/io/index.rst b/doc/source/io/index.rst
index a7d3ffb7..441c9cf3 100644
--- a/doc/source/io/index.rst
+++ b/doc/source/io/index.rst
@@ -8,10 +8,9 @@ MusPy provides three type of data I/O interfaces.
- MusPy's native JSON and YAML formats: ``muspy.load_*`` and ``muspy.save_*``
- Other symbolic music libraries: ``muspy.from_*`` and ``muspy.to_*``
-Here is a list of the supported interfaces.
.. toctree::
- :titlesonly:
+ :hidden:
midi
musicxml
diff --git a/docs/.buildinfo b/docs/.buildinfo
index 409dc823..9383a57b 100644
--- a/docs/.buildinfo
+++ b/docs/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: df18c40425533571f04d144c2a989f91
+config: b1e7048c2d42530d6d3e45917004b0ae
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/_modules/index.html b/docs/_modules/index.html
index 32f15b35..30878ea3 100644
--- a/docs/_modules/index.html
+++ b/docs/_modules/index.html
@@ -7,7 +7,7 @@
-
-
diff --git a/docs/_sources/classes/base.rst.txt b/docs/_sources/classes/base.rst.txt
new file mode 100644
index 00000000..9ab19682
--- /dev/null
+++ b/docs/_sources/classes/base.rst.txt
@@ -0,0 +1,27 @@
+============
+Base Classes
+============
+
+
+Base Class
+==========
+
+All MusPy classes inherit from the :class:`muspy.Base` class. A :class:`muspy.Base` object supports the following operations.
+
+- :meth:`muspy.Base.to_ordered_dict`: convert the content into an ordered dictionary
+- :meth:`muspy.Base.from_dict` (class method): create a MusPy object of a certain class
+- :meth:`muspy.Base.print`: show the content in a YAML-like format
+- :meth:`muspy.Base.validate`: validate the data stored in an object
+- :meth:`muspy.Base.is_valid`: return a boolean indicating if the stored data is valid
+- :meth:`muspy.Base.adjust_time`: adjust the timing of an object
+
+
+ComplexBase Class
+=================
+
+MusPy classes that contains list attributes also inherit from the :class:`muspy.ComplexBase` class. A :class:`muspy.ComplexBase` object supports the following operations.
+
+- :meth:`muspy.ComplexBase.append`: append an object to the corresponding list
+- :meth:`muspy.ComplexBase.remove_invalid`: remove invalid items from the lists
+- :meth:`muspy.ComplexBase.sort`: sort the lists
+- :meth:`muspy.ComplexBase.remove_duplicate`: remove duplicate items from the lists
diff --git a/docs/_sources/classes/index.rst.txt b/docs/_sources/classes/index.rst.txt
index aa7b8137..aeee2865 100644
--- a/docs/_sources/classes/index.rst.txt
+++ b/docs/_sources/classes/index.rst.txt
@@ -2,9 +2,15 @@
MusPy Classes
=============
+MusPy provides several classes for working with symbolic music. Here is an illustration of the relations between different MusPy classes.
+
+.. image:: ../images/classes.svg
+
+
.. toctree::
:hidden:
+ base
music
track
metadata
@@ -15,31 +21,3 @@ MusPy Classes
annotation
note
chord
-
-MusPy provides several classes for working with symbolic music. Here is an illustration of the relations between different MusPy classes.
-
-.. image:: ../images/classes.svg
-
-
-Base Class
-==========
-
-All MusPy classes inherit from the :class:`muspy.Base` class. A :class:`muspy.Base` object supports the following operations.
-
-- :meth:`muspy.Base.to_ordered_dict`: convert the content into an ordered dictionary
-- :meth:`muspy.Base.from_dict` (class method): create a MusPy object of a certain class
-- :meth:`muspy.Base.print`: show the content in a YAML-like format
-- :meth:`muspy.Base.validate`: validate the data stored in an object
-- :meth:`muspy.Base.is_valid`: return a boolean indicating if the stored data is valid
-- :meth:`muspy.Base.adjust_time`: adjust the timing of an object
-
-
-ComplexBase Class
-=================
-
-MusPy classes that contains list attributes also inherit from the :class:`muspy.ComplexBase` class. A :class:`muspy.ComplexBase` object supports the following operations.
-
-- :meth:`muspy.ComplexBase.append`: append an object to the corresponding list
-- :meth:`muspy.ComplexBase.remove_invalid`: remove invalid items from the lists
-- :meth:`muspy.ComplexBase.sort`: sort the lists
-- :meth:`muspy.ComplexBase.remove_duplicate`: remove duplicate items from the lists
diff --git a/docs/_sources/datasets/datasets.rst.txt b/docs/_sources/datasets/datasets.rst.txt
new file mode 100644
index 00000000..34681c5a
--- /dev/null
+++ b/docs/_sources/datasets/datasets.rst.txt
@@ -0,0 +1,23 @@
+==================
+Supported Datasets
+==================
+
+Here is a list of the supported datasets.
+
+============================ ======== ====== ======= ========= ====== ====== ==========
+Dataset Format Hours Songs Genre Melody Chords Multitrack
+============================ ======== ====== ======= ========= ====== ====== ==========
+Lakh MIDI Dataset MIDI >5000 174,533 misc \* \* \*
+MAESTRO Dataset MIDI 201.21 1,282 classical
+Wikifonia Lead Sheet Dataset MusicXML 198.40 6,405 misc O O
+Essen Folk Song Dataset ABC 56.62 9,034 folk O O
+NES Music Database MIDI 46.11 5,278 game O O
+Hymnal Tune Dataset MIDI 18.74 1,756 hymn O
+Hymnal Dataset MIDI 17.50 1,723 hymn
+music21's Corpus misc 16.86 613 misc \* \*
+Nottingham Database ABC 10.54 1,036 folk O O
+music21's JSBach Corpus MusicXML 3.46 410 classical O
+JSBach Chorale Dataset MIDI 3.21 382 classical O
+============================ ======== ====== ======= ========= ====== ====== ==========
+
+(Asterisk marks indicate partial support.)
diff --git a/docs/_sources/datasets/index.rst.txt b/docs/_sources/datasets/index.rst.txt
index fb8e7c71..695e1479 100644
--- a/docs/_sources/datasets/index.rst.txt
+++ b/docs/_sources/datasets/index.rst.txt
@@ -22,52 +22,11 @@ MusPy provides an easy-to-use dataset management system. Each supported dataset
dataset = nes.to_pytorch_dataset(representation="pianoroll")
-Iterating over a MusPy Dataset object
-=====================================
-
-Here is an illustration of the two internal processing modes for iterating over
-a MusPy Dataset object.
-
-.. image:: ../images/on_the_fly.svg
- :align: center
- :width: 475px
-
-.. image:: ../images/preconverted1.svg
- :align: center
- :width: 500px
-
-.. image:: ../images/preconverted2.svg
- :align: center
- :width: 475px
-
-
-Supported Datasets
-==================
-
-Here is a list of the supported datasets.
-
-============================ ======== ====== ======= ========= ====== ====== ==========
-Dataset Format Hours Songs Genre Melody Chords Multitrack
-============================ ======== ====== ======= ========= ====== ====== ==========
-Lakh MIDI Dataset MIDI >5000 174,533 misc \* \* \*
-MAESTRO Dataset MIDI 201.21 1,282 classical
-Wikifonia Lead Sheet Dataset MusicXML 198.40 6,405 misc O O
-Essen Folk Song Dataset ABC 56.62 9,034 folk O O
-NES Music Database MIDI 46.11 5,278 game O O
-Hymnal Tune Dataset MIDI 18.74 1,756 hymn O
-Hymnal Dataset MIDI 17.50 1,723 hymn
-music21's Corpus misc 16.86 613 misc \* \*
-Nottingham Database ABC 10.54 1,036 folk O O
-music21's JSBach Corpus MusicXML 3.46 410 classical O
-JSBach Chorale Dataset MIDI 3.21 382 classical O
-============================ ======== ====== ======= ========= ====== ====== ==========
-
-(Asterisk marks indicate partial support.)
-
-
.. toctree::
:hidden:
+ iterator
+ datasets
base
local
remote
diff --git a/docs/_sources/datasets/iterator.rst.txt b/docs/_sources/datasets/iterator.rst.txt
new file mode 100644
index 00000000..73587647
--- /dev/null
+++ b/docs/_sources/datasets/iterator.rst.txt
@@ -0,0 +1,18 @@
+=====================================
+Iterating over a MusPy Dataset object
+=====================================
+
+Here is an illustration of the two internal processing modes for iterating over
+a MusPy Dataset object.
+
+.. image:: ../images/on_the_fly.svg
+ :align: center
+ :width: 475px
+
+.. image:: ../images/preconverted1.svg
+ :align: center
+ :width: 500px
+
+.. image:: ../images/preconverted2.svg
+ :align: center
+ :width: 475px
diff --git a/docs/_sources/io/index.rst.txt b/docs/_sources/io/index.rst.txt
index a7d3ffb7..441c9cf3 100644
--- a/docs/_sources/io/index.rst.txt
+++ b/docs/_sources/io/index.rst.txt
@@ -8,10 +8,9 @@ MusPy provides three type of data I/O interfaces.
- MusPy's native JSON and YAML formats: ``muspy.load_*`` and ``muspy.save_*``
- Other symbolic music libraries: ``muspy.from_*`` and ``muspy.to_*``
-Here is a list of the supported interfaces.
.. toctree::
- :titlesonly:
+ :hidden:
midi
musicxml
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index 0dcee420..2fa8c97f 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '0.0.0',
+ VERSION: '',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/docs/classes/annotation.html b/docs/classes/annotation.html
index ebd51342..151eea9e 100644
--- a/docs/classes/annotation.html
+++ b/docs/classes/annotation.html
@@ -7,7 +7,7 @@
- Annotation Class — MusPy 0.0.0 documentation
+ Annotation Class — MusPy documentation
@@ -64,10 +64,6 @@
-
MusPy classes that contains list attributes also inherit from the muspy.ComplexBase class. A muspy.ComplexBase object supports the following operations.
MusPy classes that contains list attributes also inherit from the muspy.ComplexBase class. A muspy.ComplexBase object supports the following operations.