Skip to main content

Terminal-based note tuning application for pianos and other instruments

Project description

# intuno intuno is a terminal-based note tuning application for pianos and other instruments. Written in Python, it is available for multiple platforms.

## Installation

The program depends on the pyaudio library, which in turn depends on portaudio, which on a Mac is installed most easily with Homebrew. After cloning this repository, run:

` brew update brew install portaudio brew link --overwrite portaudio `

On macs, the pyaudio installation can sometimes fail because it cannot find the portaudio header and lib files. To fix, find out where in your Homebrew path the files are and point the installer to them:

` pip3 install --global-option='build_ext' \ --global-option='-L/opt/homebrew/Cellar/portaudio/19.7.0/lib' \ --global-option='-I/opt/homebrew/Cellar/portaudio/19.7.0/include' pyaudio `

Now you should be able to install with:

` pip install intuno `

## Tuning

Run intuno with:

` intuno `

This defaults to tuning A in Octave 5. You can optionally specify a different starting note, for instance to start tuning at Middle C, use:

` intuno c3 `

The interface shows the currently selected note in the top menu bar, which you can change with the left and right arrow keys. The raw signal coming from the microphone is rendered with [plotille](https://github.com/tammoippen/plotille) and the filtered signal is shown below it. For a correctly tuned note, you should see a nice, clean waveform with a green OK status next to its estimated frequency:

![OK](resources/screenshot-accurate.png)

If the note is out of tune, the bottom waveform will drift, and the frequency estimate will tell you how much you will have to tighten (if the frequency is too low) or loosen (if too high) the string:

![Off](resources/screenshot-off.png)

For lower- and higher frequency notes, you may need to adjust the volume of your microphone. If your system’s controls do not give the desired range, you can adjust the software volume with the up and down keys.

## Other

For more information on the how the program works, check out [this notebook](https://loukad.github.io/tuning.html).

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

intuno-0.1.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intuno-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file intuno-0.1.0.tar.gz.

File metadata

  • Download URL: intuno-0.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for intuno-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b0144282beddb7260e3f9decb4f2adcadcf5163a4b495a414f6ee892a825a3e3
MD5 d9c550ef3b6e756ff18e429c64bf1b95
BLAKE2b-256 6c7e73615e3382c1922c97d86e8e6aa9b45550b75f5f09582b1a23d1802960dc

See more details on using hashes here.

File details

Details for the file intuno-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: intuno-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for intuno-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d1abad1c6ad958136e08a5ac32bc2ff03a982ad0449c9be1ef09e1538bb0cdb
MD5 a5c0d99c1760546060210bedf27b1d98
BLAKE2b-256 791b4691fe66385acdd15e85b446a9c028eb5d5e286870b20297df38719c4e7a

See more details on using hashes here.

Supported by

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