summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 07:55:57 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 07:55:57 +0000
commitd4a616dab59e554457d08ea2079b60e65a6a9316 (patch)
treed3360c89f0038f1a17f3bedb896fb29b5d9ec594
parent636338f43069e333886da7a4d5c7f90437e2cc62 (diff)
automatic import of python-birdears
-rw-r--r--.gitignore1
-rw-r--r--python-birdears.spec934
-rw-r--r--sources1
3 files changed, 936 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d27c38f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/birdears-0.3.14.tar.gz
diff --git a/python-birdears.spec b/python-birdears.spec
new file mode 100644
index 0000000..e94861d
--- /dev/null
+++ b/python-birdears.spec
@@ -0,0 +1,934 @@
+%global _empty_manifest_terminate_build 0
+Name: python-birdears
+Version: 0.3.14
+Release: 1
+Summary: Functional Ear Training for Musicians
+License: AGPLv3
+URL: https://github.com/iacchus/birdears/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/fe/64/ee8864e5b5f298106e9e2fbb8035a27f3f26794f2b8c53159230f1d2d08f/birdears-0.3.14.tar.gz
+BuildArch: noarch
+
+Requires: python3-click
+Requires: python3-toml
+Requires: python3-urwid
+Requires: python3-importlib-metadata
+Requires: python3-setuptools
+Requires: python3-pytest
+Requires: python3-pytest-cov
+
+%description
+# birdears
+
+[![Maintenance](https://img.shields.io/maintenance/yes/2023.svg?style=flat-square)](https://github.com/iacchus/birdears/issues/new?title=Is+birdears+still+maintained&body=Please+file+an+issue+if+the+maintained+button+says+no)
+[![Travis Build Status](https://img.shields.io/travis/iacchus/birdears.svg?style=flat-square&label=build)](https://travis-ci.org/iacchus/birdears)
+[![Build Status](https://api.cirrus-ci.com/github/iacchus/birdears.svg)](https://cirrus-ci.com/github/iacchus/birdears)
+[![Coveralls](https://img.shields.io/coveralls/iacchus/birdears.svg?style=flat-square&label=coverage)](https://coveralls.io/github/iacchus/birdears)
+[![Awesome Sheet Music](https://img.shields.io/badge/awesome-sheet%20music-blue.svg?style=flat-square&logoWidth=14;&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAACXBIWXMAAD2EAAA9hAHVrK90AAAAB3RJTUUH4QYVEQ4dGSq4mgAAAuVJREFUKM8FwUtoHGUAB%2FD%2F983s7CSb7s6%2BsrtJtqbEJA21llgQi4VaCL5QRKXQg6JXEUTqrfQi9CTozYPeUgrtxceh1kbEEEtBeslzTbdrup109r2zMzvZ2Xl8s9%2F4%2B5Hvfg4vOGpzqJf3aCpY%2FfTMi5OvE%2B6mdx%2Fud0YjP5PNxpiuh6X9%2F3I%2F6mzcScvT%2BvjYCUucknhkYSnvNYTvr5169YNLCEMAHKfPvZxwrBZaqoaGWn%2BNBNWlJ4dzn3147n2totckelwZhdr%2B9U%2FOvnnx0kRSgTJdhOBpIPYzSMyE7DaQJEcoFOO5lFK%2BeszcjxblGU%2BUzHosO5%2B6Ek2kQUYuupt3cXxxEoTIYN0WFDGHNnGwvVFGLJ1eXqv%2B8dzJPK%2FRhvbLKwtnzoI7BvyBjqBzCGEiC5ougAgCCJUAymHZPuYWc8J27cGV3c76jOgM9FlwjpE7APMZAscHH%2FYQsBgAhqBvYCyeREgRbm%2FV3aXixLwf6DFxqpCIDpqPQMQIjNoTBLaN9uYO7v30T9h72sHlL1fIV1%2Bvh0mBsp16na6czmUuJM5XaM%2Fo5UEp9JqGeGEO7tBHfGYW73x8kay8%2FTwRvADL02PIClw6shkxbd8sxl%2Fo0yghVl%2FvIyoL0DY30G8ZcKt7kDnDVDGHQbOFNAFZzlC4ozDiub6SofGAWsNIZWh10X7WwtODNsyeh15ZhfVYw6M%2Ft9Do%2B1jdMsPAC%2BEEHCyAy5WCT5VE%2FqDyr4rh0IZlu%2BygZg%2FdaAw2O0KTUWh%2FVXBe4kT1KVgIeAPh1rHxJBdufHsnKJXvXK7slIV61SodNI7iswVRDgnB%2FEuz8IiDvs1xs2yH1Q099oaZfyj5lkRVf4Ta4%2B69vuF6ajeodkRJ2tzroVRq4%2F5v2xiTFahd115ITn5eu23L5on3mBn5O0UNTxB2m%2FIDdZD5hiUW7qcyhd%2B%2F%2BHUNc2%2B9i8OBwFfXDo11Hfjho2t3I4tRIRoYNBAV738fRoHSSCa2GwAAAABJRU5ErkJggg%3D%3D)](https://iacchus.github.io/awesome-sheet-music/)
+
+[![GitHub (pre-)release](https://img.shields.io/github/release/iacchus/birdears/all.svg?style=flat-square)](https://github.com/iacchus/birdears/releases)
+[![PyPI Status](https://img.shields.io/pypi/status/birdears.svg?style=flat-square&label=pypi-status)](https://pypi.python.org/pypi/birdears)
+[![PyPI Version](https://img.shields.io/pypi/v/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![PyPI Python Versions](https://img.shields.io/pypi/pyversions/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![Documentation Status](https://img.shields.io/badge/readthedocs-latest-orange.svg?style=flat-square)](https://birdears.readthedocs.io/en/latest/)
+
+| **Licensed with [GNU AGPLv3](https://github.com/iacchus/birdears/blob/master/LICENSE)** |
+| ----------------- |
+| [![agpl3](https://github.com/iacchus/birdears/raw/master/docs/_static/img/agplv3-155x51.png)](https://github.com/iacchus/birdears/blob/master/LICENSE.txt) |
+
+
+- [Introduction](#introduction)
+ - [birdears](#birdears)
+ - [What is musical ear training](#what-is-musical-ear-training)
+ - [Features](#features)
+- [Installing](#installing)
+ - [Installing the dependencies](#installing-the-dependencies)
+ - [Arch Linux](#arch-linux)
+ - [Installing birdears](#installing-birdears)
+ - [In-depth installation](#in-depth-installation)
+ - [Alternative installation: Cloning this Repository](#alternative-installation-cloning-this-repository)
+- [Running](#running)
+- [Keybindings](#keybindings)
+- [Documentation](#documentation)
+- [Contributing](#contributing)
+
+### Support Channels
+
+| Channel | Site | Description |
+| --- | --- | --- |
+| **Chat (Matrix)** | [#birdears:mozilla.org](https://matrix.to/#/#birdears:mozilla.org) | *chat channel* |
+| **GitHub Discussions** | [discussions](https://github.com/iacchus/birdears/discussions) | *general discussion* |
+| **GitHub Issues** | [issues](https://github.com/iacchus/birdears/issues) | *for issues with the software* |
+| **Documentation** | [https://birdears.readthedocs.io/](https://birdears.readthedocs.io/) | *extended documentation at **ReadTheDocs*** |
+| **PyPI** | [https://pypi.python.org/pypi/birdears](https://pypi.python.org/pypi/birdears) | *python package/repository* |
+| **GitHub** | [https://github.com/iacchus/birdears](https://github.com/iacchus/birdears) | *mainline repository* |
+
+### TUI
+
+![screenshot](https://github.com/iacchus/birdears/raw/master/docs/_static/img/screen-20190211-163428-BRT.png)
+
+### CLI
+
+![birdears screencast](https://github.com/iacchus/birdears/raw/master/docs/_static/img/use.gif)
+
+## Introduction
+
+### birdears
+
+`birdears` is a software written in Python 3 for ear training for musicians
+(musical intelligence, transcribing music, composing). It is a clone of the
+method used by [Funcitional Ear Trainer](https://play.google.com/store/apps/details?id=com.kaizen9.fet.android) app for Android.
+
+It has five different kinds of musical exercises, which are:
+`melodic interval`, `harmonic interval`, `melodic dictation`, `instrumental`,
+and `note name`.
+
+In resume, with the *melodic interval* mode two notes are played one after the
+other and you have to guess the interval; with the `harmonic interval` mode,
+two notes are played simoutaneously (harmonically) and you should guess the
+interval.
+
+With the *melodic dictation* mode, more than 2 notes are played (*ie*., a
+melodic dictation) and you should tell what are the all intervals composing the
+melody played.
+
+The *instrumental* mode works in a fashion similar to the melodic dictation
+mode, but you will be expected to play the notes on your instrument, *ie*.,
+birdears will not wait for a typed reply and you should prectice with your own
+judgement. The melody can be repeated as much times as necessary so you can
+the time you need to try out.
+
+The `notename` is made for you to learn the note names inside a scale by its
+melodic interval from the tonic. For example, in a tonic of 'C',
+when a `P5` interval is played, you are expected to reply with the `C`'s 5th,
+this is, `G`.
+
+### What is musical ear training
+
+*this needs to be written. The method.*
+
+It is currently [being written here](docs/WRITE-ME-method.md)
+
+### Features
+
+* Different kind of exercises for ear training.
+* Pretty much configurable: you can create more difficult exercises as you progress.
+* Exercises from configuration files: you can make presets and share them
+* Can be used interactively from a Python console. *(docs needed)*
+* Can be used as a Python library. *(docs needed)*
+
+## Installing
+
+### 1. Installing the dependencies
+
+`birdears` depends on `python >= 3.7` and `sox`; the latter should be installed
+by your distribution's package manager (supposing you're using GNU/Linux) and
+provides the `play` command.)
+
+*(Please send the steps for your OS)*
+
+#### Arch Linux
+
+```sh
+sudo pacman -Syu sox python python-pip
+```
+
+#### Debian/Ubuntu
+
+```sh
+sudo apt install sox python3 python3-pip python3-venv
+```
+
+### 2. Installing birdears
+
+1. After installing the above stated dependencies for your operating system, you
+can install the software with the following command:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+2. Then add the installation directory to your PATH via your `.bashrc`, `.zshrc`,
+or the respective file for your shell:
+
+```sh
+export PATH="$(python3 -m site --user-base)/bin:${PATH}"
+```
+
+This path is where the command will be installed when using `--user` method.
+
+If you prefer, you can skip step 2 and start the software with:
+
+```sh
+python -m birdears --help
+```
+
+### 3. Running
+
+After installing just run:
+
+```sh
+birdears --help
+```
+
+or
+
+```sh
+python3 -m birdears --help
+```
+
+
+#### What is 'pip'?
+
+The software **pip** is the python package installer. The arguments used are
+the following:
+
+| arg | meaning |
+| --- | --- |
+| pip3 install | install command |
+| --user | installs on the user home; no need to root access/ global install |
+| --upgrade | if it is already installed, upgrade nonetheless if there is an upgrade available |
+| --no-cache-dir | avoid previously downloaded versions; always check PyPI server for newer versions |
+| birdears | the software to be installed |
+
+**pip** will then download and install the software from the Python's official
+repository, the [package in here](https://pypi.org/project/birdears/).
+
+#### Addendum: In-depth installation using a virtualenv
+
+You can choose to use a virtualenv to use birdears; this should give you an
+idea on how to setup one virtualenv.
+
+You should first install virtualenv (for python3) using your distribution's
+package (supposing you're on linux), then on terminal:
+
+*use `python` or `python3` depending on your operating system distribution.*
+
+```sh
+python -m venv ~/.venv # create the virtualenv in the ~/.venv/ directory
+
+source ~/.venv/bin/activate # activate the virtualenv; this should be done
+ # every time you may want to run the software
+ # installed here. You can also put this line in
+ # your .bashrc or .zshrc etc, so to start with
+ # the shell.
+
+pip install birdears # this will install the software
+
+birdears --help # and this will run it
+```
+
+### Upgrading birdears
+
+The same command that installs upgrades it:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+## Keybindings
+
+The following keyboard diagrams should give you an idea on how the keybindings work. Please
+note how the keys on the line from `z` (*unison*) to `,` (comma, *octave*) represent the notes
+that are *natural* to the mode, and the line above represent the chromatics.
+
+Also, for exercises with two octaves, the **uppercased keys represent the second octave**. For
+example, `z` is *unison*, `,` is the *octave*, `Z` (uppercased) is the *double octave*. The same
+for all the other intervals.
+
+### Ionian (Major)
+
+These are the keybindings for the **Ionian (Major) Scale**; black keys are the chromatic notes.
+
+![birdears - ionian(major) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/ionian.png)
+
+### Dorian
+
+![birdears - dorian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/dorian.png)
+
+### Phrygian
+
+![birdears - phryigian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/phrygian.png)
+
+### Lydian
+
+![birdears - lydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/lydian.png)
+
+### Mixolydian
+
+![birdears - mixolydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/mixolydian.png)
+
+### Aeolian (minor)
+
+![birdears - aeolian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/minor.png)
+
+### Locrian
+
+![birdears - locrian(minor) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/locrian.png)
+
+## Advanced
+
+![birdears - advanced keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/keyboard-layout.png)
+
+*this is still being improved*
+
+Legend for the keys on the diagram above:
+
+| Text Format | Scale Direction | Octave |
+|--------------------|-----------------|------------------------------------|
+| blue (bold italic) | descending | second octave (shift or caps lock) |
+| pink (bold) | descending | first octave |
+| black/white (bold) | ascending | first octave |
+| black (italic) | ascending | second octave (shift or caps lock) |
+
+**White keys** are the diatonic notes, **black keys** are the chromatic ones.
+
+Descendent mode are usable for exercises with `-d` or `--descendent`.
+
+Chromatic keys are usable for exercises with `-c` or `--chromatic`.
+
+Second octave is usable for exercises with `-n 2` or `--n_octaves 2`
+
+## Documentation
+
+Full documentation for this software is available at birdears [Read The Docs](https://birdears.readthedocs.io/en/latest/)
+and also in [PDF format](https://github.com/iacchus/birdears/raw/master/docs/sphinx/_build/latex/birdears.pdf).
+
+## Contributors
+
+[![birdears' Contributors](https://contrib.rocks/image?repo=iacchus/birdears&max=101)](https://github.com/iacchus/birdears/graphs/contributors)
+
+Made with [contrib.rocks](https://contrib.rocks).
+
+## Contributing
+
+Those who want to contribute to this project can read [CONTRIBUTING.md](CONTRIBUTING.md).
+
+
+%package -n python3-birdears
+Summary: Functional Ear Training for Musicians
+Provides: python-birdears
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-birdears
+# birdears
+
+[![Maintenance](https://img.shields.io/maintenance/yes/2023.svg?style=flat-square)](https://github.com/iacchus/birdears/issues/new?title=Is+birdears+still+maintained&body=Please+file+an+issue+if+the+maintained+button+says+no)
+[![Travis Build Status](https://img.shields.io/travis/iacchus/birdears.svg?style=flat-square&label=build)](https://travis-ci.org/iacchus/birdears)
+[![Build Status](https://api.cirrus-ci.com/github/iacchus/birdears.svg)](https://cirrus-ci.com/github/iacchus/birdears)
+[![Coveralls](https://img.shields.io/coveralls/iacchus/birdears.svg?style=flat-square&label=coverage)](https://coveralls.io/github/iacchus/birdears)
+[![Awesome Sheet Music](https://img.shields.io/badge/awesome-sheet%20music-blue.svg?style=flat-square&logoWidth=14;&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAACXBIWXMAAD2EAAA9hAHVrK90AAAAB3RJTUUH4QYVEQ4dGSq4mgAAAuVJREFUKM8FwUtoHGUAB%2FD%2F983s7CSb7s6%2BsrtJtqbEJA21llgQi4VaCL5QRKXQg6JXEUTqrfQi9CTozYPeUgrtxceh1kbEEEtBeslzTbdrup109r2zMzvZ2Xl8s9%2F4%2B5Hvfg4vOGpzqJf3aCpY%2FfTMi5OvE%2B6mdx%2Fud0YjP5PNxpiuh6X9%2F3I%2F6mzcScvT%2BvjYCUucknhkYSnvNYTvr5169YNLCEMAHKfPvZxwrBZaqoaGWn%2BNBNWlJ4dzn3147n2totckelwZhdr%2B9U%2FOvnnx0kRSgTJdhOBpIPYzSMyE7DaQJEcoFOO5lFK%2BeszcjxblGU%2BUzHosO5%2B6Ek2kQUYuupt3cXxxEoTIYN0WFDGHNnGwvVFGLJ1eXqv%2B8dzJPK%2FRhvbLKwtnzoI7BvyBjqBzCGEiC5ougAgCCJUAymHZPuYWc8J27cGV3c76jOgM9FlwjpE7APMZAscHH%2FYQsBgAhqBvYCyeREgRbm%2FV3aXixLwf6DFxqpCIDpqPQMQIjNoTBLaN9uYO7v30T9h72sHlL1fIV1%2Bvh0mBsp16na6czmUuJM5XaM%2Fo5UEp9JqGeGEO7tBHfGYW73x8kay8%2FTwRvADL02PIClw6shkxbd8sxl%2Fo0yghVl%2FvIyoL0DY30G8ZcKt7kDnDVDGHQbOFNAFZzlC4ozDiub6SofGAWsNIZWh10X7WwtODNsyeh15ZhfVYw6M%2Ft9Do%2B1jdMsPAC%2BEEHCyAy5WCT5VE%2FqDyr4rh0IZlu%2BygZg%2FdaAw2O0KTUWh%2FVXBe4kT1KVgIeAPh1rHxJBdufHsnKJXvXK7slIV61SodNI7iswVRDgnB%2FEuz8IiDvs1xs2yH1Q099oaZfyj5lkRVf4Ta4%2B69vuF6ajeodkRJ2tzroVRq4%2F5v2xiTFahd115ITn5eu23L5on3mBn5O0UNTxB2m%2FIDdZD5hiUW7qcyhd%2B%2F%2BHUNc2%2B9i8OBwFfXDo11Hfjho2t3I4tRIRoYNBAV738fRoHSSCa2GwAAAABJRU5ErkJggg%3D%3D)](https://iacchus.github.io/awesome-sheet-music/)
+
+[![GitHub (pre-)release](https://img.shields.io/github/release/iacchus/birdears/all.svg?style=flat-square)](https://github.com/iacchus/birdears/releases)
+[![PyPI Status](https://img.shields.io/pypi/status/birdears.svg?style=flat-square&label=pypi-status)](https://pypi.python.org/pypi/birdears)
+[![PyPI Version](https://img.shields.io/pypi/v/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![PyPI Python Versions](https://img.shields.io/pypi/pyversions/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![Documentation Status](https://img.shields.io/badge/readthedocs-latest-orange.svg?style=flat-square)](https://birdears.readthedocs.io/en/latest/)
+
+| **Licensed with [GNU AGPLv3](https://github.com/iacchus/birdears/blob/master/LICENSE)** |
+| ----------------- |
+| [![agpl3](https://github.com/iacchus/birdears/raw/master/docs/_static/img/agplv3-155x51.png)](https://github.com/iacchus/birdears/blob/master/LICENSE.txt) |
+
+
+- [Introduction](#introduction)
+ - [birdears](#birdears)
+ - [What is musical ear training](#what-is-musical-ear-training)
+ - [Features](#features)
+- [Installing](#installing)
+ - [Installing the dependencies](#installing-the-dependencies)
+ - [Arch Linux](#arch-linux)
+ - [Installing birdears](#installing-birdears)
+ - [In-depth installation](#in-depth-installation)
+ - [Alternative installation: Cloning this Repository](#alternative-installation-cloning-this-repository)
+- [Running](#running)
+- [Keybindings](#keybindings)
+- [Documentation](#documentation)
+- [Contributing](#contributing)
+
+### Support Channels
+
+| Channel | Site | Description |
+| --- | --- | --- |
+| **Chat (Matrix)** | [#birdears:mozilla.org](https://matrix.to/#/#birdears:mozilla.org) | *chat channel* |
+| **GitHub Discussions** | [discussions](https://github.com/iacchus/birdears/discussions) | *general discussion* |
+| **GitHub Issues** | [issues](https://github.com/iacchus/birdears/issues) | *for issues with the software* |
+| **Documentation** | [https://birdears.readthedocs.io/](https://birdears.readthedocs.io/) | *extended documentation at **ReadTheDocs*** |
+| **PyPI** | [https://pypi.python.org/pypi/birdears](https://pypi.python.org/pypi/birdears) | *python package/repository* |
+| **GitHub** | [https://github.com/iacchus/birdears](https://github.com/iacchus/birdears) | *mainline repository* |
+
+### TUI
+
+![screenshot](https://github.com/iacchus/birdears/raw/master/docs/_static/img/screen-20190211-163428-BRT.png)
+
+### CLI
+
+![birdears screencast](https://github.com/iacchus/birdears/raw/master/docs/_static/img/use.gif)
+
+## Introduction
+
+### birdears
+
+`birdears` is a software written in Python 3 for ear training for musicians
+(musical intelligence, transcribing music, composing). It is a clone of the
+method used by [Funcitional Ear Trainer](https://play.google.com/store/apps/details?id=com.kaizen9.fet.android) app for Android.
+
+It has five different kinds of musical exercises, which are:
+`melodic interval`, `harmonic interval`, `melodic dictation`, `instrumental`,
+and `note name`.
+
+In resume, with the *melodic interval* mode two notes are played one after the
+other and you have to guess the interval; with the `harmonic interval` mode,
+two notes are played simoutaneously (harmonically) and you should guess the
+interval.
+
+With the *melodic dictation* mode, more than 2 notes are played (*ie*., a
+melodic dictation) and you should tell what are the all intervals composing the
+melody played.
+
+The *instrumental* mode works in a fashion similar to the melodic dictation
+mode, but you will be expected to play the notes on your instrument, *ie*.,
+birdears will not wait for a typed reply and you should prectice with your own
+judgement. The melody can be repeated as much times as necessary so you can
+the time you need to try out.
+
+The `notename` is made for you to learn the note names inside a scale by its
+melodic interval from the tonic. For example, in a tonic of 'C',
+when a `P5` interval is played, you are expected to reply with the `C`'s 5th,
+this is, `G`.
+
+### What is musical ear training
+
+*this needs to be written. The method.*
+
+It is currently [being written here](docs/WRITE-ME-method.md)
+
+### Features
+
+* Different kind of exercises for ear training.
+* Pretty much configurable: you can create more difficult exercises as you progress.
+* Exercises from configuration files: you can make presets and share them
+* Can be used interactively from a Python console. *(docs needed)*
+* Can be used as a Python library. *(docs needed)*
+
+## Installing
+
+### 1. Installing the dependencies
+
+`birdears` depends on `python >= 3.7` and `sox`; the latter should be installed
+by your distribution's package manager (supposing you're using GNU/Linux) and
+provides the `play` command.)
+
+*(Please send the steps for your OS)*
+
+#### Arch Linux
+
+```sh
+sudo pacman -Syu sox python python-pip
+```
+
+#### Debian/Ubuntu
+
+```sh
+sudo apt install sox python3 python3-pip python3-venv
+```
+
+### 2. Installing birdears
+
+1. After installing the above stated dependencies for your operating system, you
+can install the software with the following command:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+2. Then add the installation directory to your PATH via your `.bashrc`, `.zshrc`,
+or the respective file for your shell:
+
+```sh
+export PATH="$(python3 -m site --user-base)/bin:${PATH}"
+```
+
+This path is where the command will be installed when using `--user` method.
+
+If you prefer, you can skip step 2 and start the software with:
+
+```sh
+python -m birdears --help
+```
+
+### 3. Running
+
+After installing just run:
+
+```sh
+birdears --help
+```
+
+or
+
+```sh
+python3 -m birdears --help
+```
+
+
+#### What is 'pip'?
+
+The software **pip** is the python package installer. The arguments used are
+the following:
+
+| arg | meaning |
+| --- | --- |
+| pip3 install | install command |
+| --user | installs on the user home; no need to root access/ global install |
+| --upgrade | if it is already installed, upgrade nonetheless if there is an upgrade available |
+| --no-cache-dir | avoid previously downloaded versions; always check PyPI server for newer versions |
+| birdears | the software to be installed |
+
+**pip** will then download and install the software from the Python's official
+repository, the [package in here](https://pypi.org/project/birdears/).
+
+#### Addendum: In-depth installation using a virtualenv
+
+You can choose to use a virtualenv to use birdears; this should give you an
+idea on how to setup one virtualenv.
+
+You should first install virtualenv (for python3) using your distribution's
+package (supposing you're on linux), then on terminal:
+
+*use `python` or `python3` depending on your operating system distribution.*
+
+```sh
+python -m venv ~/.venv # create the virtualenv in the ~/.venv/ directory
+
+source ~/.venv/bin/activate # activate the virtualenv; this should be done
+ # every time you may want to run the software
+ # installed here. You can also put this line in
+ # your .bashrc or .zshrc etc, so to start with
+ # the shell.
+
+pip install birdears # this will install the software
+
+birdears --help # and this will run it
+```
+
+### Upgrading birdears
+
+The same command that installs upgrades it:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+## Keybindings
+
+The following keyboard diagrams should give you an idea on how the keybindings work. Please
+note how the keys on the line from `z` (*unison*) to `,` (comma, *octave*) represent the notes
+that are *natural* to the mode, and the line above represent the chromatics.
+
+Also, for exercises with two octaves, the **uppercased keys represent the second octave**. For
+example, `z` is *unison*, `,` is the *octave*, `Z` (uppercased) is the *double octave*. The same
+for all the other intervals.
+
+### Ionian (Major)
+
+These are the keybindings for the **Ionian (Major) Scale**; black keys are the chromatic notes.
+
+![birdears - ionian(major) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/ionian.png)
+
+### Dorian
+
+![birdears - dorian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/dorian.png)
+
+### Phrygian
+
+![birdears - phryigian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/phrygian.png)
+
+### Lydian
+
+![birdears - lydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/lydian.png)
+
+### Mixolydian
+
+![birdears - mixolydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/mixolydian.png)
+
+### Aeolian (minor)
+
+![birdears - aeolian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/minor.png)
+
+### Locrian
+
+![birdears - locrian(minor) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/locrian.png)
+
+## Advanced
+
+![birdears - advanced keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/keyboard-layout.png)
+
+*this is still being improved*
+
+Legend for the keys on the diagram above:
+
+| Text Format | Scale Direction | Octave |
+|--------------------|-----------------|------------------------------------|
+| blue (bold italic) | descending | second octave (shift or caps lock) |
+| pink (bold) | descending | first octave |
+| black/white (bold) | ascending | first octave |
+| black (italic) | ascending | second octave (shift or caps lock) |
+
+**White keys** are the diatonic notes, **black keys** are the chromatic ones.
+
+Descendent mode are usable for exercises with `-d` or `--descendent`.
+
+Chromatic keys are usable for exercises with `-c` or `--chromatic`.
+
+Second octave is usable for exercises with `-n 2` or `--n_octaves 2`
+
+## Documentation
+
+Full documentation for this software is available at birdears [Read The Docs](https://birdears.readthedocs.io/en/latest/)
+and also in [PDF format](https://github.com/iacchus/birdears/raw/master/docs/sphinx/_build/latex/birdears.pdf).
+
+## Contributors
+
+[![birdears' Contributors](https://contrib.rocks/image?repo=iacchus/birdears&max=101)](https://github.com/iacchus/birdears/graphs/contributors)
+
+Made with [contrib.rocks](https://contrib.rocks).
+
+## Contributing
+
+Those who want to contribute to this project can read [CONTRIBUTING.md](CONTRIBUTING.md).
+
+
+%package help
+Summary: Development documents and examples for birdears
+Provides: python3-birdears-doc
+%description help
+# birdears
+
+[![Maintenance](https://img.shields.io/maintenance/yes/2023.svg?style=flat-square)](https://github.com/iacchus/birdears/issues/new?title=Is+birdears+still+maintained&body=Please+file+an+issue+if+the+maintained+button+says+no)
+[![Travis Build Status](https://img.shields.io/travis/iacchus/birdears.svg?style=flat-square&label=build)](https://travis-ci.org/iacchus/birdears)
+[![Build Status](https://api.cirrus-ci.com/github/iacchus/birdears.svg)](https://cirrus-ci.com/github/iacchus/birdears)
+[![Coveralls](https://img.shields.io/coveralls/iacchus/birdears.svg?style=flat-square&label=coverage)](https://coveralls.io/github/iacchus/birdears)
+[![Awesome Sheet Music](https://img.shields.io/badge/awesome-sheet%20music-blue.svg?style=flat-square&logoWidth=14;&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABmJLR0QA%2FwD%2FAP%2BgvaeTAAAACXBIWXMAAD2EAAA9hAHVrK90AAAAB3RJTUUH4QYVEQ4dGSq4mgAAAuVJREFUKM8FwUtoHGUAB%2FD%2F983s7CSb7s6%2BsrtJtqbEJA21llgQi4VaCL5QRKXQg6JXEUTqrfQi9CTozYPeUgrtxceh1kbEEEtBeslzTbdrup109r2zMzvZ2Xl8s9%2F4%2B5Hvfg4vOGpzqJf3aCpY%2FfTMi5OvE%2B6mdx%2Fud0YjP5PNxpiuh6X9%2F3I%2F6mzcScvT%2BvjYCUucknhkYSnvNYTvr5169YNLCEMAHKfPvZxwrBZaqoaGWn%2BNBNWlJ4dzn3147n2totckelwZhdr%2B9U%2FOvnnx0kRSgTJdhOBpIPYzSMyE7DaQJEcoFOO5lFK%2BeszcjxblGU%2BUzHosO5%2B6Ek2kQUYuupt3cXxxEoTIYN0WFDGHNnGwvVFGLJ1eXqv%2B8dzJPK%2FRhvbLKwtnzoI7BvyBjqBzCGEiC5ougAgCCJUAymHZPuYWc8J27cGV3c76jOgM9FlwjpE7APMZAscHH%2FYQsBgAhqBvYCyeREgRbm%2FV3aXixLwf6DFxqpCIDpqPQMQIjNoTBLaN9uYO7v30T9h72sHlL1fIV1%2Bvh0mBsp16na6czmUuJM5XaM%2Fo5UEp9JqGeGEO7tBHfGYW73x8kay8%2FTwRvADL02PIClw6shkxbd8sxl%2Fo0yghVl%2FvIyoL0DY30G8ZcKt7kDnDVDGHQbOFNAFZzlC4ozDiub6SofGAWsNIZWh10X7WwtODNsyeh15ZhfVYw6M%2Ft9Do%2B1jdMsPAC%2BEEHCyAy5WCT5VE%2FqDyr4rh0IZlu%2BygZg%2FdaAw2O0KTUWh%2FVXBe4kT1KVgIeAPh1rHxJBdufHsnKJXvXK7slIV61SodNI7iswVRDgnB%2FEuz8IiDvs1xs2yH1Q099oaZfyj5lkRVf4Ta4%2B69vuF6ajeodkRJ2tzroVRq4%2F5v2xiTFahd115ITn5eu23L5on3mBn5O0UNTxB2m%2FIDdZD5hiUW7qcyhd%2B%2F%2BHUNc2%2B9i8OBwFfXDo11Hfjho2t3I4tRIRoYNBAV738fRoHSSCa2GwAAAABJRU5ErkJggg%3D%3D)](https://iacchus.github.io/awesome-sheet-music/)
+
+[![GitHub (pre-)release](https://img.shields.io/github/release/iacchus/birdears/all.svg?style=flat-square)](https://github.com/iacchus/birdears/releases)
+[![PyPI Status](https://img.shields.io/pypi/status/birdears.svg?style=flat-square&label=pypi-status)](https://pypi.python.org/pypi/birdears)
+[![PyPI Version](https://img.shields.io/pypi/v/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![PyPI Python Versions](https://img.shields.io/pypi/pyversions/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)
+[![Documentation Status](https://img.shields.io/badge/readthedocs-latest-orange.svg?style=flat-square)](https://birdears.readthedocs.io/en/latest/)
+
+| **Licensed with [GNU AGPLv3](https://github.com/iacchus/birdears/blob/master/LICENSE)** |
+| ----------------- |
+| [![agpl3](https://github.com/iacchus/birdears/raw/master/docs/_static/img/agplv3-155x51.png)](https://github.com/iacchus/birdears/blob/master/LICENSE.txt) |
+
+
+- [Introduction](#introduction)
+ - [birdears](#birdears)
+ - [What is musical ear training](#what-is-musical-ear-training)
+ - [Features](#features)
+- [Installing](#installing)
+ - [Installing the dependencies](#installing-the-dependencies)
+ - [Arch Linux](#arch-linux)
+ - [Installing birdears](#installing-birdears)
+ - [In-depth installation](#in-depth-installation)
+ - [Alternative installation: Cloning this Repository](#alternative-installation-cloning-this-repository)
+- [Running](#running)
+- [Keybindings](#keybindings)
+- [Documentation](#documentation)
+- [Contributing](#contributing)
+
+### Support Channels
+
+| Channel | Site | Description |
+| --- | --- | --- |
+| **Chat (Matrix)** | [#birdears:mozilla.org](https://matrix.to/#/#birdears:mozilla.org) | *chat channel* |
+| **GitHub Discussions** | [discussions](https://github.com/iacchus/birdears/discussions) | *general discussion* |
+| **GitHub Issues** | [issues](https://github.com/iacchus/birdears/issues) | *for issues with the software* |
+| **Documentation** | [https://birdears.readthedocs.io/](https://birdears.readthedocs.io/) | *extended documentation at **ReadTheDocs*** |
+| **PyPI** | [https://pypi.python.org/pypi/birdears](https://pypi.python.org/pypi/birdears) | *python package/repository* |
+| **GitHub** | [https://github.com/iacchus/birdears](https://github.com/iacchus/birdears) | *mainline repository* |
+
+### TUI
+
+![screenshot](https://github.com/iacchus/birdears/raw/master/docs/_static/img/screen-20190211-163428-BRT.png)
+
+### CLI
+
+![birdears screencast](https://github.com/iacchus/birdears/raw/master/docs/_static/img/use.gif)
+
+## Introduction
+
+### birdears
+
+`birdears` is a software written in Python 3 for ear training for musicians
+(musical intelligence, transcribing music, composing). It is a clone of the
+method used by [Funcitional Ear Trainer](https://play.google.com/store/apps/details?id=com.kaizen9.fet.android) app for Android.
+
+It has five different kinds of musical exercises, which are:
+`melodic interval`, `harmonic interval`, `melodic dictation`, `instrumental`,
+and `note name`.
+
+In resume, with the *melodic interval* mode two notes are played one after the
+other and you have to guess the interval; with the `harmonic interval` mode,
+two notes are played simoutaneously (harmonically) and you should guess the
+interval.
+
+With the *melodic dictation* mode, more than 2 notes are played (*ie*., a
+melodic dictation) and you should tell what are the all intervals composing the
+melody played.
+
+The *instrumental* mode works in a fashion similar to the melodic dictation
+mode, but you will be expected to play the notes on your instrument, *ie*.,
+birdears will not wait for a typed reply and you should prectice with your own
+judgement. The melody can be repeated as much times as necessary so you can
+the time you need to try out.
+
+The `notename` is made for you to learn the note names inside a scale by its
+melodic interval from the tonic. For example, in a tonic of 'C',
+when a `P5` interval is played, you are expected to reply with the `C`'s 5th,
+this is, `G`.
+
+### What is musical ear training
+
+*this needs to be written. The method.*
+
+It is currently [being written here](docs/WRITE-ME-method.md)
+
+### Features
+
+* Different kind of exercises for ear training.
+* Pretty much configurable: you can create more difficult exercises as you progress.
+* Exercises from configuration files: you can make presets and share them
+* Can be used interactively from a Python console. *(docs needed)*
+* Can be used as a Python library. *(docs needed)*
+
+## Installing
+
+### 1. Installing the dependencies
+
+`birdears` depends on `python >= 3.7` and `sox`; the latter should be installed
+by your distribution's package manager (supposing you're using GNU/Linux) and
+provides the `play` command.)
+
+*(Please send the steps for your OS)*
+
+#### Arch Linux
+
+```sh
+sudo pacman -Syu sox python python-pip
+```
+
+#### Debian/Ubuntu
+
+```sh
+sudo apt install sox python3 python3-pip python3-venv
+```
+
+### 2. Installing birdears
+
+1. After installing the above stated dependencies for your operating system, you
+can install the software with the following command:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+2. Then add the installation directory to your PATH via your `.bashrc`, `.zshrc`,
+or the respective file for your shell:
+
+```sh
+export PATH="$(python3 -m site --user-base)/bin:${PATH}"
+```
+
+This path is where the command will be installed when using `--user` method.
+
+If you prefer, you can skip step 2 and start the software with:
+
+```sh
+python -m birdears --help
+```
+
+### 3. Running
+
+After installing just run:
+
+```sh
+birdears --help
+```
+
+or
+
+```sh
+python3 -m birdears --help
+```
+
+
+#### What is 'pip'?
+
+The software **pip** is the python package installer. The arguments used are
+the following:
+
+| arg | meaning |
+| --- | --- |
+| pip3 install | install command |
+| --user | installs on the user home; no need to root access/ global install |
+| --upgrade | if it is already installed, upgrade nonetheless if there is an upgrade available |
+| --no-cache-dir | avoid previously downloaded versions; always check PyPI server for newer versions |
+| birdears | the software to be installed |
+
+**pip** will then download and install the software from the Python's official
+repository, the [package in here](https://pypi.org/project/birdears/).
+
+#### Addendum: In-depth installation using a virtualenv
+
+You can choose to use a virtualenv to use birdears; this should give you an
+idea on how to setup one virtualenv.
+
+You should first install virtualenv (for python3) using your distribution's
+package (supposing you're on linux), then on terminal:
+
+*use `python` or `python3` depending on your operating system distribution.*
+
+```sh
+python -m venv ~/.venv # create the virtualenv in the ~/.venv/ directory
+
+source ~/.venv/bin/activate # activate the virtualenv; this should be done
+ # every time you may want to run the software
+ # installed here. You can also put this line in
+ # your .bashrc or .zshrc etc, so to start with
+ # the shell.
+
+pip install birdears # this will install the software
+
+birdears --help # and this will run it
+```
+
+### Upgrading birdears
+
+The same command that installs upgrades it:
+
+```sh
+pip3 install --user --upgrade --no-cache-dir birdears
+```
+
+## Keybindings
+
+The following keyboard diagrams should give you an idea on how the keybindings work. Please
+note how the keys on the line from `z` (*unison*) to `,` (comma, *octave*) represent the notes
+that are *natural* to the mode, and the line above represent the chromatics.
+
+Also, for exercises with two octaves, the **uppercased keys represent the second octave**. For
+example, `z` is *unison*, `,` is the *octave*, `Z` (uppercased) is the *double octave*. The same
+for all the other intervals.
+
+### Ionian (Major)
+
+These are the keybindings for the **Ionian (Major) Scale**; black keys are the chromatic notes.
+
+![birdears - ionian(major) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/ionian.png)
+
+### Dorian
+
+![birdears - dorian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/dorian.png)
+
+### Phrygian
+
+![birdears - phryigian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/phrygian.png)
+
+### Lydian
+
+![birdears - lydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/lydian.png)
+
+### Mixolydian
+
+![birdears - mixolydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/mixolydian.png)
+
+### Aeolian (minor)
+
+![birdears - aeolian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/minor.png)
+
+### Locrian
+
+![birdears - locrian(minor) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/locrian.png)
+
+## Advanced
+
+![birdears - advanced keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/keyboard-layout.png)
+
+*this is still being improved*
+
+Legend for the keys on the diagram above:
+
+| Text Format | Scale Direction | Octave |
+|--------------------|-----------------|------------------------------------|
+| blue (bold italic) | descending | second octave (shift or caps lock) |
+| pink (bold) | descending | first octave |
+| black/white (bold) | ascending | first octave |
+| black (italic) | ascending | second octave (shift or caps lock) |
+
+**White keys** are the diatonic notes, **black keys** are the chromatic ones.
+
+Descendent mode are usable for exercises with `-d` or `--descendent`.
+
+Chromatic keys are usable for exercises with `-c` or `--chromatic`.
+
+Second octave is usable for exercises with `-n 2` or `--n_octaves 2`
+
+## Documentation
+
+Full documentation for this software is available at birdears [Read The Docs](https://birdears.readthedocs.io/en/latest/)
+and also in [PDF format](https://github.com/iacchus/birdears/raw/master/docs/sphinx/_build/latex/birdears.pdf).
+
+## Contributors
+
+[![birdears' Contributors](https://contrib.rocks/image?repo=iacchus/birdears&max=101)](https://github.com/iacchus/birdears/graphs/contributors)
+
+Made with [contrib.rocks](https://contrib.rocks).
+
+## Contributing
+
+Those who want to contribute to this project can read [CONTRIBUTING.md](CONTRIBUTING.md).
+
+
+%prep
+%autosetup -n birdears-0.3.14
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-birdears -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.14-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..0095810
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a42250a0dbabbaca04d3151edda1165e birdears-0.3.14.tar.gz