Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TinySOL #165

Merged
merged 19 commits into from
Mar 6, 2020
Merged

TinySOL #165

merged 19 commits into from
Mar 6, 2020

Conversation

lostanlen
Copy link
Collaborator

@lostanlen lostanlen commented Feb 1, 2020

TinySOL is a dataset of 2478 samples, each containing a single musical note from one of 14 different instruments:

    Bass Tuba
    French Horn
    Trombone
    Trumpet in C
    Accordion
    Contrabass
    Violin
    Viola
    Violoncello
    Bassoon
    Clarinet in B-flat
    Flute
    Oboe
    Alto Saxophone

These sounds were originally recorded at Ircam in Paris (France) between 1996
and 1999, as part of a larger project named Studio On Line (SOL). Although SOL
contains many combinations of mutes and extended playing techniques, TinySOL
purely consists of sounds played in the so-called "ordinary" style, and in
absence of mute.

TinySOL can be used for education and research purposes. In particular, it can
be employed as a dataset for training and/or evaluating music information
retrieval (MIR) systems, for tasks such as instrument recognition or
fundamental frequency estimation. For this purpose, we provide an official 5-
fold split of TinySOL. This split has been carefully balanced in terms of
instrumentation, pitch range, and dynamics. For the sake of research
reproducibility, we encourage users of TinySOL to adopt this split and report
their results in terms of average performance across folds.

