/tonality

Piano for Android

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Tonality - a free piano

About

ic launcher

Tonality is a simple piano keyboard. It allows to highlight scales based on a root note and can label intervals for you. This makes learning of scales much easier.

Copyright © 2019 Sascha Lüdecke <sascha@meta-x.de>

Tonality is based on:

Semitone - tuner, metronome, and piano for Android
by Andy Tockman <andy@tck.mn>
Official website: https://tck.mn/semitone/

Getting Tonality

Get it on F-Droid en badge web generic

net.currit tonality Tonality issues Tonality license

Full Description

Tonality is a simple piano keyboard. It allows to highlight scales based on a root note and can label intervals for you. This makes learning of scales much easier.

Features:

  • Piano view to play with

  • Scale highlighting

  • Optional key labeling

  • Optional interval labeling based on root note

  • Dynamic sizing of the keyboard (configuration stored per device orientation)

  • Stack multiple keyboards (top down or bottom up)

Screenshots of Tonality (Version 1.2)

tonality v1.2   1. main tonality v1.2   2. scale selection tonality v1.2   3. scale highlight tonality v1.2   4. root note selection tonality v1.2   5. scaled 2 tonality v1.2   6. more menu tonality v1.2   7. interval labels tonality v1.2   8. sizing popup

Possible next features …​ or just a bunch of ideas

  • ❏ harmonize handling of pianoview parameters in preferences (currently in PianoView and PianoFragment)

  • ❏ grey out or hide notes which cannot be played due to missing sound file

  • ❏ add some open source synth to tonality in order to play more than audio files

  • ❏ improve scale selection with custom dialog and scale grouping

  • ❏ add MIDI keyboard support via USB on the go

  • ❏ add metronome to piano view

  • ❏ automate screenshot generation combined with espresso UI testing

License

see LICENSE file for more details and this snippet for an overview:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Development

Build instructinos

  • checkout tonality

  • Ensure the environment variable ANDROID_NDK is set

  • Ensure that gradle can call patch and git, i.e. these should be on your PATH

  • Prepare dependencies - this will pull git submodules and build native ffmpeg binaries

    • gradle setupTonalityDependencies

  • build tonality:

    • gradle build

Interaction with upstream semitone

You will probably need these only as a maintainer of the project.

These commands assume that remotes named semitone-upstream and semitone-as-a-library. have been set up.

pull
  • commit all changes

  • git subtree pull --prefix semitone semitone-upstream master

  • convert semitone into an android library by changing semitone/build.gradle

    • change build gradle plugin to library

    • comment out application ID

push
  • commit all changes

  • git subtree push --prefix semitone semitone-fork semitone-as-a-library

  • add pull request towards semitone project