• Stars
    star
    222
  • Rank 179,123 (Top 4 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created over 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This is a piano software that analyzes what chords you are playing in real time by algorithms based on music theory. This piano software supports MIDI keyboard, computer keyboard, play and analyze MIDI files and so on.

Ideal-Piano

δΈ­ζ–‡

Introduction

This is a smart piano software that I started to develop in April 2020.

The best feature of Ideal Piano is that it uses algorithm based on music theory to determine what chord types you are currently playing and displays it on the screen. This algorithm comes from my another project musicpy, a python library to compose and analyze music, if you are interested in it, please check it. This algorithm could detect all root position chords, chord inversions, voicings and chords which have altered notes, omissions, from simple chords to very complex chords.

Functionality

  • You can use your computer keyboard or MIDI keyboard to play, keyboard mappings with notes could be customized in the settings file
  • Analyze what chord types you are playing in details and display on the screen
  • Choose MIDI files to playback in waterfall form, show current chord types in real time, you can also choose to display detailed music theory information for the current chord
  • Support playing MIDI files with multiple tracks, change playback position by clicking on the progression bar when playing
  • You can choose to split the melody and chord parts of MIDI files and play only one of them, using music analysis algorithm based on music theory
  • You can choose to analyze current key you are playing or MIDI files in real time using music analysis algorithm based on music theory, supporting major, minor and church modes like dorian, lydian (experimental)
  • Load audio files or SoundFont files as instruments
  • Connect with DAW and analyze chord types that is currently playing in the DAW
  • Fully customizable UI, easily change background image, font type, font size, customize piano keyboard, etc.
  • You can choose to display corresponding note names on piano keys (by default the note names are not displayed on the piano keys)

Cross-platform

Ideal Piano currently supports Windows, Linux and macOS. Please see the download section of README.

Windows: tested on Windows 7, 10, 11

Linux: tested on Ubuntu 21.10

macOS: tested on macOS 12

Usage

Please check user instructions in User Manuals folder, which provides detailed instructions of how to use each functionality of Ideal Piano. The settings manual in the same folder is also worth checking, as it describes what each setting parameter in the settings file is, so you can customize Ideal Piano through modifying setting parameters.

Download

You can download this software for Windows, Linux and macOS from here.

Note1: for Linux version, playing MIDI files using default settings requires installing freepats and timidity. Then follow the steps in User Instruction. On Ubuntu you can run

sudo apt-get install freepats timidity

If you want to use SoundFont files as instruments in the Linux version, you need to install fluidsynth, you can refer to here for the install command for different Linux distributions. For Ubuntu, it is

sudo apt-get install fluidsynth

Note2: for macOS version, If you want to use SoundFont files as instruments, you need to install fluidsynth, you can use homebrew to install fluidsynth by running this line in the terminal

brew install fluidsynth

Previews

Here is a preview of Ideal Piano:

image

the initial screen of Ideal Piano

image

Display notes you are current playing, analyze the chord types and display on the screen

image

Window for selecting MIDI files to play

image

Playing MIDI files with multiple tracks

image

You can simply drag an image file to the screen to change the background

Building from source

If you cannot run the executables on your current system, the best solution is to build from source code.

Take Linux as an example, the executable build from Ubuntu 21.10 may not work on Ubuntu 22.04 due to some core libraries differences and other incompatible issues with newer versions.

For information on how to build Ideal Piano from source, please check user instructions in User Manuals folder.

Other notes

Currently supported languages only include English and Chinese, you can change the language by change the setting parameter language.

Donation

This project is developed by Rainbow Dreamer on his spare time to create a smart piano software. If you feel this project is useful to you and want to support it and it's future development, please consider buy me a coffee, I appreciate any amount.

Support via PayPal

Summary

If you encounter any problems when using this software, please take a look at the user manual first, if you cannot solve the problem, you can contact me by sending emails to [email protected], thank you for your support~

More Repositories

1

musicpy

Musicpy is a music programming language in Python designed to write music in very handy syntax through music theory and algorithms.
Python
1,276
star
2

ascii-converter

This is an easy-to-use Ascii converter that could convert any images and videos to ASCII art (text, images and videos), and you can easily customize the conversion parameters
Python
89
star
3

sf2_loader

This is an easy-to-use soundfonts loader, player and audio renderer in python
Python
36
star
4

PVZ_Minimal

Plants vs Zombies Minimal Edition, with the greatest freedom of game customization and gameplay designing
Python
33
star
5

SfPlayer

This is an easy-to-use SoundFont player that supports playing MIDI files using SoundFont files
Python
21
star
6

musicpy_editor

This is an easy-to-use musicpy editor and IDE
Python
17
star
7

musicpy_dev

This is a repository holding musicpy develop thoughts and some related stuffs
Python
16
star
8

audio_effects

Some audio effects such as delay, speed changes implemented in python
Python
9
star
9

midi-keyboard-control

Control your computer with your MIDI keyboard or DAW as computer keyboard and mouse
Python
6
star
10

musicpy-daw

This is a plaintext DAW to make music with musicpy.
Python
5
star
11

separable_merge

This is a cross-platform file merger and splitter which uses a file merging algorithm designed by me to merge multiple files and folders into a single separable binary file
Python
5
star
12

matrixpro

This is a python module for handling matrices, including matrix calculation, analysis and algorithms.
Python
4
star
13

image_to_midi

This is a python package that turns any images into MIDI files that views the same as them
Python
4
star
14

pygroup

This is a python module about group theory in math
Python
4
star
15

music-arrow-game

Python
3
star
16

music_analysis_batch_language

This is a batch language for writing music analysis contents
Python
3
star
17

musicpy_docs

Musicpy Documentation
2
star
18

matrix-encrypt

Here are some encrypt algorithms using matrix methods designed by me, with a software that can run these algorithms
Python
2
star
19

musicpy_docs_zh_CN

Musicpy Documentation zh_CN
2
star
20

polynomial

This is a professional polynomial calculator and analyzer python module.
Python
1
star
21

hide_warnings

This is a python module that can hide any annoying warning messages from external C and C++ libraries in your python project
Python
1
star
22

quicktools

This is a python functions tools module for enhancing python grammar structures and functions
Python
1
star
23

Rainbow-Dreamer

1
star
24

twelvenotes_language

A 12-base language using 12 notes in music to represent any informations.
Python
1
star
25

password-manager

This is a simple password manager, using Fernet as the encryption algorithm
Python
1
star
26

named_array

Python
1
star
27

conway-game-of-life-simulator

This is a simple conway's game of life editor and simulator, you can draw any lives easily in this software and watch their evolutions, and you can customize the BS rules and the images of lives and background, and so on
Python
1
star