Skip to main content

Functional Ear Training for Musicians

Project description


`Maintenance <>`__
`Travis Build Status <>`__
`Coveralls <>`__ `Awesome
Sheet Music <>`__

`GitHub (pre-)release <>`__
`PyPI Status <>`__ `PyPI
Version <>`__ `PyPI Python
Versions <>`__ `Documentation
Status <>`__

.. raw:: html

<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->

- `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>`__

- `Running <#running>`__
- `Keybindings <#keybindings>`__
- `Documentation <#documentation>`__
- `Contributing <#contributing>`__

.. raw:: html

<!-- /TOC -->

For the support chat, please ``/join``
```#birdears`` <>`__
channel on freenode (```` - ssl).

.. figure:: use.gif
:alt: birdears screencast

birdears screencast


.. _birdears-1:


``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 <>`__
app for Android.

It comes with four modes, or four kind of exercises, which are:
``melodic``, ``harmonic``, ``dictation`` and ``instrumental``.

In resume, with the *melodic* mode two notes are played one after the
other and you have to guess the interval; with the ``harmonic`` mode,
two notes are played simoutaneously (harmonically) and you should guess
the interval.

With the *dictation* mode, more than 2 notes are played (*ie*., a
melodic dictation) and you should tell what are the intervals between

With the *instrumental* mode, it is a like the *dictation*, 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 repeat any times and you can have as much
time as you want to try it out.

What is musical ear training

*this needs to be written. The method.*


- questions
- pretty much configurable
- load from config file
- you can make your own presets
- can be used interactively *(docs needed)*
- can be used as a library *(docs needed)*


Installing the dependencies

``birdears`` depends only on ``python >= 3.5`` and ``sox`` (which should
be installed by your distribution’s package manager, supposing you’re
using linux, and which provides the ``play`` command.)

Arch Linux


sudo pacman -Syu sox python python-pip

Installing birdears

``pip3 install --user --upgrade --no-cache-dir birdears``

In-depth installation

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:


virtualenv -p python3 ~/.venv # use the directory ~/.venv/ for the virtualenv

source ~/.venv/bin/activate # activate the virtualenv; this should be done
# every time you may want to run the software
# installed here.

pip3 install birdears # this will install the software

birdears --help # and this will run it


After installing just run:

``birdears --help``


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.

.. figure:: docs/keybindings/ionian.png
:alt: birdears - ionian(major) keybindings

birdears - ionian(major) keybindings


.. figure:: docs/keybindings/dorian.png
:alt: birdears - dorian keybindings

birdears - dorian keybindings


.. figure:: docs/keybindings/phrygian.png
:alt: birdears - phryigian keybindings

birdears - phryigian keybindings


.. figure:: docs/keybindings/lydian.png
:alt: birdears - lydian keybindings

birdears - lydian keybindings


.. figure:: docs/keybindings/mixolydian.png
:alt: birdears - mixolydian keybindings

birdears - mixolydian keybindings

Aeolian (minor)

.. figure:: docs/keybindings/minor.png
:alt: birdears - aeolian keybindings

birdears - aeolian keybindings


.. figure:: docs/keybindings/locrian.png
:alt: birdears - locrian(minor) keybindings

birdears - locrian(minor) keybindings


.. figure:: docs/keybindings/full-advanced.png
:alt: birdears - advanced keybindings

birdears - advanced keybindings

*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

Descendent mode are usable for exercises with ``-d`` or

Chromatic keys are usable for exercises with ``-c`` or ``--chromatic``.

Second octave is usable for exercises with ``-n 2`` or ``--n_octaves 2``


Full documentation for this software is available at birdears `Read The
Docs <>`__ and also in `PDF
format <>`__.


Those who want to contribute to this project can read
` <>`__.


the screencast was recorded with a command similar to


COLUMNS=120 LINES=36 ttyrec
seq2gif -s 2 -i ttyrecord -w 120 -h 36 -o use.gif

`ttyrec <>`__ and
`seq2gif <>`__

keyboard layouts were generated with

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
birdears-0.2.8-py3-none-any.whl (120.8 kB) Copy SHA256 hash SHA256 Wheel py3
birdears-0.2.8.tar.gz (100.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page