Skip to content

tiniuclx/harmony-explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harmony Explorer

Explore complex harmony without playing the chords. Type the name of any chord and Harmony Explorer plays it for you!

Features

  • Hear any commonly used chord and see the notes the chord is composed of.
♪♪♪ C
Playing C4 E4 G4
♪♪♪ Bdim
Playing B4 D5 F5
♪♪♪ G7
Playing G4 B4 D5 F5
♪♪♪ Am
Playing A4 C5 E5
  • Use several commonly used names for each chord.
♪♪♪ Bbm
Playing Bb4 Db5 F5
♪♪♪ Bb-
Playing Bb4 Db5 F5
♪♪♪ Bb minor
Playing Bb4 Db5 F5
  • Transpose chords up or down
♪♪♪ transpose 5 Cmaj7
Fmaj7
Playing F4 A4 C5 E5
♪♪♪ transpose -5 Cmaj7
Gmaj7
Playing G4 B4 D5 Gb5
♪♪♪ t 5 Cmaj7
Fmaj7
Playing F4 A4 C5 E5
  • Choose whether to display accidentals using sharps or flats.
♪♪♪ F#dim
Playing Gb4 A4 C5 Gb5
♪♪♪ sharps
Notating accidentals using sharps.
♪♪♪ F#dim
Playing F#4 A4 C5 F#5
  • Command history support: use the up- and down-arrow keys to navigate through your previous commands. The commands are remembered after you close the program.

  • Press Enter to re-do the last command. Useful if you want to hear the chord that was last played without having to type it again.

Building from source

First, you must install several dependencies in order to build and run the project.

Ubuntu & Debian:

sudo apt-get install git libasound2-dev

You will also need to install the Rust compiler. Instructions for doing so can be found here.

You may obtain the code using the following command:

git clone https://github.com/tiniuclx/harmony-explorer.git

Then, build & run it using Cargo, the Rust package manager & build system. This step will take a few minutes. Once it is complete, Harmony Explorer will start, you will see the prompt (three quavers, like in the example) and you can start typing your commands.

cd harmony-explorer
cargo run

Windows

You will first need to install Rust. For Windows, you will also have to build portaudio manually. For this, you will need CMake and Visual Studio Build Tools. Once you've downloaded the portaudio source, configure it to build using Visual Studio. You can then build it by running the folliwing inside a Windows developer shell:

MSBuild.exe .\portaudio.sln /property:Configuration=Release

Once the command finishes, the output can be found inside the Release folder within your build directory.

You will also need to tell the linker where to find the library. There should be a way to do this more cleanly, but I did not find it yet. Something like this answer should do the trick, but this didn't really work, or I did it incorrectly.

Copy the generated files into the /LIBPATH passed to the link command (visible when attempting to build the project using Cargo). In my case, this is:

C:\Users\tiniu\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib

The linker expects to find portaudio.lib, so you will also have to rename all the files to remove "_x64": portaudio_x64.lib shall become portaudio.lib and so on.

Then, download, build and run the project as is typical for Rust:

git clone https://github.com/tiniuclx/harmony-explorer.git
cd harmony-explorer
cargo run

About

The Google of Harmony

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published