Skip to main content

Functional Ear Training for Musicians

Project description

BirdEars
========

|Maintenance| |Travis Build Status| |Coveralls| |Codecov| |Gitter|

|GitHub (pre-)release| |PyPI Status| |PyPI Version| |PyPI Python
Versions| |Waffle.io| |GitHub issues| |Documentation Status|

|Awesome Sheet Music|

.. 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>`__
- `Modes <#modes>`__

- `melodic <#melodic>`__

- `Description <#description>`__
- `Command-line options <#command-line-options>`__

- `harmonic <#harmonic>`__

- `Description <#description>`__
- `Command-line options <#command-line-options>`__

- `dictation <#dictation>`__

- `Description <#description>`__
- `Command-line options <#command-line-options>`__

- `instrumental <#instrumental>`__

- `Description <#description>`__
- `Command-line options <#command-line-options>`__

- `Loading from preset files <#loading-from-preset-files>`__

- `Pre-made presets <#pre-made-presets>`__

- `Pre-made presets
description <#pre-made-presets-description>`__

- `Creating new preset files <#creating-new-preset-files>`__

- `Contributing <#contributing>`__

.. raw:: html

<!-- /TOC -->

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.

What is musical ear training
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It is a method of ear training.

Features
~~~~~~~~

- questions
- pretty much configurable
- load from config file

Installing
----------

Installing the dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Arch Linux
^^^^^^^^^^

::

sudo pacman -Syu sox python python-pip

Installing birdears
~~~~~~~~~~~~~~~~~~~

``pip install --user --upgrade birdears``

In-depth installation
^^^^^^^^^^^^^^^^^^^^^

Running
-------

After installing just run:

``birdears --help``

Modes
-----

melodic
~~~~~~~

Description
^^^^^^^^^^^

In this exercise birdears will play two notes, the tonic and the
interval melodically, ie., one after the other and you should reply
which is the correct distance between the two.

Command-line options
^^^^^^^^^^^^^^^^^^^^

::

Usage: birdears melodic [options]

Melodic interval recognition

Options:
-m, --mode <mode> Mode of the question.
-t, --tonic <tonic> Tonic of the question.
-o, --octave <octave> Octave of the question.
-d, --descending Whether the question interval is descending.
-c, --chromatic If chosen, question has chromatic notes.
-n, --n_octaves <n max> Maximum number of octaves.
-v, --valid_intervals <1,2,..> A comma-separated list without spaces
of valid scale degrees to be chosen for the
question.
-q, --user_durations <1,0.5,n..>
A comma-separated list without
spaces with PRECISLY 9 floating values. Or
'n' for default duration.
-p, --prequestion_method <prequestion_method>
The name of a pre-question method.
-r, --resolution_method <resolution_method>
The name of a resolution method.
-h, --help Show this message and exit.

In this exercise birdears will play two notes, the tonic and the interval
melodically, ie., one after the other and you should reply which is the
correct distance between the two.

Valid values are as follows:

-m <mode> is one of: major, dorian, phrygian, lydian, mixolydian, minor,
locrian

-t <tonic> is one of: A, A#, Ab, B, Bb, C, C#, Cb, D, D#, Db, E, Eb, F,
F#, Fb, G, G#, Gb

-p <prequestion_method> is one of: none, tonic_only, progression_i_iv_v_i

-r <resolution_method> is one of: nearest_tonic, repeat_only

harmonic
~~~~~~~~

Description
^^^^^^^^^^^

Command-line options
^^^^^^^^^^^^^^^^^^^^

::

Usage: birdears harmonic [options]

Harmonic interval recognition

