%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 - 0.3.14-1 - Package Spec generated