diff --git a/LICENCE b/LICENSE
similarity index 100%
rename from LICENCE
rename to LICENSE
diff --git a/README.md b/README.md
index 5d8ca08..3ef0aaa 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,9 @@ for generating and triggering sound events, enabling the sonification of spectra
and rhythmic aspects. Unlike existing software libraries focused on creative applications of sound generation,
the toolbox is designed to meet the specific needs of MIR researchers and educators. It aims to simplify the process
of music exploration, promoting a more intuitive and efficient approach to data analysis by enabling users to interact
-with their data in acoustically meaningful ways.
+with their data in acoustically meaningful ways.
+
+See the [API documentation](https://groupmm.github.io/libsoni/build/html/index.html) for a detailed view of the provided functions in ``libsoni``.
## Installation Guide
We outline two primary methods for setting up ``libsoni`` using pip and setting up a dedicated environment.
@@ -71,8 +73,8 @@ directly contacting us via email (meinard.mueller@audiolabs-erlangen.de) or for
an issue in our GitHub repository. Please do not submit a pull request without prior consultation
with us.
-## Licence
-The code for this toolbox is published under an [MIT licence](LICENCE).
+## License
+The code for this toolbox is published under an [MIT license](LICENSE).
This does not apply to the data files:
* Schubert songs are taken from the [Schubert Winterreise Dataset](https://zenodo.org/record/4122060).
* Recording of the cantata *Ach Gott und Herr* by Bach is taken fom [Bach10 Dataset](https://labsites.rochester.edu/air/datasets/Bach10%20Dataset_v1.0.pdf).
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 2ebe477..3b6292f 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree
index e74a17a..695028f 100644
Binary files a/docs/build/doctrees/index.doctree and b/docs/build/doctrees/index.doctree differ
diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt
index f6464b4..c69ebe8 100644
--- a/docs/build/html/_sources/index.rst.txt
+++ b/docs/build/html/_sources/index.rst.txt
@@ -18,6 +18,9 @@ by enabling users to interact with their data in acoustically meaningful ways.
As a result, ``libsoni`` not only improves the analytical capabilities of music scientists
but also opens up new avenues for innovative music analysis and discovery.
+For installation instructions and educational Jupyter notebooks, see the `GitHub repository
+`_.
+
.. toctree::
:maxdepth: 2
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index d4717c6..6bc5002 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -92,6 +92,7 @@ libsoni: A Python Toolbox for Sonifying Music Annotations and Feature Repres
by enabling users to interact with their data in acoustically meaningful ways.
As a result, libsoni
not only improves the analytical capabilities of music scientists
but also opens up new avenues for innovative music analysis and discovery.
+For installation instructions and educational Jupyter notebooks, see the GitHub repository.
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 7783df5..18e0823 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["core/chroma", "core/f0", "core/index", "core/methods", "core/pianoroll", "core/spectrogram", "core/tse", "genindex", "index", "py-modindex", "utils"], "filenames": ["core/chroma.rst", "core/f0.rst", "core/index.rst", "core/methods.rst", "core/pianoroll.rst", "core/spectrogram.rst", "core/tse.rst", "genindex.rst", "index.rst", "py-modindex.rst", "utils.rst"], "titles": ["Chroma (libsoni.core.chroma)", "F0 (libsoni.core.f0)", "Core Features (libsoni.core)", "Methods (libsoni.core.methods)", "Piano-Roll (libsoni.core.pianoroll)", "Spectrogram (libsoni.core.spectrogram)", "TSE (libsoni.core.tse)", "Index", "libsoni: A Python Toolbox for Sonifying Music Annotations and Feature Representations", "Module Index", "Utils (libsoni.util.utils)"], "terms": {"sonify_chroma_vector": 0, "chroma_vector": 0, "ndarrai": [0, 1, 3, 4, 5, 6, 10], "pitch_rang": [0, 3], "tupl": [0, 3, 6, 10], "int": [0, 1, 3, 4, 5, 6, 10], "20": [0, 3], "108": [0, 3], "filter": [0, 3], "bool": [0, 1, 3, 4, 5, 6, 10], "fals": [0, 3, 10], "f_center": [0, 3], "float": [0, 1, 3, 4, 5, 6, 10], "440": [0, 3, 4, 10], "0": [0, 1, 3, 4, 5, 6, 10], "octave_cutoff": [0, 3], "1": [0, 1, 3, 4, 5, 6, 10], "tuning_frequ": [0, 3, 4, 10], "fading_dur": [0, 1, 3, 5, 6, 10], "05": [0, 1, 3, 4, 5, 6], "sonification_dur": [0, 1, 4, 5, 6], "none": [0, 1, 3, 4, 5, 6, 10], "normal": [0, 1, 4, 5, 6, 10], "true": [0, 1, 4, 5, 6, 10], "f": [0, 1, 3, 4, 5, 6, 10], "22050": [0, 1, 3, 4, 5, 6, 10], "sourc": [0, 1, 3, 4, 5, 6, 8, 10], "sonifi": [0, 1, 4, 5, 6], "vector": 0, "us": [0, 1, 3, 4, 5, 6, 10], "sound": [0, 1, 3, 4, 6, 8], "synthesi": [0, 3, 4, 8], "base": [0, 1, 4, 10], "shepard": [0, 3], "tone": [0, 3, 10], "The": [0, 1, 3, 4], "can": [0, 1, 3, 4], "chang": [0, 3], "either": [0, 3], "option": [0, 3], "specifi": [0, 3], "pitch": [0, 3, 4, 6, 10], "rang": [0, 3], "both": [0, 3, 10], "also": [0, 3, 8], "combin": [0, 3], "shape": [0, 1, 3, 4, 5, 6, 10], "spectrum": [0, 3], "like": [0, 3], "bell": [0, 3], "curv": [0, 3], "center": [0, 3], "around": [0, 3], "frequenc": [0, 1, 3, 4, 5, 10], "while": [0, 1, 3, 4], "octav": [0, 3], "cutoff": [0, 3], "determin": [0, 1, 3, 4, 5, 6], "which": [0, 3], "amplitud": [0, 1, 3, 4, 6], "correspond": [0, 3, 4, 6, 10], "sinusoid": [0, 3, 5], "i": [0, 1, 3, 4, 5, 6, 8, 10], "5": [0, 1, 3, 4, 10], "paramet": [0, 1, 3, 4, 5, 6, 10], "np": [0, 1, 3, 4, 5, 6, 10], "float32": [0, 1, 3, 4, 5, 6, 10], "float64": [0, 1, 3, 4, 5, 6, 10], "n": [0, 1, 3, 4, 5, 6, 10], "12": [0, 10], "default": [0, 1, 3, 4, 5, 6, 10], "encount": [0, 3], "enabl": [0, 3, 8], "hertz": [0, 3, 4, 5, 10], "width": [0, 3], "tune": [0, 3, 4, 10], "durat": [0, 1, 3, 4, 5, 6, 10], "sonif": [0, 1, 3, 4, 5, 6, 8, 10], "sampl": [0, 1, 3, 4, 5, 6, 10], "fade": [0, 1, 3, 4, 5, 6, 10], "out": [0, 1, 3, 4, 5, 6, 10], "begin": [0, 1, 4, 5, 6], "end": [0, 1, 4, 5, 6, 10], "second": [0, 1, 3, 4, 5, 6, 10], "output": [0, 1, 4, 5, 6, 10], "signal": [0, 1, 3, 4, 5, 6, 10], "rate": [0, 1, 3, 4, 5, 6, 10], "per": [0, 1, 3, 4, 5, 6, 10], "return": [0, 1, 3, 4, 5, 6, 10], "chroma_sonif": 0, "m": [0, 1, 3, 4, 5, 6, 10], "sonify_chromagram": 0, "chromagram": 0, "h": 0, "hop": 0, "size": [0, 10], "stft": 0, "calcul": [0, 10], "For": [0, 4, 10], "magnitud": 0, "reach": 0, "half": 0, "center_frequ": 0, "twice": [0, 1, 3, 4], "sonify_f0": 1, "time_f0": 1, "gain": [1, 3, 10], "partial": [1, 3, 4], "arrai": [1, 3, 4, 5, 6], "partials_amplitud": [1, 3, 4], "partials_phase_offset": [1, 3, 4], "trajectori": 1, "given": [1, 3, 4, 6, 10], "2d": 1, "numpi": [1, 4, 6], "must": 1, "contain": [1, 3, 4, 5, 10], "time": [1, 5, 6, 10], "posit": [1, 6], "associ": 1, "instantan": [1, 3], "phase": [1, 3, 4], "inform": [1, 4, 10], "summat": 1, "2": [1, 3, 4, 10], "valu": [1, 10], "desir": [1, 3, 4, 10], "fundament": [1, 3, 4], "an": [1, 3, 4, 8, 10], "lead": [1, 3, 4], "onli": [1, 3, 4, 8], "caus": [1, 3, 4], "first": [1, 3, 4], "have": [1, 3, 4], "ha": [1, 3, 4], "If": 1, "all": [1, 3, 4], "ar": [1, 3, 4], "set": [1, 3, 4, 10], "offset": [1, 3, 4, 6], "when": [1, 3, 4], "defin": [1, 3, 4], "f0_sonif": 1, "generate_click": 3, "69": [3, 4, 6, 10], "click_fading_dur": [3, 6], "gener": [3, 4, 8, 10], "click": [3, 4, 6, 10], "color": [3, 10], "generate_shepard_ton": 3, "pitch_class": 3, "class": 3, "01": [3, 4, 10], "shepard_ton": 3, "generate_sinusoid": 3, "generate_tone_additive_synthesi": 3, "addit": [3, 4], "custom": [3, 4, 6], "generated_ton": 3, "generate_tone_fm_synthesi": 3, "modulation_rate_rel": 3, "modulation_amplitud": 3, "modul": [3, 4], "synthes": 3, "multipl": [3, 4, 6], "fraction": [3, 4], "amount": [3, 4, 10], "generate_tone_instantaneous_phas": 3, "frequency_vector": 3, "gain_vector": 3, "wise": [3, 4], "generate_tone_wavet": 3, "wavet": 3, "depend": 3, "resampl": 3, "sonify_pianoroll_additive_synthesi": 4, "pianoroll_df": [4, 10], "datafram": [4, 10], "signal_fading_dur": 4, "note_fading_dur": 4, "represent": [4, 10], "assum": 4, "row": 4, "event": [4, 6, 8, 10], "describ": 4, "start": 4, "where": 4, "pd": [4, 10], "final": 4, "each": [4, 10], "note": 4, "pianoroll_sonif": 4, "sonify_pianoroll_click": 4, "colour": 4, "waveform": [4, 6, 10], "form": [4, 6], "1d": [4, 6], "sonify_pianoroll_fm_synthesi": 4, "mod_rate_rel": 4, "mod_amp": 4, "fm": 4, "sonify_pianoroll_sampl": 4, "reference_pitch": [4, 10], "audio": [4, 6, 10], "warp": [4, 6, 10], "version": [4, 6, 10], "k": [4, 5, 6, 10], "origin": [4, 10], "sonify_spectrogram": 5, "frequency_coeffici": 5, "time_coeffici": 5, "coeffici": [5, 6], "spectrogram_sonif": 5, "sonify_spectrogram_multi": 5, "num_process": 5, "multiprocess": 5, "effici": [5, 8], "number": [5, 10], "process": [5, 8], "sonify_tse_click": 6, "time_posit": 6, "click_pitch": 6, "25": 6, "click_amplitud": 6, "offset_rel": 6, "rel": 6, "indic": 6, "max": [6, 10], "tse_sonif": 6, "sonify_tse_multiple_click": 6, "times_pitch": 6, "list": 6, "thi": [6, 10], "function": [6, 8, 10], "creat": 6, "differ": 6, "compris": 6, "sonify_tse_multiple_sampl": 6, "times_sampl": 6, "sonify_tse_sampl": 6, "e": 6, "g": 6, "metronom": 6, "open": 8, "tailor": 8, "By": 8, "emploi": 8, "explicit": 8, "easi": 8, "understand": 8, "techniqu": 8, "offer": 8, "trigger": 8, "spectral": 8, "harmon": 8, "tonal": 8, "melod": 8, "rhythmic": 8, "aspect": 8, "unlik": 8, "exist": 8, "softwar": 8, "librari": 8, "focus": 8, "creativ": 8, "applic": 8, "design": 8, "meet": 8, "specif": 8, "need": 8, "mir": 8, "research": 8, "educ": 8, "It": 8, "aim": 8, "simplifi": 8, "explor": 8, "promot": 8, "more": 8, "intuit": 8, "approach": 8, "data": 8, "analysi": 8, "user": 8, "interact": 8, "acoust": 8, "meaning": 8, "wai": 8, "As": 8, "result": 8, "improv": 8, "analyt": 8, "capabl": 8, "scientist": 8, "up": 8, "new": 8, "avenu": 8, "innov": 8, "discoveri": 8, "fade_sign": 10, "normalized_sign": 10, "mix_sonification_and_origin": 10, "original_audio": 10, "gain_lin_sonif": 10, "gain_lin_original_audio": 10, "pan": 10, "take": 10, "mix": 10, "stereo": 10, "linear": 10, "control": 10, "mean": 10, "left": 10, "right": 10, "channel": 10, "same": 10, "stereo_audio": 10, "normalize_sign": 10, "pitch_to_frequ": 10, "refer": 10, "smooth_weight": 10, "weight": 10, "fading_sampl": 10, "smooth": 10, "input": 10, "weights_smooth": 10, "visualize_pianorol": 10, "xlabel": 10, "str": 10, "ylabel": 10, "titl": 10, "fmp_1": 10, "velocity_alpha": 10, "figsiz": 10, "4": 10, "ax": 10, "dpi": 10, "72": 10, "figur": 10, "visual": 10, "piano": 10, "roll": 10, "format": 10, "label": [4, 10], "text": 10, "x": 10, "axi": 10, "y": 10, "colormap": 10, "see": 10, "http": 10, "github": 10, "com": 10, "meinardmuel": 10, "libfmp": 10, "rectangular": 10, "region": 10, "veloc": [4, 10], "matplotlib": 10, "object": 10, "resolut": 10, "fig": 10, "instanc": 10, "warp_sampl": 10, "target_pitch": 10, "target_duration_sec": 10, "provid": 10, "get": 10, "shift": 10, "librosa": 10, "effect": 10, "pitch_shift": 10, "tempor": 10, "align": 10, "shorter": 10, "than": 10, "crop": 10, "els": 10, "longer": 10, "zero": 10, "pad": 10, "target": 10, "avoid": 10, "warped_sampl": 10, "column": 4}, "objects": {"libsoni.core": [[0, 0, 0, "-", "chroma"], [1, 0, 0, "-", "f0"], [3, 0, 0, "-", "methods"], [4, 0, 0, "-", "pianoroll"], [5, 0, 0, "-", "spectrogram"], [6, 0, 0, "-", "tse"]], "libsoni.core.chroma": [[0, 1, 1, "", "sonify_chroma_vector"], [0, 1, 1, "", "sonify_chromagram"]], "libsoni.core.f0": [[1, 1, 1, "", "sonify_f0"]], "libsoni.core.methods": [[3, 1, 1, "", "generate_click"], [3, 1, 1, "", "generate_shepard_tone"], [3, 1, 1, "", "generate_sinusoid"], [3, 1, 1, "", "generate_tone_additive_synthesis"], [3, 1, 1, "", "generate_tone_fm_synthesis"], [3, 1, 1, "", "generate_tone_instantaneous_phase"], [3, 1, 1, "", "generate_tone_wavetable"]], "libsoni.core.pianoroll": [[4, 1, 1, "", "sonify_pianoroll_additive_synthesis"], [4, 1, 1, "", "sonify_pianoroll_clicks"], [4, 1, 1, "", "sonify_pianoroll_fm_synthesis"], [4, 1, 1, "", "sonify_pianoroll_sample"]], "libsoni.core.spectrogram": [[5, 1, 1, "", "sonify_spectrogram"], [5, 1, 1, "", "sonify_spectrogram_multi"]], "libsoni.core.tse": [[6, 1, 1, "", "sonify_tse_clicks"], [6, 1, 1, "", "sonify_tse_multiple_clicks"], [6, 1, 1, "", "sonify_tse_multiple_samples"], [6, 1, 1, "", "sonify_tse_sample"]], "libsoni.util": [[10, 0, 0, "-", "utils"]], "libsoni.util.utils": [[10, 1, 1, "", "fade_signal"], [10, 1, 1, "", "mix_sonification_and_original"], [10, 1, 1, "", "normalize_signal"], [10, 1, 1, "", "pitch_to_frequency"], [10, 1, 1, "", "smooth_weights"], [10, 1, 1, "", "visualize_pianoroll"], [10, 1, 1, "", "warp_sample"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"chroma": 0, "libsoni": [0, 1, 2, 3, 4, 5, 6, 8, 10], "core": [0, 1, 2, 3, 4, 5, 6], "f0": 1, "featur": [2, 8], "method": 3, "piano": 4, "roll": 4, "pianorol": 4, "spectrogram": 5, "tse": 6, "index": [7, 9], "A": 8, "python": 8, "toolbox": 8, "sonifi": 8, "music": 8, "annot": 8, "represent": 8, "modul": 9, "util": 10}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.intersphinx": 1, "sphinx": 58}, "alltitles": {"Core Features (libsoni.core)": [[2, "core-features-libsoni-core"]], "Index": [[7, "index"]], "Module Index": [[9, "module-index"]], "Chroma (libsoni.core.chroma)": [[0, "module-libsoni.core.chroma"]], "F0 (libsoni.core.f0)": [[1, "module-libsoni.core.f0"]], "Methods (libsoni.core.methods)": [[3, "module-libsoni.core.methods"]], "Piano-Roll (libsoni.core.pianoroll)": [[4, "module-libsoni.core.pianoroll"]], "Spectrogram (libsoni.core.spectrogram)": [[5, "module-libsoni.core.spectrogram"]], "TSE (libsoni.core.tse)": [[6, "module-libsoni.core.tse"]], "libsoni: A Python Toolbox for Sonifying Music Annotations and Feature Representations": [[8, "libsoni-a-python-toolbox-for-sonifying-music-annotations-and-feature-representations"]], "Utils (libsoni.util.utils)": [[10, "module-libsoni.util.utils"]]}, "indexentries": {"libsoni.core.chroma": [[0, "module-libsoni.core.chroma"]], "module": [[0, "module-libsoni.core.chroma"], [1, "module-libsoni.core.f0"], [3, "module-libsoni.core.methods"], [4, "module-libsoni.core.pianoroll"], [5, "module-libsoni.core.spectrogram"], [6, "module-libsoni.core.tse"], [10, "module-libsoni.util.utils"]], "sonify_chroma_vector() (in module libsoni.core.chroma)": [[0, "libsoni.core.chroma.sonify_chroma_vector"]], "sonify_chromagram() (in module libsoni.core.chroma)": [[0, "libsoni.core.chroma.sonify_chromagram"]], "libsoni.core.f0": [[1, "module-libsoni.core.f0"]], "sonify_f0() (in module libsoni.core.f0)": [[1, "libsoni.core.f0.sonify_f0"]], "generate_click() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_click"]], "generate_shepard_tone() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_shepard_tone"]], "generate_sinusoid() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_sinusoid"]], "generate_tone_additive_synthesis() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_tone_additive_synthesis"]], "generate_tone_fm_synthesis() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_tone_fm_synthesis"]], "generate_tone_instantaneous_phase() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_tone_instantaneous_phase"]], "generate_tone_wavetable() (in module libsoni.core.methods)": [[3, "libsoni.core.methods.generate_tone_wavetable"]], "libsoni.core.methods": [[3, "module-libsoni.core.methods"]], "libsoni.core.pianoroll": [[4, "module-libsoni.core.pianoroll"]], "sonify_pianoroll_additive_synthesis() (in module libsoni.core.pianoroll)": [[4, "libsoni.core.pianoroll.sonify_pianoroll_additive_synthesis"]], "sonify_pianoroll_clicks() (in module libsoni.core.pianoroll)": [[4, "libsoni.core.pianoroll.sonify_pianoroll_clicks"]], "sonify_pianoroll_fm_synthesis() (in module libsoni.core.pianoroll)": [[4, "libsoni.core.pianoroll.sonify_pianoroll_fm_synthesis"]], "sonify_pianoroll_sample() (in module libsoni.core.pianoroll)": [[4, "libsoni.core.pianoroll.sonify_pianoroll_sample"]], "libsoni.core.spectrogram": [[5, "module-libsoni.core.spectrogram"]], "sonify_spectrogram() (in module libsoni.core.spectrogram)": [[5, "libsoni.core.spectrogram.sonify_spectrogram"]], "sonify_spectrogram_multi() (in module libsoni.core.spectrogram)": [[5, "libsoni.core.spectrogram.sonify_spectrogram_multi"]], "libsoni.core.tse": [[6, "module-libsoni.core.tse"]], "sonify_tse_clicks() (in module libsoni.core.tse)": [[6, "libsoni.core.tse.sonify_tse_clicks"]], "sonify_tse_multiple_clicks() (in module libsoni.core.tse)": [[6, "libsoni.core.tse.sonify_tse_multiple_clicks"]], "sonify_tse_multiple_samples() (in module libsoni.core.tse)": [[6, "libsoni.core.tse.sonify_tse_multiple_samples"]], "sonify_tse_sample() (in module libsoni.core.tse)": [[6, "libsoni.core.tse.sonify_tse_sample"]], "fade_signal() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.fade_signal"]], "libsoni.util.utils": [[10, "module-libsoni.util.utils"]], "mix_sonification_and_original() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.mix_sonification_and_original"]], "normalize_signal() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.normalize_signal"]], "pitch_to_frequency() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.pitch_to_frequency"]], "smooth_weights() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.smooth_weights"]], "visualize_pianoroll() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.visualize_pianoroll"]], "warp_sample() (in module libsoni.util.utils)": [[10, "libsoni.util.utils.warp_sample"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["core/chroma", "core/f0", "core/index", "core/methods", "core/pianoroll", "core/spectrogram", "core/tse", "genindex", "index", "py-modindex", "utils"], "filenames": ["core/chroma.rst", "core/f0.rst", "core/index.rst", "core/methods.rst", "core/pianoroll.rst", "core/spectrogram.rst", "core/tse.rst", "genindex.rst", "index.rst", "py-modindex.rst", "utils.rst"], "titles": ["Chroma (libsoni.core.chroma)", "F0 (libsoni.core.f0)", "Core Features (libsoni.core)", "Methods (libsoni.core.methods)", "Piano-Roll (libsoni.core.pianoroll)", "Spectrogram (libsoni.core.spectrogram)", "TSE (libsoni.core.tse)", "Index", "libsoni: A Python Toolbox for Sonifying Music Annotations and Feature Representations", "Module Index", "Utils (libsoni.util.utils)"], "terms": {"sonify_chroma_vector": 0, "chroma_vector": 0, "ndarrai": [0, 1, 3, 4, 5, 6, 10], "pitch_rang": [0, 3], "tupl": [0, 3, 6, 10], "int": [0, 1, 3, 4, 5, 6, 10], "20": [0, 3], "108": [0, 3], "filter": [0, 3], "bool": [0, 1, 3, 4, 5, 6, 10], "fals": [0, 3, 10], "f_center": [0, 3], "float": [0, 1, 3, 4, 5, 6, 10], "440": [0, 3, 4, 10], "0": [0, 1, 3, 4, 5, 6, 10], "octave_cutoff": [0, 3], "1": [0, 1, 3, 4, 5, 6, 10], "tuning_frequ": [0, 3, 4, 10], "fading_dur": [0, 1, 3, 5, 6, 10], "05": [0, 1, 3, 4, 5, 6], "sonification_dur": [0, 1, 4, 5, 6], "none": [0, 1, 3, 4, 5, 6, 10], "normal": [0, 1, 4, 5, 6, 10], "true": [0, 1, 4, 5, 6, 10], "f": [0, 1, 3, 4, 5, 6, 10], "22050": [0, 1, 3, 4, 5, 6, 10], "sourc": [0, 1, 3, 4, 5, 6, 8, 10], "sonifi": [0, 1, 4, 5, 6], "vector": 0, "us": [0, 1, 3, 4, 5, 6, 10], "sound": [0, 1, 3, 4, 6, 8], "synthesi": [0, 3, 4, 8], "base": [0, 1, 4, 10], "shepard": [0, 3], "tone": [0, 3, 10], "The": [0, 1, 3, 4], "can": [0, 1, 3, 4], "chang": [0, 3], "either": [0, 3], "option": [0, 3], "specifi": [0, 3], "pitch": [0, 3, 4, 6, 10], "rang": [0, 3], "both": [0, 3, 10], "also": [0, 3, 8], "combin": [0, 3], "shape": [0, 1, 3, 4, 5, 6, 10], "spectrum": [0, 3], "like": [0, 3], "bell": [0, 3], "curv": [0, 3], "center": [0, 3], "around": [0, 3], "frequenc": [0, 1, 3, 4, 5, 10], "while": [0, 1, 3, 4], "octav": [0, 3], "cutoff": [0, 3], "determin": [0, 1, 3, 4, 5, 6], "which": [0, 3], "amplitud": [0, 1, 3, 4, 6], "correspond": [0, 3, 4, 6, 10], "sinusoid": [0, 3, 5], "i": [0, 1, 3, 4, 5, 6, 8, 10], "5": [0, 1, 3, 4, 10], "paramet": [0, 1, 3, 4, 5, 6, 10], "np": [0, 1, 3, 4, 5, 6, 10], "float32": [0, 1, 3, 4, 5, 6, 10], "float64": [0, 1, 3, 4, 5, 6, 10], "n": [0, 1, 3, 4, 5, 6, 10], "12": [0, 10], "default": [0, 1, 3, 4, 5, 6, 10], "encount": [0, 3], "enabl": [0, 3, 8], "hertz": [0, 3, 4, 5, 10], "width": [0, 3], "tune": [0, 3, 4, 10], "durat": [0, 1, 3, 4, 5, 6, 10], "sonif": [0, 1, 3, 4, 5, 6, 8, 10], "sampl": [0, 1, 3, 4, 5, 6, 10], "fade": [0, 1, 3, 4, 5, 6, 10], "out": [0, 1, 3, 4, 5, 6, 10], "begin": [0, 1, 4, 5, 6], "end": [0, 1, 4, 5, 6, 10], "second": [0, 1, 3, 4, 5, 6, 10], "output": [0, 1, 4, 5, 6, 10], "signal": [0, 1, 3, 4, 5, 6, 10], "rate": [0, 1, 3, 4, 5, 6, 10], "per": [0, 1, 3, 4, 5, 6, 10], "return": [0, 1, 3, 4, 5, 6, 10], "chroma_sonif": 0, "m": [0, 1, 3, 4, 5, 6, 10], "sonify_chromagram": 0, "chromagram": 0, "h": 0, "hop": 0, "size": [0, 10], "stft": 0, "calcul": [0, 10], "For": [0, 4, 8, 10], "magnitud": 0, "reach": 0, "half": 0, "center_frequ": 0, "twice": [0, 1, 3, 4], "sonify_f0": 1, "time_f0": 1, "gain": [1, 3, 10], "partial": [1, 3, 4], "arrai": [1, 3, 4, 5, 6], "partials_amplitud": [1, 3, 4], "partials_phase_offset": [1, 3, 4], "trajectori": 1, "given": [1, 3, 4, 6, 10], "2d": 1, "numpi": [1, 4, 6], "must": 1, "contain": [1, 3, 4, 5, 10], "time": [1, 5, 6, 10], "posit": [1, 6], "associ": 1, "instantan": [1, 3], "phase": [1, 3, 4], "inform": [1, 4, 10], "summat": 1, "2": [1, 3, 4, 10], "valu": [1, 10], "desir": [1, 3, 4, 10], "fundament": [1, 3, 4], "an": [1, 3, 4, 8, 10], "lead": [1, 3, 4], "onli": [1, 3, 4, 8], "caus": [1, 3, 4], "first": [1, 3, 4], "have": [1, 3, 4], "ha": [1, 3, 4], "If": 1, "all": [1, 3, 4], "ar": [1, 3, 4], "set": [1, 3, 4, 10], "offset": [1, 3, 4, 6], "when": [1, 3, 4], "defin": [1, 3, 4], "f0_sonif": 1, "generate_click": 3, "69": [3, 4, 6, 10], "click_fading_dur": [3, 6], "gener": [3, 4, 8, 10], "click": [3, 4, 6, 10], "color": [3, 10], "generate_shepard_ton": 3, "pitch_class": 3, "class": 3, "01": [3, 4, 10], "shepard_ton": 3, "generate_sinusoid": 3, "generate_tone_additive_synthesi": 3, "addit": [3, 4], "custom": [3, 4, 6], "generated_ton": 3, "generate_tone_fm_synthesi": 3, "modulation_rate_rel": 3, "modulation_amplitud": 3, "modul": [3, 4], "synthes": 3, "multipl": [3, 4, 6], "fraction": [3, 4], "amount": [3, 4, 10], "generate_tone_instantaneous_phas": 3, "frequency_vector": 3, "gain_vector": 3, "wise": [3, 4], "generate_tone_wavet": 3, "wavet": 3, "depend": 3, "resampl": 3, "sonify_pianoroll_additive_synthesi": 4, "pianoroll_df": [4, 10], "datafram": [4, 10], "signal_fading_dur": 4, "note_fading_dur": 4, "represent": [4, 10], "assum": 4, "row": 4, "event": [4, 6, 8, 10], "describ": 4, "start": 4, "where": 4, "pd": [4, 10], "final": 4, "each": [4, 10], "note": 4, "pianoroll_sonif": 4, "sonify_pianoroll_click": 4, "colour": 4, "waveform": [4, 6, 10], "form": [4, 6], "1d": [4, 6], "sonify_pianoroll_fm_synthesi": 4, "mod_rate_rel": 4, "mod_amp": 4, "fm": 4, "sonify_pianoroll_sampl": 4, "reference_pitch": [4, 10], "audio": [4, 6, 10], "warp": [4, 6, 10], "version": [4, 6, 10], "k": [4, 5, 6, 10], "origin": [4, 10], "sonify_spectrogram": 5, "frequency_coeffici": 5, "time_coeffici": 5, "coeffici": [5, 6], "spectrogram_sonif": 5, "sonify_spectrogram_multi": 5, "num_process": 5, "multiprocess": 5, "effici": [5, 8], "number": [5, 10], "process": [5, 8], "sonify_tse_click": 6, "time_posit": 6, "click_pitch": 6, "25": 6, "click_amplitud": 6, "offset_rel": 6, "rel": 6, "indic": 6, "max": [6, 10], "tse_sonif": 6, "sonify_tse_multiple_click": 6, "times_pitch": 6, "list": 6, "thi": [6, 10], "function": [6, 8, 10], "creat": 6, "differ": 6, "compris": 6, "sonify_tse_multiple_sampl": 6, "times_sampl": 6, "sonify_tse_sampl": 6, "e": 6, "g": 6, "metronom": 6, "open": 8, "tailor": 8, "By": 8, "emploi": 8, "explicit": 8, "easi": 8, "understand": 8, "techniqu": 8, "offer": 8, "trigger": 8, "spectral": 8, "harmon": 8, "tonal": 8, "melod": 8, "rhythmic": 8, "aspect": 8, "unlik": 8, "exist": 8, "softwar": 8, "librari": 8, "focus": 8, "creativ": 8, "applic": 8, "design": 8, "meet": 8, "specif": 8, "need": 8, "mir": 8, "research": 8, "educ": 8, "It": 8, "aim": 8, "simplifi": 8, "explor": 8, "promot": 8, "more": 8, "intuit": 8, "approach": 8, "data": 8, "analysi": 8, "user": 8, "interact": 8, "acoust": 8, "meaning": 8, "wai": 8, "As": 8, "result": 8, "improv": 8, "analyt": 8, "capabl": 8, "scientist": 8, "up": 8, "new": 8, "avenu": 8, "innov": 8, "discoveri": 8, "fade_sign": 10, "normalized_sign": 10, "mix_sonification_and_origin": 10, "original_audio": 10, "gain_lin_sonif": 10, "gain_lin_original_audio": 10, "pan": 10, "take": 10, "mix": 10, "stereo": 10, "linear": 10, "control": 10, "mean": 10, "left": 10, "right": 10, "channel": 10, "same": 10, "stereo_audio": 10, "normalize_sign": 10, "pitch_to_frequ": 10, "refer": 10, "smooth_weight": 10, "weight": 10, "fading_sampl": 10, "smooth": 10, "input": 10, "weights_smooth": 10, "visualize_pianorol": 10, "xlabel": 10, "str": 10, "ylabel": 10, "titl": 10, "fmp_1": 10, "velocity_alpha": 10, "figsiz": 10, "4": 10, "ax": 10, "dpi": 10, "72": 10, "figur": 10, "visual": 10, "piano": 10, "roll": 10, "format": 10, "label": [4, 10], "text": 10, "x": 10, "axi": 10, "y": 10, "colormap": 10, "see": [8, 10], "http": 10, "github": [8, 10], "com": 10, "meinardmuel": 10, "libfmp": 10, "rectangular": 10, "region": 10, "veloc": [4, 10], "matplotlib": 10, "object": 10, "resolut": 10, "fig": 10, "instanc": 10, "warp_sampl": 10, "target_pitch": 10, "target_duration_sec": 10, "provid": 10, "get": 10, "shift": 10, "librosa": 10, "effect": 10, "pitch_shift": 10, "tempor": 10, "align": 10, "shorter": 10, "than": 10, "crop": 10, "els": 10, "longer": 10, "zero": 10, "pad": 10, "target": 10, "avoid": 10, "warped_sampl": 10, "column": 4, "instal": 8, "instruct": 8, "jupyt": 8, "notebook": 8, "repositori": 8, "groupmm": []}, "objects": {"libsoni.core": [[0, 0, 0, "-", "chroma"], [1, 0, 0, "-", "f0"], [3, 0, 0, "-", "methods"], [4, 0, 0, "-", "pianoroll"], [5, 0, 0, "-", "spectrogram"], [6, 0, 0, "-", "tse"]], "libsoni.core.chroma": [[0, 1, 1, "", "sonify_chroma_vector"], [0, 1, 1, "", "sonify_chromagram"]], "libsoni.core.f0": [[1, 1, 1, "", "sonify_f0"]], "libsoni.core.methods": [[3, 1, 1, "", "generate_click"], [3, 1, 1, "", "generate_shepard_tone"], [3, 1, 1, "", "generate_sinusoid"], [3, 1, 1, "", "generate_tone_additive_synthesis"], [3, 1, 1, "", "generate_tone_fm_synthesis"], [3, 1, 1, "", "generate_tone_instantaneous_phase"], [3, 1, 1, "", "generate_tone_wavetable"]], "libsoni.core.pianoroll": [[4, 1, 1, "", "sonify_pianoroll_additive_synthesis"], [4, 1, 1, "", "sonify_pianoroll_clicks"], [4, 1, 1, "", "sonify_pianoroll_fm_synthesis"], [4, 1, 1, "", "sonify_pianoroll_sample"]], "libsoni.core.spectrogram": [[5, 1, 1, "", "sonify_spectrogram"], [5, 1, 1, "", "sonify_spectrogram_multi"]], "libsoni.core.tse": [[6, 1, 1, "", "sonify_tse_clicks"], [6, 1, 1, "", "sonify_tse_multiple_clicks"], [6, 1, 1, "", "sonify_tse_multiple_samples"], [6, 1, 1, "", "sonify_tse_sample"]], "libsoni.util": [[10, 0, 0, "-", "utils"]], "libsoni.util.utils": [[10, 1, 1, "", "fade_signal"], [10, 1, 1, "", "mix_sonification_and_original"], [10, 1, 1, "", "normalize_signal"], [10, 1, 1, "", "pitch_to_frequency"], [10, 1, 1, "", "smooth_weights"], [10, 1, 1, "", "visualize_pianoroll"], [10, 1, 1, "", "warp_sample"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"chroma": 0, "libsoni": [0, 1, 2, 3, 4, 5, 6, 8, 10], "core": [0, 1, 2, 3, 4, 5, 6], "f0": 1, "featur": [2, 8], "method": 3, "piano": 4, "roll": 4, "pianorol": 4, "spectrogram": 5, "tse": 6, "index": [7, 9], "A": 8, "python": 8, "toolbox": 8, "sonifi": 8, "music": 8, "annot": 8, "represent": 8, "modul": 9, "util": 10}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.intersphinx": 1, "sphinx": 58}, "alltitles": {"Core Features (libsoni.core)": [[2, "core-features-libsoni-core"]], "Index": [[7, "index"]], "Module Index": [[9, "module-index"]], "Chroma (libsoni.core.chroma)": [[0, "module-libsoni.core.chroma"]], "F0 (libsoni.core.f0)": [[1, "module-libsoni.core.f0"]], "Methods (libsoni.core.methods)": [[3, "module-libsoni.core.methods"]], "Piano-Roll (libsoni.core.pianoroll)": [[4, "module-libsoni.core.pianoroll"]], "Spectrogram (libsoni.core.spectrogram)": [[5, "module-libsoni.core.spectrogram"]], "TSE (libsoni.core.tse)": [[6, "module-libsoni.core.tse"]], "Utils (libsoni.util.utils)": [[10, "module-libsoni.util.utils"]], "libsoni: A Python Toolbox for Sonifying Music Annotations and Feature Representations": [[8, "libsoni-a-python-toolbox-for-sonifying-music-annotations-and-feature-representations"]]}, "indexentries": {}})
\ No newline at end of file
diff --git a/docs/source/index.rst b/docs/source/index.rst
index f6464b4..c69ebe8 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -18,6 +18,9 @@ by enabling users to interact with their data in acoustically meaningful ways.
As a result, ``libsoni`` not only improves the analytical capabilities of music scientists
but also opens up new avenues for innovative music analysis and discovery.
+For installation instructions and educational Jupyter notebooks, see the `GitHub repository
+`_.
+
.. toctree::
:maxdepth: 2
diff --git a/libsoni/core/__pycache__/__init__.cpython-38.pyc b/libsoni/core/__pycache__/__init__.cpython-38.pyc
deleted file mode 100644
index c6c3a80..0000000
Binary files a/libsoni/core/__pycache__/__init__.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/chroma.cpython-38.pyc b/libsoni/core/__pycache__/chroma.cpython-38.pyc
deleted file mode 100644
index 2e1cbbd..0000000
Binary files a/libsoni/core/__pycache__/chroma.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/f0.cpython-38.pyc b/libsoni/core/__pycache__/f0.cpython-38.pyc
deleted file mode 100644
index 5ae39ca..0000000
Binary files a/libsoni/core/__pycache__/f0.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/methods.cpython-38.pyc b/libsoni/core/__pycache__/methods.cpython-38.pyc
deleted file mode 100644
index b3878a1..0000000
Binary files a/libsoni/core/__pycache__/methods.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/pianoroll.cpython-38.pyc b/libsoni/core/__pycache__/pianoroll.cpython-38.pyc
deleted file mode 100644
index 7a1f189..0000000
Binary files a/libsoni/core/__pycache__/pianoroll.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/spectrogram.cpython-38.pyc b/libsoni/core/__pycache__/spectrogram.cpython-38.pyc
deleted file mode 100644
index dfe12e9..0000000
Binary files a/libsoni/core/__pycache__/spectrogram.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/core/__pycache__/tse.cpython-38.pyc b/libsoni/core/__pycache__/tse.cpython-38.pyc
deleted file mode 100644
index e19510e..0000000
Binary files a/libsoni/core/__pycache__/tse.cpython-38.pyc and /dev/null differ
diff --git a/libsoni/util/__pycache__/__init__.cpython-38.pyc b/libsoni/util/__pycache__/__init__.cpython-38.pyc
index 9a95619..c41c36f 100644
Binary files a/libsoni/util/__pycache__/__init__.cpython-38.pyc and b/libsoni/util/__pycache__/__init__.cpython-38.pyc differ
diff --git a/libsoni/util/__pycache__/utils.cpython-38.pyc b/libsoni/util/__pycache__/utils.cpython-38.pyc
index 1c44473..49d03d3 100644
Binary files a/libsoni/util/__pycache__/utils.cpython-38.pyc and b/libsoni/util/__pycache__/utils.cpython-38.pyc differ