https://github.com/birdears/birdears
Functional ear training for musicians
https://github.com/birdears/birdears
ear-training functional-ear-training learning music music-composition music-improvisation music-learning music-theory musicians
Last synced: 3 months ago
JSON representation
Functional ear training for musicians
- Host: GitHub
- URL: https://github.com/birdears/birdears
- Owner: birdears
- License: agpl-3.0
- Created: 2017-04-20T19:43:22.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-10T11:15:30.000Z (about 1 year ago)
- Last Synced: 2024-12-24T10:03:23.237Z (6 months ago)
- Topics: ear-training, functional-ear-training, learning, music, music-composition, music-improvisation, music-learning, music-theory, musicians
- Language: Python
- Homepage: https://birdears.readthedocs.io
- Size: 16.1 MB
- Stars: 59
- Watchers: 4
- Forks: 2
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Authors: AUTHORS.md
Awesome Lists containing this project
- awesome-sheet-music - birdears
README
# birdears
[](https://github.com/iacchus/birdears/issues/new?title=Is+birdears+still+maintained&body=Please+file+an+issue+if+the+maintained+button+says+no)
[](https://cirrus-ci.com/github/iacchus/birdears)
[](https://coveralls.io/github/iacchus/birdears)
[](https://iacchus.github.io/awesome-sheet-music/)[](https://github.com/iacchus/birdears/releases)
[](https://pypi.python.org/pypi/birdears)
[](https://pypi.python.org/pypi/birdears)
[](https://pypi.python.org/pypi/birdears)
[](https://birdears.readthedocs.io/en/latest/)| **Licensed with [GNU AGPLv3](https://github.com/iacchus/birdears/blob/master/LICENSE)** |
| ----------------- |
| [](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

### CLI

## 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/ directorysource ~/.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.

### Dorian

### Phrygian

### Lydian

### Mixolydian

### Aeolian (minor)

### Locrian

## Advanced

*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
[](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).