Options:
-m, --mode <mode> Mode of the question.
-t, --tonic <note> Tonic of the question.
-o, --octave <octave> Octave of the question.
-d, --descending Whether the question interval is descending.
-c, --chromatic If chosen, question has chromatic notes.
-n, --n_octaves <n max> Maximum number of octaves.
-v, --valid_intervals <1,2,..> A comma-separated list without spaces
of valid scale degrees to be chosen for the
question.
-q, --user_durations <1,0.5,n..>
A comma-separated list without
spaces with PRECISLY 9 floating values. Or
'n' for default duration.
-p, --prequestion_method <prequestion_method>
The name of a pre-question method.
-r, --resolution_method <resolution_method>
The name of a resolution method.
-h, --help Show this message and exit.

In this exercise birdears will play two notes, the tonic and the interval
harmonically, ie., both on the same time and you should reply which is the
correct distance between the two.

Valid values are as follows:

-m <mode> is one of: major, dorian, phrygian, lydian, mixolydian, minor,
locrian

-t <tonic> is one of: A, A#, Ab, B, Bb, C, C#, Cb, D, D#, Db, E, Eb, F,
F#, Fb, G, G#, Gb

-p <prequestion_method> is one of: none, tonic_only, progression_i_iv_v_i

-r <resolution_method> is one of: nearest_tonic, repeat_only

dictation
~~~~~~~~~

Description
^^^^^^^^^^^

In this exercise birdears will choose some random intervals and create a
melodic dictation with them. You should reply the correct intervals of
the melodic dictation.

Command-line options
^^^^^^^^^^^^^^^^^^^^

::

Usage: birdears dictation [options]

Melodic dictation

Options:
-m, --mode <mode> Mode of the question.
-i, --max_intervals <n max> Max random intervals for the dictation.
-x, --n_notes <n notes> Number of notes for the dictation.
-t, --tonic <note> Tonic of the question.
-o, --octave <octave> Octave of the question.
-d, --descending Wether the question interval is descending.
-c, --chromatic If chosen, question has chromatic notes.
-n, --n_octaves <n max> Maximum number of octaves.
-v, --valid_intervals <1,2,..> A comma-separated list without spaces
of valid scale degrees to be chosen for the
question.
-q, --user_durations <1,0.5,n..>
A comma-separated list without
spaces with PRECISLY 9 floating values. Or
'n' for default duration.
-p, --prequestion_method <prequestion_method>
The name of a pre-question method.
-r, --resolution_method <resolution_method>
The name of a resolution method.
-h, --help Show this message and exit.

In this exercise birdears will choose some random intervals and create a
melodic dictation with them. You should reply the correct intervals of the
melodic dictation.

Valid values are as follows:

-m <mode> is one of: major, dorian, phrygian, lydian, mixolydian, minor,
locrian

-t <tonic> is one of: A, A#, Ab, B, Bb, C, C#, Cb, D, D#, Db, E, Eb, F,
F#, Fb, G, G#, Gb

-p <prequestion_method> is one of: none, tonic_only, progression_i_iv_v_i

-r <resolution_method> is one of: nearest_tonic, repeat_only

instrumental
~~~~~~~~~~~~

Description
^^^^^^^^^^^

In this exercise birdears will choose some random intervals and create a
melodic dictation with them. You should play the correct melody in you
musical instrument.

Command-line options
^^^^^^^^^^^^^^^^^^^^

::

Usage: birdears instrumental [options]

Instrumental melodic time-based dictation

Options:
-m, --mode <mode> Mode of the question.
-w, --wait_time <seconds> Time in seconds for next question/repeat.
-u, --n_repeats <times> Times to repeat question.
-i, --max_intervals <n max> Max random intervals for the dictation.
-x, --n_notes <n notes> Number of notes for the dictation.
-t, --tonic <note> Tonic of the question.
-o, --octave <octave> Octave of the question.
-d, --descending Wether the question interval is descending.
-c, --chromatic If chosen, question has chromatic notes.
-n, --n_octaves <n max> Maximum number of octaves.
-v, --valid_intervals <1,2,..> A comma-separated list without spaces
of valid scale degrees to be chosen for the
question.
-q, --user_durations <1,0.5,n..>
A comma-separated list without
spaces with PRECISLY 9 floating values. Or
'n' for default duration.
-p, --prequestion_method <prequestion_method>
The name of a pre-question method.
-r, --resolution_method <resolution_method>
The name of a resolution method.
-h, --help Show this message and exit.

