This project is a JavaScript-driven piano application that provides an interactive virtual piano keyboard with information about scales, fingerings, and notes for 28 different scales in all keys. The application utilizes VexFlow JS for handling musical notes. The hope is to host this on my portfolio website as a free resource for people looking to learn piano scales.
- Interactive Keyboard: Users can change what key and scale is displayed on the virtual piano keyboard.
- Scale Information: The application displays information about scales, fingerings, and notes.
- VexFlow Integration: VexFlow JS is used to accomplish musical note rendering.
The application supports the following 28 scales, each providing a unique musical flavor:
- Major Scale: The fundamental and widely used scale, known for its bright and happy sound.
- Natural Minor Scale: A common scale with a more somber and melancholic feel than the major scale.
- Harmonic Minor Scale: Features a distinctive minor scale with a raised seventh degree, creating tension and intensity.
- Melodic Minor Scale: Alters the sixth and seventh degrees when ascending, creating a unique sound.
- Dorian Mode: A minor scale with a major sixth degree, often used in jazz and blues.
- Phrygian Mode: A minor scale with a lowered second degree, offering a mysterious and exotic vibe.
- Lydian Mode: A major scale with a raised fourth degree, producing a dreamy and ethereal quality.
- Mixolydian Mode: Similar to the major scale but with a lowered seventh degree, creating a bluesy sound.
- Locrian Mode: A diminished scale with a lowered second, fifth, and seventh degrees, known for its dissonance.
- Pentatonic Major Scale: A simple, widely used scale with five notes per octave, offering a pleasant and open sound.
- Pentatonic Minor Scale: A minor version of the pentatonic scale, versatile and popular in various musical genres.
- Blues Scale: A variation of the pentatonic scale with an added flattened fifth, commonly used in blues music.
- Whole-Tone Scale: Consists entirely of whole steps, providing a unique and symmetrical sound.
- Chromatic Scale: Includes all twelve pitches, offering maximum musical freedom and expressiveness.
- Augmented Scale: A symmetrical scale with a major third followed by an augmented second, creating tension.
- Diminished Scale: Alternates whole and half steps, often used for its symmetrical and ambiguous quality.
- Prometheus Scale: A seven-note scale with a major third, augmented fourth, and augmented sixth.
- Tritone Scale: Built on the tritone interval, known for its unstable and dissonant character.
- Enigmatic Scale: A mysterious and unconventional scale with a unique pattern of intervals.
- Double Harmonic Scale: A scale with augmented steps, producing an exotic and oriental sound.
- Neapolitan Major Scale: A major scale with a lowered second degree, offering a distinctive flavor.
- Neapolitan Minor Scale: A minor scale with a lowered second degree, creating a dark and rich atmosphere.
- Major Blues Scale: Combines elements of the major scale and the blues scale for a soulful sound.
- Minor Blues Scale: Melds elements of the natural minor scale and the blues scale, perfect for blues and jazz.
- Exotic Scale: A unique and unconventional scale that adds flair and intrigue to compositions.
The JavaScript file handles note generation, scale highlighting, and VexFlow integration.
Styles are organized to achieve a visually appealing design.
The HTML structure includes the piano keyboard and scale information layout.
- Clone the repository.
- Open the
index.html
file in a web browser.
- VexFlow JS
- Enable the keyboard to display scales and fingerings for 1 and 2 Octaves (Implemented in Multiple-Octaves_After-Main-Refactor Branch Not merged into Main yet)
- Adjust formatting and page layout of buttons, vexflow and piano for readability
- Create Dark Mode toggle button
- Add the ability to click the scales to hear the notes (Theoretical Improvement)
- Host on profile website as a free resource for people learning piano.
Currently, we are not accepting contributions to this project. This may change in the future. If you have suggestions or find issues, feel free to open an issue, but please note that we may not actively review or merge pull requests.
Thank you for your understanding.
Thank you for exploring our JavaScript piano application. We hope you enjoy experimenting with different scales and discovering the diverse world of musical possibilities!