Skip to main content

Functional Ear Training for Musicians

Project description

birdears

Maintenance Travis Build Status Build Status Coveralls Awesome Sheet Music

GitHub (pre-)release PyPI Status PyPI Version PyPI Python Versions Documentation Status

Licensed with GNU AGPLv3
agpl3

Support Channels

Channel Site Description
Chat (Matrix) #birdears:mozilla.org chat channel
GitHub Discussions discussions general discussion
GitHub Issues issues for issues with the software
Documentation https://birdears.readthedocs.io/ extended documentation at ReadTheDocs
PyPI https://pypi.python.org/pypi/birdears python package/repository
GitHub https://github.com/iacchus/birdears mainline repository

TUI

screenshot

CLI

birdears screencast

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

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

sudo pacman -Syu sox python python-pip

Debian/Ubuntu

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:
pip3 install --user --upgrade --no-cache-dir birdears
  1. Then add the installation directory to your PATH via your .bashrc, .zshrc, or the respective file for your shell:
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:

python -m birdears --help

3. Running

After installing just run:

birdears --help

or

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.

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.

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:

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

Dorian

birdears - dorian keybindings

Phrygian

birdears - phryigian keybindings

Lydian

birdears - lydian keybindings

Mixolydian

birdears - mixolydian keybindings

Aeolian (minor)

birdears - aeolian keybindings

Locrian

birdears - locrian(minor) keybindings

Advanced

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 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 and also in PDF format.

Contributors

birdears' Contributors

Made with contrib.rocks.

Contributing

Those who want to contribute to this project can read CONTRIBUTING.md.

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.3.14.tar.gz (998.2 kB view details)

Uploaded Source

Built Distribution

birdears-0.3.14-py3-none-any.whl (60.2 kB view details)

Uploaded Python 3

File details

Details for the file birdears-0.3.14.tar.gz.

File metadata

  • Download URL: birdears-0.3.14.tar.gz
  • Upload date:
  • Size: 998.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for birdears-0.3.14.tar.gz
Algorithm Hash digest
SHA256 5112ca96d65952ee638411714a4b0838295f5a77fdca57b7a1209377d008bde9
MD5 a42250a0dbabbaca04d3151edda1165e
BLAKE2b-256 fe64ee8864e5b5f298106e9e2fbb8035a27f3f26794f2b8c53159230f1d2d08f

See more details on using hashes here.

File details

Details for the file birdears-0.3.14-py3-none-any.whl.

File metadata

  • Download URL: birdears-0.3.14-py3-none-any.whl
  • Upload date:
  • Size: 60.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for birdears-0.3.14-py3-none-any.whl
Algorithm Hash digest
SHA256 b64f2c5f0b4f730f7b0c66aa52b413efaf880a330ba0f87066edab9813a4a33e
MD5 35395120061be4b95342eec05218e326
BLAKE2b-256 7574c5e2092e890a65ba50009613e481a935b667d3de6ca60ce8963a127eaac2

See more details on using hashes here.

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