🎼 PHP / Composer library to find notes of various musical scales in any key.
composer require jakub-the-developer/musical-scales
use JakubTheDeveloper\MusicalScales\MusicalScales;
$musicalScales = MusicalScales::getInstance();
$musicalScales->findScales("Bebop");
// Result:
// [
// "Chromatic Bebop",
// "Dominant Bebop",
// "Half-Diminished Bebop",
// "Major Bebop",
// "Major Bebop Heptatonic Mela Mararanjani (India)",
// "Major Bebop Hexatonic",
// "Minor Bebop (As Minor Bebop 11/891011/3 in 12edo)",
// "Minor Bebop (all b’s) 11/2891011/3 in 12edo)",
// "Minor Bebop (as 7/0/4 in 12 edo)",
// "Minor Bebop Heptatonic (as 7/3/4 in 12edo)"
// ]
use JakubTheDeveloper\MusicalScales\MusicalScales;
$musicalScales = MusicalScales::getInstance();
$musicalScales->getNotes("Chromatic Bebop", "E");
// Result: ['E', 'F', 'F#', 'G#', 'A', 'B', 'C#', 'D', 'D#']
$musicalScales->getNotes("Dominant Pentatonic", "C");
// Result: ['C', 'D', 'E', 'G', 'A#']
$musicalScales->getNotes("Lydian Diminished", "A#");
// Result: ['A#', 'C', 'C#', 'E', 'F', 'G', 'A']
In some countries note B is written as H, you can easily switch to this format.
use JakubTheDeveloper\MusicalScales\MusicalScales;
$musicalScales = MusicalScales::getInstance();
$musicalScales->getNotes('Ionian, Major', 'G');
// Result: ['G', 'A', 'B', 'C', 'D' ,'E', 'F#']
$musicalScales->useHInsteadOfB();
$musicalScales->getNotes('Ionian, Major', 'G');
// Result: ['G', 'A', 'H', 'C', 'D' ,'E', 'F#']
$musicalScales->useHInsteadOfB(false);
$musicalScales->getNotes('Ionian, Major', 'G');
// Result: ['G', 'A', 'B', 'C', 'D' ,'E', 'F#']
Search method findScales()
always work for both H and B.
If you have found any mistake, please report it to me.
Do you appreciate my work? Buy me a coffee
Music scales, musical scales, piano scales, guitar scales.