PHPackages                             jakub-the-developer/musical-scales - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. jakub-the-developer/musical-scales

ActiveLibrary

jakub-the-developer/musical-scales
==================================

Musical Scales finder

v1.0.1(5y ago)114MITPHPPHP ^7.4||^8.0

Since Mar 24Pushed 5y ago1 watchersCompare

[ Source](https://github.com/jakubthedeveloper/MusicalScales)[ Packagist](https://packagist.org/packages/jakub-the-developer/musical-scales)[ RSS](/packages/jakub-the-developer-musical-scales/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Musical Scales
==============

[](#musical-scales)

🎼 PHP / Composer library to find notes of various musical scales in any key.

[![Build Status](https://camo.githubusercontent.com/2cdcb31ac76a02a539131a8ea31654897d2391e0a8e77f86f46facd8048b6f11/68747470733a2f2f7472617669732d63692e6f72672f6a616b7562746865646576656c6f7065722f4d75736963616c5363616c65732e7376673f6272616e63683d6d61696e)](https://travis-ci.org/jakubthedeveloper/MusicalScales)

Installation
------------

[](#installation)

```
composer require jakub-the-developer/musical-scales
```

Usage
-----

[](#usage)

### Find scale names

[](#find-scale-names)

```
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)"
// ]
```

### Get list of notes in specified scale and key

[](#get-list-of-notes-in-specified-scale-and-key)

```
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']
```

### Use H instead of B

[](#use-h-instead-of-b)

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.

Mistakes
--------

[](#mistakes)

If you have found any mistake, please report it to me.

Buy me a coffee
---------------

[](#buy-me-a-coffee)

Do you appreciate my work? [Buy me a coffee](https://buymeacoff.ee/JakubDeveloper)

Keywords
--------

[](#keywords)

Music scales, musical scales, piano scales, guitar scales.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

1875d ago

PHP version history (2 changes)v1.0PHP ^7.4

v1.0.1PHP ^7.4||^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/14157246?v=4)[JakubTheDeveloper](/maintainers/JakubTheDeveloper)[@jakubthedeveloper](https://github.com/jakubthedeveloper)

---

Top Contributors

[![jakubthedeveloper](https://avatars.githubusercontent.com/u/14157246?v=4)](https://github.com/jakubthedeveloper "jakubthedeveloper (5 commits)")

---

Tags

musicmusicalscales

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jakub-the-developer-musical-scales/health.svg)

```
[![Health](https://phpackages.com/badges/jakub-the-developer-musical-scales/health.svg)](https://phpackages.com/packages/jakub-the-developer-musical-scales)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