In this exercise birdears will choose some random intervals and create a
melodic dictation with them. You should play the correct melody in you
musical instrument.

Valid values are as follows:

-m <mode> is one of: major, dorian, phrygian, lydian, mixolydian, minor,
locrian

-t <tonic> is one of: A, A#, Ab, B, Bb, C, C#, Cb, D, D#, Db, E, Eb, F,
F#, Fb, G, G#, Gb

-p <prequestion_method> is one of: none, tonic_only, progression_i_iv_v_i

-r <resolution_method> is one of: nearest_tonic, repeat_only

Loading from preset files
-------------------------

Pre-made presets
~~~~~~~~~~~~~~~~

Birdears cointains some pre-made presets in it's ``presets/``
subdirectory.

The study for beginners is recommended by following the numeric order of
those files (000, 001, then 002 etc.)

Pre-made presets description
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Maybe these things would go better in the readhedocs documentation.

Creating new preset files
~~~~~~~~~~~~~~~~~~~~~~~~~

You can open the files cointained in birdears premade ``presets/``
folder to have an ideia on how config files are made; it is simply the
command line options written in a form ``toml`` standard.

Contributing
------------

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

.. |Maintenance| image:: https://img.shields.io/maintenance/yes/2017.svg?style=flat-square
:target: 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| image:: https://img.shields.io/travis/iacchus/birdears.svg?style=flat-square&label=build
:target: https://travis-ci.org/iacchus/birdears
.. |Coveralls| image:: https://img.shields.io/coveralls/iacchus/birdears.svg?style=flat-square&label=Coveralls
:target: https://coveralls.io/github/iacchus/birdears
.. |Codecov| image:: https://img.shields.io/codecov/c/github/iacchus/birdears.svg?style=flat-square&label=Codecov
:target: https://codecov.io/gh/iacchus/birdears
.. |Gitter| image:: https://img.shields.io/gitter/room/birdears/Lobby.svg?style=flat-square
:target: https://gitter.im/birdears/Lobby
.. |GitHub (pre-)release| image:: https://img.shields.io/github/release/iacchus/birdears/all.svg?style=flat-square
:target: https://github.com/iacchus/birdears/releases
.. |PyPI Status| image:: https://img.shields.io/pypi/status/birdears.svg?style=flat-square&label=pypi-status
:target: https://pypi.python.org/pypi/birdears
.. |PyPI Version| image:: https://img.shields.io/pypi/v/birdears.svg?style=flat-square
:target: https://pypi.python.org/pypi/birdears
.. |PyPI Python Versions| image:: https://img.shields.io/pypi/pyversions/birdears.svg?style=flat-square
:target: https://pypi.python.org/pypi/birdears
.. |Waffle.io| image:: https://img.shields.io/waffle/label/iacchus/birdears/in%20progress.svg?style=flat-square?waffle.io-issues
:target: https://waffle.io/iacchus/birdears
.. |GitHub issues| image:: https://img.shields.io/github/issues/iacchus/birdears.svg?style=flat-square&label=gh-issues
:target: https://github.com/iacchus/birdears/issues
.. |Documentation Status| image:: https://img.shields.io/badge/readthedocs-latest-orange.svg?style=flat-square
:target: https://birdears.readthedocs.io/en/latest/
.. |Awesome Sheet Music| image:: 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
:target: https://iacchus.github.io/awesome-sheet-music/


Project details


Download files

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

Source Distribution

birdears-0.0.7a1.tar.gz (100.8 kB view hashes)

Uploaded Source

Built Distribution

birdears-0.0.7a1-py3-none-any.whl (119.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page