(this PR is part of an under-review paper to ICMC)
(second take on #164 after a mishap of running the TinySOL style checker)

@codecov
Copy link

codecov bot commented Feb 1, 2020

Codecov Report

Merging #165 into master will increase coverage by 0.15%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #165      +/-   ##
==========================================
+ Coverage   98.29%   98.44%   +0.15%     
==========================================
  Files          17       18       +1     
  Lines        1761     1934     +173     
==========================================
+ Hits         1731     1904     +173     
  Misses         30       30

@lostanlen
Copy link
Collaborator Author

The build passes and the style checker ("black") passes too. Will now write unit tests and then ask for a CR.

@lostanlen lostanlen mentioned this pull request Feb 8, 2020
create tinysol_index.json

start writing tinysol.py

write cite for TinySOL

write tinysol docstring

update tinysol parser

update tinysol pretty-print

update tinysol metadata_path

write tinysol.download

add Zenodo urls and checksums to tinysol

add tinysol to mirdata __init__

set tinysol to v3.0

syntax error in tinysol

update make_tinysol_index

re-generate TinySOL index for v3.0

bugfix ANNOTATION_REMOTE in tinysol

run black -S on TinySOL PR

upload TinySOL testing resources

TinySOL test_cite

TinySOL test_validate

TinySOL test_download

TinySOL test_load

TinySOL test_track_ids

TinySOL test_to_jams

update TinySOL_metadata

update TinySOL metadata indexing system

remove WAV extension from TinySOL index

bugfix tinysol module

path descriptions and string-int conversion

update make_tinysol_index with splitext keys

run black style checker on TinySOL

update tinysol test

convert fold to int

convert Resampled field to bool

test tinysol with a string instrument for higher coverage

remove trailing comma in repr_string for tinysol (wind instrument)

write more TinySOL tests

bugfix tinysol bool conversion

bugfix tinysol tests

add Cb-ord-A2-mf-3cR to TinySOL metadata in tests

run black style checker on TinySOL
@lostanlen
Copy link
Collaborator Author

lostanlen commented Feb 8, 2020

Unit tests are passing. I squashed the PR to a single commit. The coverage is 100% on the tinysol module.
I think that this is ready for CR.

@lostanlen lostanlen changed the title [WIP] TinySOL (take 2) TinySOL Feb 8, 2020
@lostanlen
Copy link
Collaborator Author

usability tests are passing too now 🎉

Copy link
Collaborator

@rabitt rabitt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New loader checklist:

  • Create a script in scripts/, e.g. make_my_dataset_index.py
  • Run the script on the canonical version of the dataset and save the index in mirdata/indexes/ e.g. my_dataset_index.json
  • Create a module in mirdata, e.g. mirdata/my_dataset.py
  • Create tests in tests/, e.g. test_my_dataset.py
  • Add the module to docs/source/mirdata.rst
  • Add the module to mirdata/__init__.py

This is nearly perfect! Just add TinySOL to docs/source/mirdata.rst, and decide if you want to include the data split as additional metadata (see my comment). Otherwise it's good to go!

mirdata/tinysol.py Show resolved Hide resolved
@lostanlen
Copy link
Collaborator Author

This is nearly perfect! Just add TinySOL to docs/source/mirdata.rst, and decide if you want to include the data split as additional metadata (see my comment)

@rabitt thank you. i switched to TinySOL v5 (hopefully the definitive version of TinySOL!) and did both of the changes your requested.

@lostanlen
Copy link
Collaborator Author

i made a quick usability test and everything works as intended.

@lostanlen lostanlen mentioned this pull request Feb 24, 2020
@magdalenafuentes
Copy link
Collaborator

@rabitt should we merge this one too?

Copy link
Collaborator

@rabitt rabitt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

New loader checklist:

  • Create a script in scripts/, e.g. make_my_dataset_index.py
  • Run the script on the canonical version of the dataset and save the index in mirdata/indexes/ e.g. my_dataset_index.json
  • Create a module in mirdata, e.g. mirdata/my_dataset.py
  • Create tests in tests/, e.g. test_my_dataset.py
  • Add the module to docs/source/mirdata.rst
  • Add the module to mirdata/__init__.py

@rabitt
Copy link
Collaborator

rabitt commented Mar 4, 2020

@lostanlen feel free to merge after updating the version in setup.py

@lostanlen
Copy link
Collaborator Author

conflicts resolved. merging

@lostanlen lostanlen merged commit 695187c into mir-dataset-loaders:master Mar 6, 2020
nkundiushuti pushed a commit that referenced this pull request Nov 4, 2020
 
TinySOL (#165)

this PR adds TinySOL as a new loader

create tinysol_index.json

start writing tinysol.py

write cite for TinySOL

write tinysol docstring

update tinysol parser

update tinysol pretty-print

update tinysol metadata_path

write tinysol.download

add Zenodo urls and checksums to tinysol

add tinysol to mirdata __init__

set tinysol to v3.0

syntax error in tinysol

update make_tinysol_index

re-generate TinySOL index for v3.0

bugfix ANNOTATION_REMOTE in tinysol

run black -S on TinySOL PR

upload TinySOL testing resources

TinySOL test_cite

TinySOL test_validate

TinySOL test_download

TinySOL test_load

TinySOL test_track_ids

TinySOL test_to_jams

update TinySOL_metadata

update TinySOL metadata indexing system

remove WAV extension from TinySOL index

bugfix tinysol module

path descriptions and string-int conversion

update make_tinysol_index with splitext keys

run black style checker on TinySOL

update tinysol test

convert fold to int

convert Resampled field to bool

test tinysol with a string instrument for higher coverage

remove trailing comma in repr_string for tinysol (wind instrument)

write more TinySOL tests

bugfix tinysol bool conversion

bugfix tinysol tests

add Cb-ord-A2-mf-3cR to TinySOL metadata in tests

run black style checker on TinySOL

* update to TinySOL v4.0

* run black on tinysol.py

* upgrade tinysol to v5.0

* update tinysol tests

* bugfix tinysol _load_metadata

* update tinysol index (v5)

* bugfix _load_metadata in tinysol

* bugfix self.audio_path in tinysol

* update tinysol tests

* bugfix _load_metadata in tinysol

* bis

* ter

* run black -S . on tinysol.py

* add tinysol to docs/mirdata.rst

* improve tinysol docstring [ci skip]

* bugfix ANNOTATION_REMOTE in tinysol

* update tinysol remotes (v6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants