{"id":13560613,"url":"https://github.com/birdears/birdears","last_synced_at":"2025-04-03T16:30:55.345Z","repository":{"id":46005535,"uuid":"88904187","full_name":"birdears/birdears","owner":"birdears","description":"Functional ear training for musicians","archived":false,"fork":false,"pushed_at":"2024-06-10T11:15:30.000Z","size":16903,"stargazers_count":59,"open_issues_count":14,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-24T10:03:23.237Z","etag":null,"topics":["ear-training","functional-ear-training","learning","music","music-composition","music-improvisation","music-learning","music-theory","musicians"],"latest_commit_sha":null,"homepage":"https://birdears.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/birdears.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-20T19:43:22.000Z","updated_at":"2024-10-30T12:13:41.000Z","dependencies_parsed_at":"2025-03-03T02:01:59.483Z","dependency_job_id":"27cf4ad2-9783-4577-87dc-2c5ff79196b5","html_url":"https://github.com/birdears/birdears","commit_stats":null,"previous_names":["iacchus/birdears"],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdears%2Fbirdears","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdears%2Fbirdears/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdears%2Fbirdears/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdears%2Fbirdears/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/birdears","download_url":"https://codeload.github.com/birdears/birdears/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247036910,"owners_count":20873046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ear-training","functional-ear-training","learning","music","music-composition","music-improvisation","music-learning","music-theory","musicians"],"created_at":"2024-08-01T13:00:47.648Z","updated_at":"2025-04-03T16:30:55.331Z","avatar_url":"https://github.com/birdears.png","language":"Python","readme":"# birdears\n\n[![Maintenance](https://img.shields.io/maintenance/yes/2025.svg?style=flat-square)](https://github.com/iacchus/birdears/issues/new?title=Is+birdears+still+maintained\u0026body=Please+file+an+issue+if+the+maintained+button+says+no)\n[![Build Status](https://api.cirrus-ci.com/github/iacchus/birdears.svg)](https://cirrus-ci.com/github/iacchus/birdears)\n[![Coveralls](https://img.shields.io/coveralls/iacchus/birdears.svg?style=flat-square\u0026label=coverage)](https://coveralls.io/github/iacchus/birdears)\n[![Awesome Sheet Music](https://img.shields.io/badge/awesome-sheet%20music-blue.svg?style=flat-square\u0026logoWidth=14;\u0026logo=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)](https://iacchus.github.io/awesome-sheet-music/)\n\n[![GitHub (pre-)release](https://img.shields.io/github/release/iacchus/birdears/all.svg?style=flat-square)](https://github.com/iacchus/birdears/releases)\n[![PyPI Status](https://img.shields.io/pypi/status/birdears.svg?style=flat-square\u0026label=pypi-status)](https://pypi.python.org/pypi/birdears)\n[![PyPI Version](https://img.shields.io/pypi/v/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)\n[![PyPI Python Versions](https://img.shields.io/pypi/pyversions/birdears.svg?style=flat-square)](https://pypi.python.org/pypi/birdears)\n[![Documentation Status](https://img.shields.io/badge/readthedocs-latest-orange.svg?style=flat-square)](https://birdears.readthedocs.io/en/latest/)\n\n| **Licensed with [GNU AGPLv3](https://github.com/iacchus/birdears/blob/master/LICENSE)** |\n| ----------------- |\n| [![agpl3](https://github.com/iacchus/birdears/raw/master/docs/_static/img/agplv3-155x51.png)](https://github.com/iacchus/birdears/blob/master/LICENSE.txt) |\n\n\n- [Introduction](#introduction)\n\t- [birdears](#birdears)\n\t- [What is musical ear training](#what-is-musical-ear-training)\n\t- [Features](#features)\n- [Installing](#installing)\n\t- [Installing the dependencies](#installing-the-dependencies)\n\t\t- [Arch Linux](#arch-linux)\n\t- [Installing birdears](#installing-birdears)\n\t\t- [In-depth installation](#in-depth-installation)\n\t\t- [Alternative installation: Cloning this Repository](#alternative-installation-cloning-this-repository)\n- [Running](#running)\n- [Keybindings](#keybindings)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n\n### Support Channels\n\n| Channel | Site | Description |\n| --- | --- | --- |\n| **Chat (Matrix)** | [#birdears:mozilla.org](https://matrix.to/#/#birdears:mozilla.org) | *chat channel* |\n| **GitHub Discussions** | [discussions](https://github.com/iacchus/birdears/discussions) | *general discussion* |\n| **GitHub Issues** | [issues](https://github.com/iacchus/birdears/issues) | *for issues with the software* |\n| **Documentation** | [https://birdears.readthedocs.io/](https://birdears.readthedocs.io/) |  *extended documentation at **ReadTheDocs*** |\n| **PyPI** | [https://pypi.python.org/pypi/birdears](https://pypi.python.org/pypi/birdears) | *python package/repository* |\n| **GitHub** | [https://github.com/iacchus/birdears](https://github.com/iacchus/birdears) | *mainline repository* |\n\n### TUI\n\n![screenshot](https://github.com/iacchus/birdears/raw/master/docs/_static/img/screen-20190211-163428-BRT.png)\n\n### CLI\n\n![birdears screencast](https://github.com/iacchus/birdears/raw/master/docs/_static/img/use.gif)\n\n## Introduction\n\n### birdears\n\n`birdears` is a software written in Python 3 for ear training for musicians\n(musical intelligence, transcribing music, composing). It is a clone of the\nmethod used by [Funcitional Ear Trainer](https://play.google.com/store/apps/details?id=com.kaizen9.fet.android) app for Android.\n\nIt has five different kinds of musical exercises, which are:\n`melodic interval`, `harmonic interval`, `melodic dictation`, `instrumental`,\nand `note name`.\n\nIn resume, with the *melodic interval* mode two notes are played one after the\nother and you have to guess the interval; with the `harmonic interval` mode,\ntwo notes are played simoutaneously (harmonically) and you should guess the\ninterval.\n\nWith the *melodic dictation* mode, more than 2 notes are played (*ie*., a\nmelodic dictation) and you should tell what are the all intervals composing the\nmelody played.\n\nThe *instrumental* mode works in a fashion similar to the melodic dictation\nmode, but you will be expected to play the notes on your instrument, *ie*.,\nbirdears will not wait for a typed reply and you should prectice with your own\njudgement. The melody can be repeated as much times as necessary so you can\nthe time you need to try out.\n\nThe `notename` is made for you to learn the note names inside a scale by its\nmelodic interval from the tonic. For example, in a tonic of 'C',\nwhen a `P5` interval is played, you are expected to reply with the `C`'s 5th,\nthis is, `G`.\n\n### What is musical ear training\n\n*this needs to be written. The method.*\n\nIt is currently [being written here](docs/WRITE-ME-method.md)\n\n### Features\n\n* Different kind of exercises for ear training.\n* Pretty much configurable: you can create more difficult exercises as you progress.\n* Exercises from configuration files: you can make presets and share them\n* Can be used interactively from a Python console. *(docs needed)*\n* Can be used as a Python library. *(docs needed)*\n\n## Installing\n\n### 1. Installing the dependencies\n\n`birdears` depends on `python \u003e= 3.7` and `sox`; the latter should be installed\nby your distribution's package manager (supposing you're using GNU/Linux) and\nprovides the `play` command.)\n\n*(Please send the steps for your OS)*\n\n#### Arch Linux\n\n```sh\nsudo pacman -Syu sox python python-pip\n```\n\n#### Debian/Ubuntu\n\n```sh\nsudo apt install sox python3 python3-pip python3-venv\n```\n\n### 2. Installing birdears\n\n1. After installing the above stated dependencies for your operating system, you\ncan install the software with the following command:\n\n```sh\npip3 install --user --upgrade --no-cache-dir birdears\n```\n\n2. Then add the installation directory to your PATH via your `.bashrc`, `.zshrc`,\nor the respective file for your shell:\n\n```sh\nexport PATH=\"$(python3 -m site --user-base)/bin:${PATH}\"\n```\n\nThis path is where the command will be installed when using `--user` method.\n\nIf you prefer, you can skip step 2 and start the software with:\n\n```sh\npython -m birdears --help\n```\n\n### 3. Running\n\nAfter installing just run:\n\n```sh\nbirdears --help\n```\n\nor\n\n```sh\npython3 -m birdears --help\n```\n\n\n#### What is 'pip'?\n\nThe software **pip** is the python package installer. The arguments used are\nthe following:\n\n| arg | meaning |\n| --- | --- |\n| pip3 install | install command |\n| --user | installs on the user home; no need to root access/ global install |\n| --upgrade | if it is already installed, upgrade nonetheless if there is an upgrade available |\n| --no-cache-dir | avoid previously downloaded versions; always check PyPI server for newer versions |\n| birdears | the software to be installed |\n\n**pip** will then download and install the software from the Python's official\nrepository, the [package in here](https://pypi.org/project/birdears/).\n\n#### Addendum: In-depth installation using a virtualenv\n\nYou can choose to use a virtualenv to use birdears; this should give you an\nidea on how to setup one virtualenv.\n\nYou should first install virtualenv (for python3) using your distribution's\npackage (supposing you're on linux), then on terminal:\n\n*use `python` or `python3` depending on your operating system distribution.*\n\n```sh\npython -m venv ~/.venv       # create the virtualenv in the  ~/.venv/ directory\n\nsource ~/.venv/bin/activate   # activate the virtualenv; this should be done\n                              # every time you may want to run the software\n                              # installed here. You can also put this line in\n                              # your .bashrc or .zshrc etc, so to start with\n                              # the shell.\n\npip install birdears         # this will install the software\n\nbirdears --help               # and this will run it\n```\n\n### Upgrading birdears\n\nThe same command that installs upgrades it:\n\n```sh\npip3 install --user --upgrade --no-cache-dir birdears\n```\n\n## Keybindings\n\nThe following keyboard diagrams should give you an idea on how the keybindings work. Please\nnote how the keys on the line from `z` (*unison*) to `,` (comma, *octave*) represent the notes\nthat are *natural* to the mode, and the line above represent the chromatics.\n\nAlso, for exercises with two octaves, the **uppercased keys represent the second octave**. For\nexample, `z` is *unison*, `,` is the *octave*, `Z` (uppercased) is the *double octave*. The same\nfor all the other intervals.\n\n### Ionian (Major)\n\nThese are the keybindings for the **Ionian (Major) Scale**; black keys are the chromatic notes.\n\n![birdears - ionian(major) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/ionian.png)\n\n### Dorian\n\n![birdears - dorian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/dorian.png)\n\n### Phrygian\n\n![birdears - phryigian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/phrygian.png)\n\n### Lydian\n\n![birdears - lydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/lydian.png)\n\n### Mixolydian\n\n![birdears - mixolydian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/mixolydian.png)\n\n### Aeolian (minor)\n\n![birdears - aeolian keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/minor.png)\n\n### Locrian\n\n![birdears - locrian(minor) keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/locrian.png)\n\n## Advanced\n\n![birdears - advanced keybindings](https://github.com/iacchus/birdears/raw/master/docs/_static/img/keybindings/keyboard-layout.png)\n\n*this is still being improved*\n\nLegend for the keys on the diagram above:\n\n| Text  Format       | Scale Direction | Octave                             |\n|--------------------|-----------------|------------------------------------|\n| blue (bold italic) | descending      | second octave (shift or caps lock) |\n| pink (bold)        | descending      | first octave                       |\n| black/white (bold) | ascending       | first octave                       |\n| black (italic)     | ascending       | second octave (shift or caps lock) |\n\n**White keys** are the diatonic notes, **black keys** are the chromatic ones.\n\nDescendent mode are usable for exercises with `-d` or `--descendent`.\n\nChromatic keys are usable for exercises with `-c` or `--chromatic`.\n\nSecond octave is usable for exercises with `-n 2` or `--n_octaves 2`\n\n## Documentation\n\nFull documentation for this software is available at birdears [Read The Docs](https://birdears.readthedocs.io/en/latest/)\nand also in [PDF format](https://github.com/iacchus/birdears/raw/master/docs/sphinx/_build/latex/birdears.pdf).\n\n## Contributors\n\n[![birdears' Contributors](https://contrib.rocks/image?repo=iacchus/birdears\u0026max=101)](https://github.com/iacchus/birdears/graphs/contributors)\n\nMade with [contrib.rocks](https://contrib.rocks).\n\n## Contributing\n\nThose who want to contribute to this project can read [CONTRIBUTING.md](CONTRIBUTING.md).\n","funding_links":[],"categories":["Ear Training"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirdears%2Fbirdears","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbirdears%2Fbirdears","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirdears%2Fbirdears/lists"}