Skip to main content

Functional Ear Training for Musicians

Project description

Maintenance Travis Build Status Coveralls Codecov Code Climate coverage Code Climate issues Code Climate gpa Gitter

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

Functional Ear Training for Musicians

Birdears uses functional ear training method for ear training. It helps you to recognize melodic and harmonic intervals. It uses python 3 and sox.

More documentation is at birdears Read The Docs

Installing

1. Install the Dependencies

Install sox and python3 (see below) and,

2. a. Via pip

You may want to create a virtualenv before installing via pip.

pip install birdears

Then use the command:

birdears

2. b. Clone the repository

git clone https://github.com/iacchus/birdears.git

Then run the script with:

python3 -m birdears

Keybindings for intervals

MAJOR keyboard keys (with chromatics)

Key Index for major and chromatic major context

  keyboard              would represent

 s d   g h j        IIb  IIIb       Vb VIb  VIIb
z x c v b n m  <-  I   II   III  IV   V   VI   VII

(**SHIFT* key meaning an octave higher)*

MINOR keyboard keys (with chromatics)

Key index for minor and chromatic minor context

   keyboard                 would represent
                           in chromatics in
                            'a' minor context

 s   f g   j k   eg.:      a#   c# d#    f# g#
z x c v b n m    -------  a  b c  d  e  f  g

Screenshot or didn’t happen

(development version)

birsears screenshot

birsears screenshot

Other keys

Key

What it Does

q

quit.

r

to repeat the tonic/interval.

Backspace

In melodic dictation, remove previous entered interval.

Installing Dependencies

Submit your distro’s too..

Arch Linux

sudo pacman -S python sox

Contributing

Coding

We ask for people who wants to contribute for the code to look to the musical side first,

Checking code style

We use pep8 to check code formatting:

pep8 birdears --exclude=click

Module Documentation

Our documentation is online at readthedocs.

We are using Sphinx to generate documentation for this module. The sphinx resource files are in the docs/sphinx/ directory.

We use Google Style Docstrings to write documentation for the API. Here is Google’s online Python Style Guide which has some of the specification or Sphinx Napoleon documentation online or in PDF. Napoleon is the extension used by Sphinx to render Google Docstrings in the documentation.

Runing apidoc

We want to exclude third-party module click when generating automatic documentation for the package:

sphinx-apidoc -o docs/sphinx/_apidoc birdears/ birdears/click/

End-user Documentation

We aim to build a method / music theory together with this software, maybe in the GitHub repo’s wiki.

Writing Tests

We use pytest to run tests; we use coverage.py to report code coverage;

coverage run --source=birdears --module pytest --verbose tests/

We use coveralls and Travis CI.

Out tests are in repo’s tests/ directory. We also have a local repoting in html created by coverage, it should be online at https://iacchus.github.io/birdears/docs/coverage-html.

Feature requests :gift: and suggestions

You are welcome to use github issues or gitter.im to ask for, or give ideia for new features.

Other stuff

We are using pandoc to convert README from .md to .rst:

pandoc --from=markdown --to=rst README.md -o README.rst

To generate package for PyPI:

python setup.py sdist
python setup.py bdist_wheel

Read also TODO.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.0.3a1.tar.gz (93.8 kB view hashes)

Uploaded Source

Built Distribution

birdears-0.0.3a1-py3-none-any.whl (110.2 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